COMPLETE
Deployed office.rmf44.xyz as a Nextcloud All-in-One stack
with Collabora + Whiteboard on homework03, with public
ingress through hawker's Caddy over a NetBird mesh.
Replaces the retired OnlyOffice container.
Cutover completed 2026-08-10.
Replace the standalone OnlyOffice container on hawker
with a full Nextcloud All-in-One deployment providing file sync,
Collabora-based office editing (Word/Excel/PowerPoint), and the
built-in Whiteboard. Public URL https://office.rmf44.xyz
serves a single domain (no subdomain split). User data lives on
desslok via NFS so existing backup snapshots still apply.
| Item | Value |
|---|---|
| Hostname | office.rmf44.xyz (single domain) |
| Stack | Nextcloud All-in-One, 8 containers (mastercontainer, apache, nextcloud-fcgi, database, redis, collabora, whiteboard, notify-push) |
| AIO host | homework03 (10.0.0.73), Debian 13, Docker 29.6.2, 15 GB RAM |
| Apache port | 11000 (host-side; mastercontainer owns host :80 for acme) |
| Public ingress | hawker Caddy office.rmf44.xyz → 100.79.142.164:11000 over NetBird |
| Office suite | Collabora (via richdocuments + office apps) |
| Extras enabled | Whiteboard |
| Extras disabled | Talk, Imaginary (previews), ClamAV, Fulltextsearch, Adminer |
| Storage | NFSv4.1 from desslok:/slab/container_storage/office mounted at /srv/nc-files/ on homework03 |
| Database | PostgreSQL inside nextcloud-aio-database container, daily pg_dumpall to NFS |
| RAM footprint | ~6-9 GB on 15 GB host (97% baseline before AIO) |
| Cutover time | Caddy block upstream fix (:80 → :11000) ≈ 1 minute |
office vs nextcloud
split needed.
/slab/container_storage/office; AIO runs
stateless otherwise. The bind-mount pattern keeps everything
portable — destroy the AIO stack and the data is still there.
AIO_DISABLE_BACKUP=true) because the
data is already on NFS — the natural backup target. A daily
systemd timer on hector SSHes to homework03 and
runs pg_dumpall + a config tar + a user-files tar,
all writing back to desslok via NFS.
admin, race (Lord Race), bettyanne in DB. Family members can be added through the user management UI.| Path | Host | What |
|---|---|---|
/usr/local/containers/nextcloudaio/docker-compose.yaml | homework03 | Mastercontainer with network_mode: host |
/usr/local/containers/nextcloudaio/nextcloud-aio-{mastercontainer,database,redis,apache,nextcloud,collabora,whiteboard,notify-push,database-dump}/ | homework03 | Named docker volume bind targets |
/srv/nc-files/ | homework03 | NFS mount of desslok:/slab/container_storage/office; AIO binds this directly into the nextcloud container at /mnt/ncdata via NEXTCLOUD_DATADIR |
/usr/local/containers/nextcloudaio/nextcloud-aio-nextcloud/ | homework03 | Local docker volume bind for the nextcloud container's /var/www/html (AIO-managed app code) |
/usr/local/bin/office-backup.sh | homework03 | Daily backup script (pgdump + AIO config tar + app volume tar + user files tar) |
/etc/systemd/system/office-backup.{service,timer} | hector | Daily 03:30 UTC trigger, SSH to homework03 |
/etc/caddy/Caddyfile | hawker | Reverse proxy block: office.rmf44.xyz → 100.79.142.164:11000 |
/slab/container_storage/office/ | desslok | Live data + backups/ subdir |