homarr-dashboard/docker-compose.yml

89 lines
3.3 KiB
YAML

#======================================================================#
# Homarr + Dash. - Ultimate Homelab Dashboard Stack #
# Designed for Nginx Proxy Manager (NPM) #
# Repo: gitea.lemonlink.eu/homelab/homarr-dashboard #
#======================================================================#
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
- ./homarr/appdata:/appdata
environment:
# Generate with: openssl rand -hex 32
- SECRET_ENCRYPTION_KEY=${SECRET_ENCRYPTION_KEY}
# Database configuration (SQLite default)
- DB_URL=/appdata/db/homarr.db
# Authentication settings
- AUTH_PROVIDERS=${AUTH_PROVIDERS:-credentials}
# Logging
- NODE_ENV=production
ports:
- '${HOMARR_PORT:-7575}:7575'
networks:
- dashboard-network
- npm-network # Connect to NPM network for reverse proxy
depends_on:
- dash
#------------------------------------------------------------------#
# Dash. - System Monitoring #
#------------------------------------------------------------------#
dash:
container_name: dash
image: mauricenino/dashdot:latest
restart: unless-stopped
privileged: true
volumes:
- /:/mnt/host:ro
environment:
# Widget customization
- DASHDOT_ENABLE_CPU_TEMPS=true
- DASHDOT_ALWAYS_SHOW_PERCENTAGES=true
- DASHDOT_ENABLE_STORAGE_SPLIT_VIEW=true
- DASHDOT_PAGE_TITLE=System Overview
# Network speed test (every 4 hours)
- DASHDOT_SPEED_TEST_INTERVAL=${DASH_SPEED_TEST_INTERVAL:-240}
# Theme - dark to match lemonlink.eu
- 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:
- '${DASH_PORT:-3001}:3001'
networks:
- dashboard-network
- npm-network # Connect to NPM network for reverse proxy
#------------------------------------------------------------------#
# Watchtower - Auto-update containers #
#------------------------------------------------------------------#
watchtower:
container_name: watchtower
image: containrrr/watchtower:latest
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_POLL_INTERVAL=${WATCHTOWER_INTERVAL:-86400}
- WATCHTOWER_INCLUDE_STOPPED=true
- WATCHTOWER_NOTIFICATIONS=${WATCHTOWER_NOTIFICATIONS:-}
command: --interval ${WATCHTOWER_INTERVAL:-86400} homarr dash
networks:
- dashboard-network
networks:
dashboard-network:
driver: bridge
npm-network:
external: true # Created by NPM