homarr-dashboard/portainer-stack.yml

112 lines
4.0 KiB
YAML

#======================================================================#
# 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