mirror of
https://github.com/fscotto/infra.git
synced 2026-10-06 23:09:51 +00:00
Enable HEIC previews and document Nextcloud recovery
This commit is contained in:
@@ -3,9 +3,9 @@
|
||||
Status: the empty stack was deployed on 2026-10-03, explicitly before the first
|
||||
scrub. The operator configured DNS/NPM and authorized public cutover; public TLS,
|
||||
DAV and cross-user file checks passed. The first scrub and a manual consistent
|
||||
backup/isolated restore passed on 2026-10-04. Client editing/sync acceptance and
|
||||
USB recovery validation remain open before family data. Recurring backup integration
|
||||
and recovery from a new Borg archive passed. iCloud import remains a
|
||||
backup/isolated restore passed on 2026-10-04. Client editing/sync acceptance
|
||||
remains open before family data. Recurring backup integration and recovery from
|
||||
new Borg and offline USB versions passed. iCloud import remains a
|
||||
separate operation. See `docs/atlas-nextcloud.md` for observed runtime state.
|
||||
|
||||
## Confirmed requirements
|
||||
@@ -97,9 +97,7 @@ acceptance tests; the app is not treated as proof of server-side compatibility.
|
||||
|
||||
1. Validate desktop Office editing/saving, calendar/contact synchronization and
|
||||
mobile ONLYOFFICE app integration; public empty-stack cutover is verified.
|
||||
2. Complete recovery from a new offline USB version; recurring preparation and
|
||||
encrypted Borg recovery have passed.
|
||||
3. Plan the deferred iCloud migration when explicitly requested.
|
||||
2. Plan the deferred iCloud migration when explicitly requested.
|
||||
|
||||
## Primary references
|
||||
|
||||
|
||||
@@ -121,6 +121,28 @@ A third preparation published `20261004T100212Z-3366172`; exactly two managed
|
||||
versions remained, with the oldest version pruned only after publication. Source
|
||||
snapshots and persistent interruption markers were absent after success.
|
||||
|
||||
A new UUID-bound USB version and recovery of its consistent Nextcloud bundle
|
||||
remain to be verified after the operator connects/unlocks the configured disk.
|
||||
Do not mark USB recovery complete merely because the dependency was installed.
|
||||
## Offline USB recovery, 2026-10-04
|
||||
|
||||
The operator unlocked the UUID-bound disk. Starting the USB job required fresh
|
||||
bundle `20261004T100959Z-3415600` before the pool snapshot. USB version
|
||||
`20261004T101101Z-3420114` passed its full checksum comparison and publication;
|
||||
the service finished successfully at 18:41:29 Europe/Rome. Its recursive temporary
|
||||
source snapshot was removed and LUKS closed.
|
||||
|
||||
After a second operator unlock, the published USB version was mounted read-only
|
||||
with ext4 journal replay disabled. The consistent bundle was SHA-256 verified on
|
||||
USB and again after extraction into a private temporary directory. A fresh
|
||||
network-none pod restored PostgreSQL globals/database, application and files with
|
||||
the recorded image digests, using a separate database and cache. Nextcloud 33.0.9
|
||||
reported installed, maintenance off and no database upgrade required. All three
|
||||
accounts, Famiglia permissions and authenticated DAV PROPFIND (HTTP 207) for
|
||||
admin, fabio and chiara passed. No external network, published ports or live bind
|
||||
mounts were present.
|
||||
|
||||
The USB was unmounted and LUKS closed. The test pod, extracted copy and path marker
|
||||
were removed. No USB source snapshot remained; the pool was healthy and all live
|
||||
Nextcloud, PostgreSQL, Redis, ONLYOFFICE and cron units were active. Production
|
||||
data was not replaced. This is application recovery evidence for the current
|
||||
small stack, not production-size RPO/RTO, client resynchronization or recovery of
|
||||
unsaved ONLYOFFICE editing sessions. Client acceptance remains required before
|
||||
family import.
|
||||
|
||||
@@ -176,6 +176,14 @@ run of the recurring job, not a normal deployment side effect. The preparation
|
||||
unit is not enabled as a boot backup; only interrupted-job recovery is enabled.
|
||||
Do not stop a Borg/USB job, break its lock or unmount its source snapshot to run a test.
|
||||
|
||||
On 2026-10-04, both a new encrypted Borg archive and USB version
|
||||
`20261004T101101Z-3420114` were independently extracted and their consistent
|
||||
Nextcloud bundles restored in isolated containers. Checksums, account recovery,
|
||||
Famiglia permissions and authenticated DAV passed. Temporary restore resources
|
||||
were removed; USB was safely unmounted and LUKS closed. See
|
||||
`docs/atlas-nextcloud-recovery-test.md` for exact evidence and limitations.
|
||||
Desktop/mobile editing and synchronization acceptance remains open before import.
|
||||
|
||||
|
||||
## Existing Archive storage (no import or duplicate originals)
|
||||
|
||||
@@ -241,3 +249,32 @@ On 2026-10-04 the targeted deployment restarted only ONLYOFFICE. Nginx syntax an
|
||||
Nextcloud's document-server check passed. Public root, welcome and example
|
||||
requests returned 404; `/healthcheck` remained 200. This check does not replace
|
||||
an authenticated browser edit/save test.
|
||||
|
||||
|
||||
### Photos source-filter diagnosis — 2026-10-06
|
||||
|
||||
A recursive scan of `fabio/files/Foto iCloud` completed without errors:
|
||||
1,615 folders and 11,699 files, already indexed. Authenticated DAV SEARCH returned
|
||||
200 nested media results (the requested limit) for the sole `/Foto iCloud`
|
||||
scope, both with and without date ordering, but zero results when the empty
|
||||
`/Photos` scope was combined with it. The observed issue is the combined-source
|
||||
search, not lack of recursive indexing.
|
||||
|
||||
The user preference `photosSourceFolders` was changed directly from
|
||||
`["/Photos","/Foto iCloud"]` to `["/Foto iCloud"]`, after verifying no indexed
|
||||
media under the personal Photos directory. No original files were moved or
|
||||
modified, and no permanent one-time repair task was added to Ansible.
|
||||
The diagnostic app password was revoked. Browser display confirmation remains
|
||||
with the operator; this check does not establish mobile-gallery behavior.
|
||||
|
||||
|
||||
### HEIC previews — 2026-10-06
|
||||
|
||||
The managed configuration include preserves the standard preview providers and
|
||||
adds `OC\Preview\HEIC` for Apple HEIC/HEIF images. The pinned app image
|
||||
already provides Imagick with HEIC/HEIF decoding. Ansible deployment succeeded;
|
||||
a real indexed HEIC generated a 512×512 preview successfully, and the original
|
||||
file SHA-256 was unchanged. Nextcloud, ONLYOFFICE and cron remained active.
|
||||
No bulk conversion or full-library preview generation was performed.
|
||||
New previews are generated on demand; browser/mobile display remains an
|
||||
operator acceptance check.
|
||||
|
||||
Reference in New Issue
Block a user