Files
opencloud-dockhand/README.md
T
hermes f935bbbc9b Initial commit: opencloud-dockhand stack
- OpenCloud core + tika full-text search + Euro Office
- Existing Traefik (.maukit.com, TLS letsencrypt)
- No deploy; reference files
2026-09-12 13:31:46 +01:00

2.8 KiB

OpenCloud Dockhand Stack — Stack Readme

Source: upstream https://github.com/opencloud-eu/opencloud-compose

Built for dockhand (https://dock.maukit.com/api) — files only, NOT DEPLOYED.

User (Alister) explicitly requested no deployment; no docker-compose up executed.

What was built

  • /opt/data/opencloud-dockhand/
    • .env — production vars; includes search (tika) + euro office + traefik
    • .env.example — same as .env for reference
    • docker-compose.yml — upstream opencloud core
    • search/tika.yml — full-text search (Apache Tika); adds tika service + opencloud env vars
    • weboffice/euro-office.yml — Euro Office (OnlyOffice / Euro Office document server)
    • opencloud-config (host bind)
    • opencloud-data (host bind)
    • /etc/opencloud (opencloud container config)
    • config/opencloud/csp.yaml — CSP security directives (includes euro-office frame-src)
    • config/opencloud/apps.yaml — app registry settings
    • config/opencloud/banned-password-list.txt — banned-password policy file
    • config/euro-office/app-registry.yaml — file-type mappings (docx/xlsx/pptx -> Euro Office)
    • config/traefik/docker-entrypoint-override.sh — traefik entrypoint script (upstream)

How to deploy (DO NOT run automatically; user said no deploy)

1. Create .env (copy from .env.example) and set:

- OC_DOMAIN (e.g., cloud.yourdomain.test)

- INITIAL_ADMIN_PASSWORD (must be set before first container start)

- EURO_OFFICE_JWT_SECRET (generate a long random string)

Compose assembly (no traefik — using existing Traefik at dock):

docker compose -f docker-compose.yml -f search/tika.yml \

-f weboffice/euro-office.yml up -d

3. Create volumes / directories:

mkdir -p opencloud-config opencloud-data ./certs

4. Add domain mappings to /etc/hosts (local dev) or DNS A records (production).

Search / Full-Text

  • Tika image: apache/tika:latest (base variant for smaller size / faster start)
  • OpenCloud configured: SEARCH_EXTRACTOR_TYPE=tika, FRONTEND_FULL_TEXT_SEARCH_ENABLED=true
  • Tika URL: http://tika:9998
  • Search only activates after tika container passes healthcheck (depends_on condition)

Euro Office (OnlyOffice / DocumentServer)

  • Image: ghcr.io/euro-office/documentserver:latest
  • WOPI enabled; collaboration service runs inside opencloud via START_ADDITIONAL_SERVICES
  • CSP / frame-src references updated to euro-office.maukit.com
  • Fonts mounted: /usr/share/fonts/truetype (optional; install ttf-mscorefonts-installer on host for Microsoft fonts)

Dockhand / Existing Traefik

  • Existing Traefik handles TLS (letsencrypt) and routing; no traefik service in compose.
  • Stack assembly (no traefik): docker-compose.yml + search/tika.yml + weboffice/euro-office.yml
  • Domains: OC_DOMAIN=cloud.maukit.com; EURO_OFFICE_DOMAIN=euro-office.maukit.com
  • Container UID: 1000:1000 (default); match host ownership