Files
nexus-terminal/docker-compose.yml
T
Baobhan Sith 6ba859227d update
2025-05-07 19:25:45 +08:00

87 lines
2.0 KiB
YAML

services:
frontend:
image: heavrnl/nexus-terminal-frontend:latest
container_name: nexus-terminal-frontend
ports:
- "18111:80"
depends_on:
- backend
- rdp
- vnc
networks:
- nexus-terminal-network
backend:
image: heavrnl/nexus-terminal-backend:latest
container_name: nexus-terminal-backend
env_file:
- .env
environment:
NODE_ENV: production
PORT: 3001
RDP_BACKEND_API_BASE: http://rdp:9090
VNC_BACKEND_API_BASE: http://vnc:9091
volumes:
- ./data:/app/data
networks:
- nexus-terminal-network
rdp:
image: heavrnl/nexus-terminal-rdp:latest
container_name: nexus-terminal-rdp
environment:
GUACD_HOST: guacd
GUACD_PORT: 4822
API_PORT: 9090
GUAC_WS_PORT: 8081
FRONTEND_URL: http://frontend
MAIN_BACKEND_URL: http://backend:3001
NODE_ENV: production
networks:
- nexus-terminal-network
depends_on:
- guacd
- backend
vnc:
container_name: nexus-vnc
image: nexus-vnc # 确保这个标签与 docker-compose.build.yml 或直接构建命令中的标签一致
build:
context: ./packages/vnc
dockerfile: Dockerfile
ports:
- "9091:9091" # VNC API port
- "8082:8082" # VNC WebSocket port
environment:
GUACD_HOSTNAME: guacd
GUACD_PORT: 4822
VNC_PORT: 9091
VNC_WS_PORT: 8082
ENCRYPTION_KEY: ${ENCRYPTION_KEY} # 复用 RDP 的密钥
FRONTEND_URL: ${FRONTEND_URL}
MAIN_BACKEND_URL: ${MAIN_BACKEND_URL}
NODE_ENV: production
restart: unless-stopped
networks:
- nexus-terminal-network
depends_on:
- guacd
- backend
guacd:
image: guacamole/guacd:latest
container_name: nexus-terminal-guacd
networks:
- nexus-terminal-network
restart: unless-stopped
networks:
nexus-terminal-network:
driver: bridge
name: nexus-terminal-network
enable_ipv6: true
ipam:
config:
- subnet: fd01::/80
gateway: fd01::1