euro-office — Installation¶
Primary audience: TAPPaaS admin.
Prerequisites¶
nextcloudis installed and reachable (nextcloud:fileservicedependency) — install it before euro-office.
To deviate from the defaults in
./euro-office.json(target node, storage, zone/VLAN, sizing), copy the json to/home/tappaas/configand edit it before installing.
Install¶
install-module.sh euro-office
Post-install¶
None for document editing. On first boot the VM generates a JWT secret automatically, and the nextcloud module applies the connector settings on its own: it writes /etc/secrets/onlyoffice.env on the Nextcloud VM (JWT_SECRET, EURO_OFFICE_URL, EURO_OFFICE_INTERNAL_URL, NEXTCLOUD_PUBLIC_URL) and restarts nextcloud-configure-eurooffice to apply them.
An Admin Panel is also enabled on the document server (/admin/, server monitoring/configuration only) — document editing via Nextcloud does not require it.
Verification¶
test-module.sh euro-office
| Check | Expected |
|---|---|
| SSH to the VM | Connection succeeds |
podman-euro-office.service | Active; euro-office container Up |
http://localhost/ on the VM | HTTP 200 |
/healthcheck | HTTP 200 (connector availability check) |
/web-apps/apps/api/documents/api.js | HTTP 200 (editor API) |
/etc/secrets/euro-office.env | Exists, mode 0600, JWT_SECRET non-empty |
| No in-VM backup | no euro-office-backup timer, no /var/backup/euro-office (Proxmox Backup takes the VM) |
/var/lib/euro-office/data | Exists |
| Nextcloud -> Administration -> "Nextcloud Office" | Points at this server; opening a .docx works |
| Connector check, from the Nextcloud VM (needs a TTY) | ssh -t tappaas@nextcloud.<zone>.internal "sudo nextcloud-occ --no-ansi eurooffice:documentserver --check" prints "is successfully connected" |
Troubleshooting¶
install-module.sh exits with a dependency error nextcloud is not installed or not reachable. Install it first, then retry.
Document server was just (re)started and checks fail Give it roughly 20-40 seconds — it does not answer /healthcheck immediately after podman-euro-office (re)starts.
Nextcloud shows a "public test server" banner The "Nextcloud Office" settings page (app eurooffice) defaults to the public demo server — the connector was not wired. Set it to euro-office. The 5 settings (also settable via nextcloud-occ config:app:set eurooffice <key>):
| Key | Value |
|---|---|
DocumentServerUrl | https://<euro-office public domain>/ |
DocumentServerInternalUrl | http://euro-office.<zone>.internal/ |
StorageUrl | https://<nextcloud public domain>/ |
jwt_secret | the value of JWT_SECRET in euro-office's /etc/secrets/euro-office.env |
jwt_header | Authorization |
Check whether Nextcloud sees the document server Run on the Nextcloud VM (needs a TTY):
ssh -t tappaas@nextcloud.<zone>.internal "sudo nextcloud-occ --no-ansi eurooffice:documentserver --check"
- "is successfully connected" — working.
- "Error connection: ..." — broken; the error is shown.
- "Document server is not configured" — connector not wired; see the settings above.
Container not running
ssh tappaas@euro-office.srv.internal \
"sudo podman ps; sudo journalctl -u podman-euro-office -n 30"
Logs (inside the container)
CID=$(ssh tappaas@euro-office.srv.internal "sudo podman ps -q")
# DocService: /var/log/euro-office/documentserver/docservice/out.log
# Converter: /var/log/euro-office/documentserver/converter/out.log
# Nginx: /var/log/euro-office/documentserver/nginx.error.log
ssh tappaas@euro-office.srv.internal \
"sudo podman exec $CID tail -100 /var/log/euro-office/documentserver/docservice/out.log"
"Document cannot be accessed right now" A stale edit session blocks the file. Clear it (replace KEY with the document key):
CID=$(ssh tappaas@euro-office.srv.internal "sudo podman ps -q")
ssh tappaas@euro-office.srv.internal "sudo podman exec $CID su -s /bin/sh postgres \
-c \"psql -d eurooffice -c \\\"DELETE FROM task_result WHERE id LIKE 'KEY%'\\\"\""
Rotate the JWT secret (only if compromised) Regenerate it on the VM and restart the document server, then re-wire Nextcloud:
ssh tappaas@euro-office.srv.internal \
"echo JWT_SECRET=\$(openssl rand -hex 32) | sudo tee /etc/secrets/euro-office.env && \
sudo systemctl restart podman-euro-office"
update-module.sh euro-office # Nextcloud re-reads the secret and re-applies the connector