#======================================================================# # Portainer Stack - Homarr Dashboard # # Repo: git.lemonlink.eu/impulsivefps/homarr-dashboard # # Storage: /opt/homarr # #======================================================================# # # DEPLOY OPTIONS: # Option A: With NPM on same machine - uncomment npm-network lines # Option B: NPM on different machine - use host ports (default) # Option C: Cloudflare Tunnel - use cloudflared sidecar # #------------------------------------------------------------------# version: '3.8' services: #------------------------------------------------------------------# # Homarr 1.0 - Modern Dashboard # #------------------------------------------------------------------# homarr: container_name: homarr image: ghcr.io/homarr-labs/homarr:beta restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /opt/homarr/appdata:/appdata environment: - SECRET_ENCRYPTION_KEY=${SECRET_ENCRYPTION_KEY} - DB_URL=/appdata/db/homarr.db - AUTH_PROVIDERS=${AUTH_PROVIDERS:-credentials} - NODE_ENV=production ports: # Expose on host for remote NPM or direct access - '7575:7575' networks: - homarr-network # Uncomment if NPM is on SAME machine: # - npm-network depends_on: - dash #------------------------------------------------------------------# # Dash. - System Monitoring # #------------------------------------------------------------------# dash: container_name: dash image: mauricenino/dashdot:latest restart: unless-stopped privileged: true volumes: - /:/mnt/host:ro environment: - DASHDOT_ENABLE_CPU_TEMPS=true - DASHDOT_ALWAYS_SHOW_PERCENTAGES=true - DASHDOT_ENABLE_STORAGE_SPLIT_VIEW=true - DASHDOT_PAGE_TITLE=System Overview - DASHDOT_SPEED_TEST_INTERVAL=${DASH_SPEED_TEST_INTERVAL:-240} - DASHDOT_WIDGET_LIST=os,cpu,storage,ram,network - DASHDOT_OS_LABEL_LIST=brand,os,arch,up_since - DASHDOT_CPU_LABEL_LIST=brand,model,cores,threads,frequency - DASHDOT_STORAGE_LABEL_LIST=brand,size,type - DASHDOT_RAM_LABEL_LIST=brand,size,type,frequency - DASHDOT_NETWORK_LABEL_LIST=type,speed_up,speed_down,interface_speed ports: # Expose on host for remote NPM or direct access - '3001:3001' networks: - homarr-network # Uncomment if NPM is on SAME machine: # - npm-network #------------------------------------------------------------------# # Watchtower - Auto-update containers # #------------------------------------------------------------------# watchtower: container_name: watchtower image: containrrr/watchtower:latest restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock:ro environment: - WATCHTOWER_CLEANUP=true - WATCHTOWER_POLL_INTERVAL=${WATCHTOWER_INTERVAL:-86400} - WATCHTOWER_INCLUDE_STOPPED=true - WATCHTOWER_LABEL_ENABLE=true command: --interval ${WATCHTOWER_INTERVAL:-86400} networks: - homarr-network #------------------------------------------------------------------# # (OPTIONAL) Cloudflare Tunnel - For external access without NPM # #------------------------------------------------------------------# # Uncomment this section to use Cloudflare Tunnel instead of NPM # # cloudflared: # container_name: homarr-cloudflared # image: cloudflare/cloudflared:latest # restart: unless-stopped # command: tunnel --no-autoupdate run --token ${CF_TUNNEL_TOKEN} # networks: # - homarr-network # depends_on: # - homarr # - dash networks: homarr-network: driver: bridge # Uncomment if NPM is on SAME machine: # npm-network: # external: true