# GuruRMM Production Deployment for Jupiter (Unraid) # # Deployment steps: # 1. Copy this directory to Jupiter: /mnt/user/appdata/gururmm/ # 2. Copy .env.example to .env and configure # 3. Login to Gitea registry: docker login git.azcomputerguru.com # 4. Run: docker-compose up -d # # For Unraid Docker UI, you can also create individual containers manually # using the settings in this file as reference. version: '3.8' services: # PostgreSQL Database # On Unraid, you might prefer to use the existing PostgreSQL from Community Apps # If so, remove this service and update DATABASE_URL in .env postgres: image: postgres:16-alpine container_name: gururmm-db restart: unless-stopped environment: POSTGRES_DB: ${DB_NAME:-gururmm} POSTGRES_USER: ${DB_USER:-gururmm} POSTGRES_PASSWORD: ${DB_PASSWORD:?DB_PASSWORD is required} volumes: - /mnt/user/appdata/gururmm/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-gururmm} -d ${DB_NAME:-gururmm}"] interval: 10s timeout: 5s retries: 5 networks: - gururmm # GuruRMM Server (API + WebSocket) server: image: git.azcomputerguru.com/azcomputerguru/gururmm-server:latest container_name: gururmm-server restart: unless-stopped environment: DATABASE_URL: postgres://${DB_USER:-gururmm}:${DB_PASSWORD}@postgres/${DB_NAME:-gururmm} JWT_SECRET: ${JWT_SECRET:?JWT_SECRET is required} SERVER_HOST: 0.0.0.0 SERVER_PORT: 3001 RUST_LOG: ${RUST_LOG:-info} depends_on: postgres: condition: service_healthy ports: - "3001:3001" labels: # For Nginx Proxy Manager or Traefik - "traefik.enable=true" - "traefik.http.routers.gururmm-api.rule=Host(`rmm-api.azcomputerguru.com`)" - "traefik.http.services.gururmm-api.loadbalancer.server.port=3001" networks: - gururmm # GuruRMM Dashboard (when ready) # dashboard: # image: git.azcomputerguru.com/azcomputerguru/gururmm-dashboard:latest # container_name: gururmm-dashboard # restart: unless-stopped # environment: # VITE_API_URL: ${VITE_API_URL:-https://rmm-api.azcomputerguru.com} # ports: # - "3000:80" # depends_on: # - server # labels: # - "traefik.enable=true" # - "traefik.http.routers.gururmm-dashboard.rule=Host(`rmm.azcomputerguru.com`)" # - "traefik.http.services.gururmm-dashboard.loadbalancer.server.port=80" # networks: # - gururmm networks: gururmm: driver: bridge