From 217591f4a0ff5f91207a0a42ea1d2a6f5263b4cd Mon Sep 17 00:00:00 2001 From: wheelz Date: Sun, 21 Jun 2026 05:30:28 +0000 Subject: [PATCH] Add Termix Docker Compose stack --- termix-compose.yml | 54 ++++++++++++++++++++++++++++++++++++++++++++++ termix.env.example | 22 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 termix-compose.yml create mode 100644 termix.env.example diff --git a/termix-compose.yml b/termix-compose.yml new file mode 100644 index 0000000..aa0e4f5 --- /dev/null +++ b/termix-compose.yml @@ -0,0 +1,54 @@ +# ============================================ +# 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 diff --git a/termix.env.example b/termix.env.example new file mode 100644 index 0000000..8e0bd32 --- /dev/null +++ b/termix.env.example @@ -0,0 +1,22 @@ +# Termix Docker-Test-1 trial settings +# Copy to termix.env on the target host and adjust as needed. + +TERMIX_IMAGE=ghcr.io/lukegus/termix +TERMIX_TAG=2.4.0 +TERMIX_HTTP_PORT=8080 +TERMIX_DATA_DIR=/opt/docker/termix/data +TERMIX_LOG_LEVEL=info + +# Container process UID/GID. Match the owner of TERMIX_DATA_DIR on the target host. +PUID=1000 +PGID=1000 + +# Remote desktop support via guacd. +ENABLE_GUACAMOLE=true +GUACD_TAG=1.6.0 + +# Set true if Termix is behind an HTTPS reverse proxy and OIDC callbacks need HTTPS. +OIDC_FORCE_HTTPS=false + +# Keep false until an admin intentionally enables SSO/LDAP/GitHub/Google self-registration. +OIDC_ALLOW_REGISTRATION=false