docker/docker-compose.yml

356 lines
8.6 KiB
YAML

x-common-environment: &common-environment
PUID: 1000
PGID: 1000
TZ: Europe/Helsinki
services:
bind9:
image: ubuntu/bind9:9.18-22.04_beta
container_name: bind9
restart: always
volumes:
- ./bind9/named.conf:/etc/bind/named.conf
- ./bind9/local.db:/etc/bind/local.db
- ./bind9/lan.db:/etc/bind/lan.db
- ./bind9/guiotte.db:/etc/bind/guiotte.db
environment: *common-environment
ports:
- "53:53/udp"
swag:
image: lscr.io/linuxserver/swag
container_name: swag
restart: always
cap_add:
- NET_ADMIN
environment:
<<: *common-environment
URL: guiotte.fr
SUBDOMAINS: wildcard
VALIDATION: dns
DNSPLUGIN: ovh
EMAIL: florent@guiotte.fr
volumes:
- ./swag:/config
ports:
- 443:443
- 80:80
ddclient:
image: lscr.io/linuxserver/ddclient:latest
container_name: ddclient
restart: unless-stopped
environment: *common-environment
volumes:
- ./ddclient:/config
- ddclient-cache:/var/cache/ddclient
money:
image: ihatemoney/ihatemoney
container_name: money
restart: always
volumes:
- money-data:/database
environment:
- ACTIVATE_DEMO_PROJECT=False
- SESSION_COOKIE_SECURE=False
- SECRET_KEY=yolo
transmission:
image: lscr.io/linuxserver/transmission:latest
container_name: transmission
environment:
<<: *common-environment
FILE__USER: /run/secrets/transmission-user
FILE__PASS: /run/secrets/transmission-pw
volumes:
- transmission-config:/config
- /mnt/storage/download:/downloads
- /mnt/storage/download/torrent:/watch
ports:
- 9091:9091
- 51413:51413
- 51413:51413/udp
restart: unless-stopped
secrets:
- transmission-user
- transmission-pw
# WIP
# radarr:
# image: lscr.io/linuxserver/radarr:latest
# container_name: radarr
# environment:
# - PUID=1000
# - PGID=1000
# - TZ=Europe/Helsinki
# volumes:
# - ./radarr:/config
# - /mnt/storage/video/Films/:/movies
# - /mnt/storage/download/:/downloads
# ports:
# - 7878:7878
# restart: unless-stopped
syncthing:
image: lscr.io/linuxserver/syncthing:latest
container_name: syncthing
hostname: drmanhattan
environment: *common-environment
volumes:
- ./syncthing:/config
- /mnt/storage/music/Florent:/music
- /mnt/storage/audrey-sync:/audrey-sync
- /mnt/storage/audrey-projets:/audrey-projets
- /home/florent/syncthing/notes:/notes
- /home/florent/syncthing/signal-bkp:/signal-bkp
ports:
- 22000:22000/tcp
- 22000:22000/udp
- 21027:21027/udp
restart: unless-stopped
lychee-db:
image: lscr.io/linuxserver/mariadb:latest
container_name: lychee-db
restart: always
volumes:
- lychee-db:/config
environment:
<<: *common-environment
FILE__MYSQL_ROOT_PASSWORD: /run/secrets/lychee-db-root-pw
FILE__MYSQL_PASSWORD: /run/secrets/lychee-db-pw
MYSQL_DATABASE: lychee
MYSQL_USER: lychee
secrets:
- lychee-db-root-pw
- lychee-db-pw
lychee:
image: lscr.io/linuxserver/lychee:latest
container_name: lychee
restart: always
depends_on:
- lychee-db
volumes:
- lychee-config:/config
- lychee-pictures:/pictures
environment:
<<: *common-environment
FILE__DB_PASSWORD: /run/secrets/lychee-db-pw
DB_HOST: lychee-db
DB_CONNECTION: mysql
DB_USERNAME: lychee
DB_DATABASE: lychee
DB_PORT: 3306
APP_URL: https://photos.guiotte.fr
TRUSTED_PROXIES: 172.22.0.0/24
secrets:
- lychee-db-pw
# WIP
# zotero:
# #image: lscr.io/linuxserver/nginx:latest
# #image: sashgorokhov/webdav
# build: zotero
# container_name: zotero
# environment:
# - PUID=1000
# - PGID=1000
# - TZ=Europe/Helsinki
# - USERNAME=user
# - PASSWORD=passwd
# volumes:
# - zotero-data:/data
# #- zotero-data:/media
# restart: unless-stopped
# # https://github.com/linuxserver/docker-baseimage-alpine-nginx/blob/master/Dockerfile
# # https://github.com/linuxserver/docker-nginx/blob/master/Dockerfile
# # https://github.com/sashgorokhov/docker-nginx-webdav/blob/master/Dockerfile
# # XXX: Missing "nginx-extra" in my build?
taskserver:
build: taskserver
container_name: taskserver
hostname: dm.guiotte.fr
restart: always
environment: *common-environment
env_file:
- taskserver/taskserver.env
ports:
- "53589:53589"
volumes:
- taskserver-data:/var/taskd
- taskserver-certs:/ssl_certs
- ./taskserver/client_certs:/client_certs
slides-notes:
build: slides-notes
container_name: slides-notes
restart: always
environment: *common-environment
volumes:
- ./slides-notes/slides:/app/slides
nextcloud:
image: lscr.io/linuxserver/nextcloud:latest
container_name: nextcloud
restart: unless-stopped
depends_on:
- nextcloud-db
environment: *common-environment
volumes:
- nextcloud-config:/config
- nextcloud-data:/data
nextcloud-db:
image: linuxserver/mariadb:latest
container_name: nextcloud-db
restart: unless-stopped
environment:
<<: *common-environment
FILE__MYSQL_ROOT_PASSWORD: /run/secrets/nextcloud-db-root-pw
FILE__MYSQL_PASSWORD: /run/secrets/nextcloud-db-pw
MYSQL_DATABASE: database
MYSQL_USER: user
volumes:
- nextcloud-db-config:/config
secrets:
- nextcloud-db-root-pw
- nextcloud-db-pw
hedgedoc:
image: lscr.io/linuxserver/hedgedoc:latest
container_name: hedgedoc
depends_on:
- hedgedoc-db
environment:
<<: *common-environment
DB_HOST: hedgedoc-db
DB_PORT: 3306
DB_USER: hedgedoc
DB_NAME: hedgedoc
FILE__DB_PASS: /run/secrets/hedgedoc-db-pw
CMD_DOMAIN: pad.guiotte.fr
CMD_PROTOCOL_USESSL: true
CMD_ALLOW_FREEURL: true
CMD_REQUIRE_FREEURL_AUTHENTICATION: true
volumes:
- hedgedoc-config:/config
restart: unless-stopped
secrets:
- hedgedoc-db-pw
hedgedoc-db:
image: lscr.io/linuxserver/mariadb:latest
container_name: hedgedoc-db
restart: unless-stopped
volumes:
- hedgedoc-db:/config
environment:
<<: *common-environment
FILE__MYSQL_ROOT_PASSWORD: /run/secrets/hedgedoc-db-root-pw
FILE__MYSQL_PASSWORD: /run/secrets/hedgedoc-db-pw
MYSQL_DATABASE: hedgedoc
MYSQL_USER: hedgedoc
secrets:
- hedgedoc-db-root-pw
- hedgedoc-db-pw
homeassistant:
image: lscr.io/linuxserver/homeassistant:latest
container_name: homeassistant
environment:
<<: *common-environment
volumes:
- homeassistant-config:/config
restart: unless-stopped
devices:
- /dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20240219191913-if00:/dev/ttyACM0
yee0:
build: ssh
container_name: yee0
volumes:
- ./ssh/id_rsa:/root/.ssh/id_rsa
environment:
- SSH_HOSTNAME=192.168.1.5
- SSH_USERNAME=alarm
- SSH_LOCAL_PORT=55443
- SSH_DESTINATION=10.0.0.100
- SSH_DESTINATION_PORT=55443
#ports:
# - 55443:55443
restart: unless-stopped
yee1:
build: ssh
container_name: yee1
volumes:
- ./ssh/id_rsa:/root/.ssh/id_rsa
environment:
- SSH_HOSTNAME=192.168.1.5
- SSH_USERNAME=alarm
- SSH_LOCAL_PORT=55443
- SSH_DESTINATION=10.0.0.101
- SSH_DESTINATION_PORT=55443
#ports:
# - 55443:55443
restart: unless-stopped
volumes:
money-data:
zotero-data:
lychee-db:
lychee-config:
lychee-pictures:
taskserver-data:
taskserver-certs:
transmission-config:
nextcloud-data:
nextcloud-config:
nextcloud-db-config:
ddclient-cache:
hedgedoc-config:
hedgedoc-db:
homeassistant-config:
secrets:
lychee-db-root-pw:
file: lychee-db-root-pw.secret
lychee-db-pw:
file: lychee-db-pw.secret
nextcloud-db-root-pw:
file: nextcloud-db-root-pw.secret
nextcloud-db-pw:
file: nextcloud-db-pw.secret
transmission-user:
file: transmission-user.secret
transmission-pw:
file: transmission-pw.secret
hedgedoc-db-root-pw:
file: hedgedoc-db-root-pw.secret
hedgedoc-db-pw:
file: hedgedoc-db-pw.secret