# 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