# ============================================ # Termix — self-hosted SSH and remote desktop manager # ============================================ # Target: Docker-Test-1 regular Compose trial, later promotable to TrueNAS. # # Deploy: # docker compose --env-file termix.env -f termix-compose.yml up -d # # Validate: # docker compose --env-file termix.env.example -f termix-compose.yml config # # Notes: # - Keep /app/data persistent; it stores the encrypted SQLite database, # auto-generated .env secrets, SSL certs, uploads, and OPKSSH binaries. # - Do not commit the real termix.env or contents of TERMIX_DATA_DIR. # - guacd is included for RDP/VNC/Telnet remote desktop support. # ============================================ services: termix: image: ${TERMIX_IMAGE:-ghcr.io/lukegus/termix}:${TERMIX_TAG:-2.4.0} container_name: termix restart: unless-stopped ports: - "${TERMIX_HTTP_PORT:-8080}:8080" volumes: - ${TERMIX_DATA_DIR:-/opt/docker/termix/data}:/app/data environment: PORT: "8080" NODE_ENV: production DATA_DIR: /app/data LOG_LEVEL: ${TERMIX_LOG_LEVEL:-info} PUID: ${PUID:-1000} PGID: ${PGID:-1000} ENABLE_GUACAMOLE: ${ENABLE_GUACAMOLE:-true} GUACD_HOST: guacd GUACD_PORT: "4822" OIDC_FORCE_HTTPS: ${OIDC_FORCE_HTTPS:-false} OIDC_ALLOW_REGISTRATION: ${OIDC_ALLOW_REGISTRATION:-false} depends_on: - guacd networks: - termix-net guacd: image: guacamole/guacd:${GUACD_TAG:-1.6.0} container_name: termix-guacd restart: unless-stopped networks: - termix-net networks: termix-net: driver: bridge