Files
infrastructure/home-server/docker-compose.yml
2026-02-15 18:20:55 -07:00

168 lines
4.6 KiB
YAML

services:
# jellyfin:
# image: jellyfin/jellyfin
# container_name: jellyfin
# user: 1000:1000
# network_mode: "host"
# volumes:
# - /data/jellyfin/config:/config
# - /data/jellyfin/cache:/cache
# - /data/media/music/tagged:/music
# - /data/media/movies:/movies
# - /data/media/tvshows:/tvshows
# - /data/nextcloud/html/data/alex/files/Documents/home-video:/home-videos:ro
# restart: "unless-stopped"
# group_add:
# - "303" # getent group render | cut -d: -f3
# devices:
# - /dev/dri/renderD128:/dev/dri/renderD128
# environment:
# - JELLYFIN_PublishedServerUrl=https://jellyfin.alexmickelson.guru
nextcloud:
build:
context: nextcloud
container_name: nextcloud
environment:
- TZ=America/Denver
- OVERWRITEPROTOCOL=https
- MYSQL_PASSWORD=slkdnflksnelkfnsdweoinv
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=nextcloud-db
volumes:
- /data/nextcloud/html:/var/www/html
- /data/media/music:/music
- /data/media/movies:/movies
- /data/media/tvshows:/tvshows
- /data/media/shared:/shared
- /data/media/audiobooks:/audiobooks
restart: unless-stopped
ports:
- 9001:80
networks:
- proxy
nextcloud-cron:
build:
context: nextcloud
container_name: nextcloud-cron
environment:
- TZ=America/Denver
- OVERWRITEPROTOCOL=https
- MYSQL_PASSWORD=slkdnflksnelkfnsdweoinv
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=nextcloud-db
volumes:
- /data/nextcloud/html:/var/www/html
- /data/media/music:/music
- /data/media/movies:/movies
- /data/media/tvshows:/tvshows
- /data/media/shared:/shared
- /data/media/audiobooks:/audiobooks
- /data/media/audiobooks-libation:/audiobooks-libation
restart: unless-stopped
entrypoint: /cron.sh
depends_on:
- nextcloud
networks:
- proxy
nextcloud-db:
image: mariadb:10.6
container_name: nextcloud_db
# mysql -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- /data/nextcloud-db/:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=klsdnofinsodkflksen34tesrg
- MYSQL_PASSWORD=slkdnflksnelkfnsdweoinv
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
networks:
- proxy
homeassistant:
container_name: homeassistant
image: homeassistant/home-assistant:stable
volumes:
- /data/homeAssistant/config:/config
- /etc/localtime:/etc/localtime:ro
# - /dev/serial/by-id:/dev/serial/by-id
devices:
# - /dev/ttyUSB0:/dev/ttyUSB0
# - /dev/ttyUSB1:/dev/ttyUSB1
- /dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_0cad0783fc73ef11b46be21e313510fd-if00-port0:/dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_0cad0783fc73ef11b46be21e313510fd-if00-port0
environment:
- TZ=America/Denver
- OPENAI_BASE_URL=http://openwebui.beefalo-newton.ts.net/v1
restart: always
network_mode: host
prometheus:
image: public.ecr.aws/bitnami/prometheus:2
container_name: prometheus
restart: unless-stopped
environment:
- HOMEASSISTANT_TOKEN=${HOMEASSISTANT_TOKEN}
volumes:
- ./prometheus.yml:/opt/bitnami/prometheus/conf/prometheus.yml
- /data/prometheus:/opt/bitnami/prometheus/data
ports:
- 9091:9090
networks:
- proxy
grafana:
image: grafana/grafana:main
container_name: grafana
restart: always
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
volumes:
- /data/grafana:/var/lib/grafana
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/robots.txt"]
interval: 10s
timeout: 5s
retries: 3
start_period: 3s
networks:
- proxy
ports:
- 3000:3000
esphome:
container_name: esphome
image: ghcr.io/esphome/esphome
volumes:
- /data/esphome:/config
- /etc/localtime:/etc/localtime:ro
restart: always
network_mode: host
environment:
- USERNAME=alex
- PASSWORD=alex
searxng:
image: docker.io/searxng/searxng:latest
container_name: searxng
ports:
- "4446:8080"
volumes:
- /data/searxng:/etc/searxng
- /data/searxng-data:/var/cache/searxng
environment:
- SEARXNG_BASE_URL=http://server.alexmickelson.guru:4446/
restart: unless-stopped
networks:
proxy:
name: proxy
external: true