version: '3.8' # Library - Wiki.js (Knowledge Wiki) # Application Layer # Port: 3000 (HTTP) # GPU: No # Storage: PostgreSQL (shared), SSD (uploads) services: wiki: image: ghcr.io/requarks/wiki:2 container_name: wiki restart: unless-stopped ports: - "3000:3000" # HTTP web interface volumes: # Uploads and backups on HDD - /mnt/media/library/wiki:/wiki/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro environment: # Database configuration (PostgreSQL shared) - DB_TYPE=postgres - DB_HOST=postgres-shared - DB_PORT=5432 - DB_NAME=library - DB_USER=library_user - DB_PASS=${LIBRARY_DB_PASSWORD} # Redis cache configuration (DB 2) - REDIS_HOST=redis-shared - REDIS_PORT=6379 - REDIS_DB=2 # Application configuration - WIKI_ADMIN_EMAIL=admin@schweitz.net - HA_ACTIVE=false - TZ=${TZ:-Europe/Amsterdam} networks: - docker-dataplane deploy: resources: reservations: memory: 256M limits: memory: 1G healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3000/healthz"] interval: 30s timeout: 10s retries: 3 start_period: 60s networks: docker-dataplane: external: true name: docker-dataplane # ⚠️ SECURITY WARNING: # Set LIBRARY_DB_PASSWORD in environment variables before deploying! # This should match the password created in PostgreSQL (see DEPLOYMENT.md Phase 1.1) # # After Deployment: # 1. Access http://wiki:3000 # 2. Complete initial setup wizard: # - Admin account (use strong password!) # - Site URL: http://wiki:3000 or https://library.schweitz.net # - Telemetry: Optional # 3. Enable API Access: # - Administration → API Access # - Generate New Key → Save to .env.library as WIKIJS_API_KEY # 4. Configure storage: # - Administration → Storage # - Enable Git storage (optional, for version control) # # Features: # - Markdown editing with live preview # - Cross-dossier linking (wikilinks) # - Full-text search # - Version history # - User authentication and authorization # - API for Front Desk integration # - Mind map embedding (via Front Desk) # # Integration: # - Front Desk proxies CRUD operations via Wiki.js API # - Content changes trigger re-indexing in Qdrant # - Entity extraction updates Neo4j graph # # Backups: # - Database: Managed by Scheduler (daily, 02:00) # - Content export: Managed by Scheduler (daily, 02:00) # - Location: /mnt/media/backups/library/wikijs/ # # External Access (Optional): # - Nginx Proxy Manager: library.schweitz.net → library-wiki:3000 # - SSL: Let's Encrypt via NPM