# ============================================================================= # BetterDesk Console - Quick Start (Pre-built Images) # ============================================================================= # NO BUILD REQUIRED - uses pre-built images from GitHub Container Registry # # Usage: # curl -fsSL https://raw.githubusercontent.com/UNITRONIX/Rustdesk-FreeConsole/main/docker-compose.quick.yml -o docker-compose.yml # docker compose up -d # # Web Console: http://localhost:5000 # Default credentials shown on first startup in logs: # docker compose logs console | grep -i password # # TROUBLESHOOTING: If you get "denied" or "pull access denied" error, # images may not be published yet. Build from source instead: # git clone https://github.com/UNITRONIX/Rustdesk-FreeConsole.git # cd Rustdesk-FreeConsole && docker compose -f docker-compose.yml up -d --build # ============================================================================= services: # BetterDesk Server (Go) — handles signal, relay, and API server: image: ghcr.io/unitronix/betterdesk-server:latest container_name: betterdesk-server hostname: betterdesk-server command: ["/usr/local/bin/betterdesk-server", "-mode", "all", "-key-file", "/opt/rustdesk/id_ed25519"] ports: - "21114:21114" # HTTP API - "21115:21115" # NAT type test - "21116:21116/tcp" # Signal TCP - "21116:21116/udp" # Signal UDP - "21117:21117" # Relay TCP - "21118:21118" # WebSocket Signal - "21119:21119" # WebSocket Relay volumes: - betterdesk-data:/opt/rustdesk environment: - ENCRYPTED_ONLY=1 networks: - betterdesk-net restart: unless-stopped healthcheck: test: ["CMD", "wget", "-q", "--spider", "http://localhost:21114/api/health"] interval: 30s timeout: 10s retries: 3 start_period: 15s # BetterDesk Console — Web Management Interface console: image: ghcr.io/unitronix/betterdesk-console:latest container_name: betterdesk-console hostname: betterdesk-console ports: - "5000:5000" # Web console - "21121:21121" # RustDesk Client API (WAN) volumes: - betterdesk-data:/opt/rustdesk:ro - console-data:/app/data environment: - NODE_ENV=production - PORT=5000 - SERVER_BACKEND=betterdesk - BETTERDESK_API_URL=http://betterdesk-server:21114/api - RUSTDESK_PATH=/opt/rustdesk - DATA_DIR=/app/data - DB_PATH=/opt/rustdesk/db_v2.sqlite3 - PUB_KEY_PATH=/opt/rustdesk/id_ed25519.pub - API_KEY_PATH=/opt/rustdesk/.api_key - WS_HBBS_HOST=betterdesk-server - WS_HBBS_PORT=21116 - WS_HBBR_HOST=betterdesk-server - WS_HBBR_PORT=21117 - DOCKER=true networks: - betterdesk-net depends_on: server: condition: service_healthy restart: unless-stopped healthcheck: test: ["CMD", "wget", "-q", "--spider", "http://localhost:5000/login"] interval: 30s timeout: 10s retries: 3 start_period: 20s networks: betterdesk-net: driver: bridge volumes: betterdesk-data: name: betterdesk-data console-data: name: betterdesk-console-data