rewire 2026-08-11: single-mount NFS architecture
- topology.svg, container-tree.svg, data-flow.svg: show /srv/nc-files bound directly into nextcloud container at /mnt/ncdata (no intermediate /mnt/nc-data/nextcloud-data layer). - architecture.html: explain rewire, update storage table, remove pre-rewire 'why two layers' section. - procedure.html: NEXTCLOUD_DATADIR=/srv/nc-files, no mastercontainer bind, add §2.5 Rewire 2026-08-11 with recovery procedure, update backup script to also tar local nextcloud app volume, fix 4.3 verification (302 -> /login, status.php, file visibility). - operations.html: 4 backup files now (added aio-nextcloud-app.tar.gz), restore procedures updated, single-file restore uses new tar layout. - troubleshooting.html: add 3 new sections — appdata-missing, nextcloud-not-spawning, collabora-discovery-warning. - request-flow.svg: remove nextcloud/ subdir from NFS write path. - index.html, README.md: update paths and metadata.
This commit is contained in:
+25
-12
@@ -28,7 +28,7 @@
|
||||
<h2>Backup pipeline</h2>
|
||||
|
||||
<p>
|
||||
Three files written daily to
|
||||
Four files written daily to
|
||||
<code>/srv/nc-files/backups/</code> on homework03 (NFS, real path
|
||||
<code>/slab/container_storage/office/backups/</code> on desslok):
|
||||
</p>
|
||||
@@ -47,9 +47,15 @@
|
||||
<td>~6 KB</td>
|
||||
<td>Reconstruct the AIO install state without going through the setup wizard again.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>office-YYYYMMDD-aio-nextcloud-app.tar.gz</code></td>
|
||||
<td>Tar of <code>/usr/local/containers/nextcloudaio/nextcloud-aio-nextcloud/</code> — the AIO-managed local app volume (Nextcloud app code, installed apps, <code>config/</code>).</td>
|
||||
<td>~200-500 MB depending on installed apps</td>
|
||||
<td>Survives a fresh AIO install: restore this AND the config tarball to skip the entire setup wizard and preserve installed apps.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>office-YYYYMMDD-ncdata.tar.gz</code></td>
|
||||
<td>Tar of <code>/srv/nc-files/nextcloud/</code> (user-uploaded files) — excludes <code>backups/</code> to avoid recursion.</td>
|
||||
<td>Tar of <code>/srv/nc-files/</code> root (user files: <code>admin/</code>, <code>race/</code>, <code>appdata_*/</code>, etc.) — excludes <code>backups/</code> to avoid recursion.</td>
|
||||
<td>Empty (~100 B) until users upload files, then grows</td>
|
||||
<td>Restore user files after data loss.</td>
|
||||
</tr>
|
||||
@@ -93,12 +99,12 @@ systemctl status office-backup.service | head -5
|
||||
</li>
|
||||
<li>
|
||||
<strong>NFS quiescence</strong> — the tar reads
|
||||
<code>/srv/nc-files/nextcloud/</code> while the filesystem is
|
||||
actively being written to by the nextcloud container. The tar
|
||||
will see a consistent enough snapshot for crash-consistent
|
||||
recovery; for true point-in-time recovery, you'd want to
|
||||
quiesce Nextcloud (set maintenance mode) for the duration of
|
||||
the tar, which we haven't done.
|
||||
<code>/srv/nc-files/</code> (the NFS root) while the
|
||||
filesystem is actively being written to by the nextcloud
|
||||
container. The tar will see a consistent enough snapshot for
|
||||
crash-consistent recovery; for true point-in-time recovery,
|
||||
you'd want to quiesce Nextcloud (set maintenance mode) for the
|
||||
duration of the tar, which we haven't done.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -142,9 +148,15 @@ sudo -n docker compose down</code></pre>
|
||||
tar -C /usr/local/containers/nextcloudaio -xzf "$LATEST"</code></pre>
|
||||
</li>
|
||||
<li>
|
||||
Restore user files (overwrites the NFS share's <code>nextcloud/</code>):
|
||||
Restore the local nextcloud app volume (AIO-managed code +
|
||||
installed apps):
|
||||
<pre><code>LATEST=$(ls -t /srv/nc-files/backups/office-*-aio-nextcloud-app.tar.gz | head -1)
|
||||
tar -C /usr/local/containers/nextcloudaio -xzf "$LATEST"</code></pre>
|
||||
</li>
|
||||
<li>
|
||||
Restore user files (NFS root, no intermediate <code>nextcloud/</code>):
|
||||
<pre><code>LATEST=$(ls -t /srv/nc-files/backups/office-*-ncdata.tar.gz | head -1)
|
||||
# Tar contains /nextcloud/ at root
|
||||
# Tar contains files at root (admin/, race/, appdata_*/, ...)
|
||||
tar -C /srv/nc-files -xzf "$LATEST"</code></pre>
|
||||
</li>
|
||||
<li>
|
||||
@@ -172,8 +184,9 @@ curl -skI https://office.rmf44.xyz/login
|
||||
</p>
|
||||
<pre><code>ssh desslok
|
||||
LATEST=$(ls -t /slab/container_storage/office/backups/office-*-ncdata.tar.gz | head -1)
|
||||
tar -C / -xzf "$LATEST" nextcloud/admin/files/path/to/file
|
||||
# Adjust for the user + path</code></pre>
|
||||
# Tar contains files at root; restore one user's file:
|
||||
tar -C / -xzf "$LATEST" race/files/path/to/file
|
||||
# Adjust for the user + path; user dirs are at NFS root (no nextcloud/ prefix)</code></pre>
|
||||
|
||||
<h3>Re-initialize the admin user</h3>
|
||||
<p>
|
||||
|
||||
Reference in New Issue
Block a user