version: "3.8" networks: authelia: driver: bridge docker-local: driver: bridge ipam: driver: default config: - subnet: ${SUBNET_PREFIX}0/24 volumes: portainer_data: name: portainer_data services: portainer: #Portainer is a web UI for managing your docker containers https://www.portainer.io/ image: portainer/portainer-ce:latest container_name: portainer volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data ports: - "8000:8000" - "9443:9443" restart: always organizr: #organizr is a server control panel https://github.com/causefx/Organizr image: organizr/organizr container_name: organizr volumes: - ${DATA_PATH}/organizr/config:/config environment: - PGID=${GID} - PUID=${UID} - TZ=${TZ} - branch=v2-master ports: - ${ORGANIZR_PORT}:80 restart: unless-stopped ddns-updater: # dns updater, prevents issues caused by cycling residential ip address https://hub.docker.com/r/qmcgaw/ddns-updater image: qmcgaw/ddns-updater:latest container_name: ddns-updater networks: docker-local: ipv4_address: ${SUBNET_PREFIX}2 environment: - LISTENING_PORT=8000 - ROOT_URL=/ - TZ=${TZ} volumes: - ${DATA_PATH}/ddns-updater/data:/updater/data ports: - ${DDNS_PORT}:8000/tcp restart: unless-stopped home-assistant: #home automation hub. Control lights, audio, temperature, etc. https://www.home-assistant.io/installation/linux#docker-compose image: ghcr.io/home-assistant/home-assistant:stable container_name: home-assistant volumes: - ${DATA_PATH}/home-assistant/config:/config - /etc/localtime:/etc/localtime:ro - /run/dbus:/run/dbus:ro - ${MEDIA_PATH}:/media/Media:ro privileged: true network_mode: host restart: unless-stopped uptime-kuma: # uptime watcher, send notifications when something is down https://github.com/louislam/uptime-kuma image: louislam/uptime-kuma:latest container_name: uptime-kuma networks: docker-local: ipv4_address: ${SUBNET_PREFIX}3 volumes: - ${DATA_PATH}/uptime-kuma/data:/app/data ports: - ${KUMA_PORT}:3001 restart: unless-stopped lldap: #very simple LDAP implementation- in case you want a central account for all other services https://github.com/lldap/lldap image: nitnelave/lldap:stable container_name: lldap networks: docker-local: ipv4_address: ${SUBNET_PREFIX}4 volumes: - ${DATA_PATH}/lldap/data:/data hostname: ${LLDAP_SERVER} ports: - ${LLDAP_LDAP_PORT}:3890 - ${LLDAP_WEBUI_PORT}:17170 - ${LLDAP_LDAPS_PORT}:6360 restart: unless-stopped nginx-proxy-manager: # web ui for managing nginx reverse proxy config https://nginxproxymanager.com/ image: jc21/nginx-proxy-manager:latest container_name: nginx-proxy-manager networks: docker-local: ipv4_address: ${SUBNET_PREFIX}5 volumes: - ${DATA_PATH}/nginx-proxy-manager/data:/data - ${DATA_PATH}/nginx-proxy-manager/letsencrypt:/etc/letsencrypt - ${DATA_PATH}/nginx-proxy-manager/static:/static - ${DATA_PATH}/nginx-proxy-manager/snippets:/snippets:ro ports: - ${NGINX_HTTP_PORT}:80 - ${NGINX_WEBUI_PORT}:81 - ${NGINX_HTTPS_PORT}:443 restart: unless-stopped authelia: # authentication frontend for services that don't natively support external login image: authelia/authelia container_name: authelia environment: - PUID=${UID} - PGID=${GID} - TZ=${TZ} volumes: - ${DATA_PATH}/authelia/config:/config networks: - authelia ports: - 9091:9091 restart: unless-stopped authelia-redis: # data structure server for authelia #https://redis.io/docs/about/ image: redis:alpine container_name: authelia-redis environment: - TZ=${TZ} - PUID=${UID} - PGID=${GID} volumes: - ${DATA_PATH}/authelia/redis:/data networks: - authelia expose: - 6379 restart: unless-stopped wyoming-piper: # text to speech for home assistant https://github.com/rhasspy/wyoming-addons image: rhasspy/wyoming-piper container_name: wyoming-piper networks: docker-local: ipv4_address: ${SUBNET_PREFIX}6 volumes: - ${DATA_PATH}/wyoming_piper/data:/data ports: - ${WYOMING_PIPER_PORT}:10200 command: --voice en-us-libritts-high restart: unless-stopped wyoming-whisper: #speech to text for home assistant https://github.com/rhasspy/wyoming-addons image: rhasspy/wyoming-whisper container_name: wyoming_whisper networks: docker-local: ipv4_address: ${SUBNET_PREFIX}7 volumes: - ${DATA_PATH}/wyoming_whisper/data:/data ports: - ${WYOMING_WHISPER_PORT}:10300 command: --model tiny-int8 --language en restart: unless-stopped # apcupsd: # image: gregewing/apcupsd:latest # container_name: apcupsd # volumes: # - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket # - ${DATA_PATH}/apcupsd:/etc/apcupsd # environment: # - UPSTYPE=net # - DEVICE=router-netgear-r8000:3551 # - TZ=${TZ} # restart: always # tftpd: # image: docker.io/kalaksi/tftpd # container_name: tftp # environment: # TFTPD_BIND_ADDRESS: "0.0.0.0:1069" # TFTPD_EXTRA_ARGS: '--blocksize 1468' # cap_drop: # - ALL # cap_add: # - SETUID # - SETGID # - SYS_CHROOT # volumes: # - ${DATA_PATH}/tftp/boot:/tftpboot/boot # - ${DATA_PATH}/tftp/config.cfg:/tftpboot/pxelinux.cfg:ro # ports: # - 69:1069/udp # restart: unless-stopped