docker/docker-compose.yml

481 lines
12 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:/run/ddclient-cache
#- 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
- /storage/@media/download:/downloads
- /storage/@media/download/torrent:/watch
- ./transmission/eodl.sh:/eodl.sh
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
#jackett:
# image: lscr.io/linuxserver/jackett:latest
# container_name: jackett
# environment:
# <<: *common-environment
# AUTO_UPDATE: true #optional
# RUN_OPTS: #optional
# volumes:
# - jackett-config:/config
# - /mnt/storage/media/dl:/downloads
# ports:
# - 9117:9117
# restart: unless-stopped
#sonarr:
# image: lscr.io/linuxserver/sonarr:latest
# container_name: sonarr
# environment: *common-environment
# volumes:
# - sonarr-config:/config
# - /mnt/storage/media:/data
# #- /mnt/storage/video/Films/:/movies
# #- /mnt/storage/download/:/downloads
# ports:
# - 8989:8989
# restart: unless-stopped
syncthing:
image: lscr.io/linuxserver/syncthing:latest
container_name: syncthing
hostname: drmanhattan
environment: *common-environment
volumes:
- ./syncthing:/config
- sync-notes:/notes
- sync-audrey:/audrey-sync
- ./data/signal-bkp:/signal-bkp
- ./data/audrey-projets:/audrey-projets
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
zotero-sync:
image: lscr.io/linuxserver/nginx:latest
container_name: zotero-sync
environment: *common-environment
volumes:
- ./zotero-sync:/config
- zotero-sync-data:/data
restart: unless-stopped
# Not in use anymore
# subdomain still activated though
#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
# NOTE: Temporarily disable zigbee and wifi iot
#
# 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
gitea:
image: gitea/gitea:latest
#build: gitea
container_name: gitea
restart: unless-stopped
environment:
<<: *common-environment
GITEA__database__DB_TYPE: mysql
GITEA__database__HOST: gitea-db:3306
GITEA__database__NAME: gitea
GITEA__database__USER: gitea
GITEA__database__PASSWD: gitea
GITEA__service__DISABLE_REGISTRATION: true
GITEA__server__DOMAIN: git.guiotte.fr
GITEA__server__SSH_DOMAIN: git.guiotte.fr
GITEA__server__LANDING_PAGE: explore
depends_on:
- gitea-db
volumes:
- gitea-data:/data
gitea-db:
image: linuxserver/mariadb:latest
container_name: gitea-db
restart: unless-stopped
environment:
<<: *common-environment
FILE__MYSQL_ROOT_PASSWORD: /run/secrets/gitea-db-root-pw
FILE__MYSQL_PASSWORD: /run/secrets/gitea-db-pw
MYSQL_DATABASE: gitea
MYSQL_USER: gitea
volumes:
- gitea-db:/config
secrets:
- gitea-db-root-pw
- gitea-db-pw
nocodb:
image: nocodb/nocodb:latest
container_name: nocodb
restart: unless-stopped
environment:
<<: *common-environment
NC_DB_JSON_FILE: /run/secrets/nocodb-json
volumes:
- nocodb-data:/usr/app/data
secrets:
- nocodb-json
nocodb-db:
image: linuxserver/mariadb:latest
container_name: nocodb-db
restart: unless-stopped
environment:
<<: *common-environment
FILE__MYSQL_ROOT_PASSWORD: /run/secrets/nocodb-db-root-pw
FILE__MYSQL_PASSWORD: /run/secrets/nocodb-db-pw
MYSQL_DATABASE: nocodb
MYSQL_USER: nocodb
volumes:
- nocodb-db:/config
secrets:
- nocodb-db-root-pw
- nocodb-db-pw
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
<<: *common-environment
JELLYFIN_PublishedServerUrl: https://flix.guiotte.fr
volumes:
- jellyfin-config:/config
- /storage/@media/video:/data/video
- /storage/@media/music:/data/music
ports:
- 7359:7359/udp #optional Allows clients to discover Jellyfin on the local network
- 1900:1900/udp #optional Service discovery used by DNLA and clients
restart: unless-stopped
devices:
- /dev/dri:/dev/dri
taskchampion:
image: ghcr.io/gothenburgbitfactory/taskchampion-sync-server:latest
container_name: taskchampion
restart: unless-stopped
environment:
- "RUST_LOG=info" # Log every request
- "DATA_DIR=/taskchampion-data"
- "TASKCHAMPION_SYNC_SERVER_HOSTNAME=task.guiotte.fr"
- "TASKCHAMPION_SYNC_SERVER_CLIENT_ID=${TASKCHAMPION_SYNC_SERVER_CLIENT_ID}"
volumes:
- taskchampion-data:/taskchampion-data
volumes:
money-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:
zotero-sync-data:
gitea-data:
gitea-db:
sonarr-config:
jackett-config:
sync-audrey:
sync-notes:
nocodb:
nocodb-data:
nocodb-db:
jellyfin-config:
taskchampion-data:
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
gitea-db-root-pw:
file: gitea-db-root-pw.secret
gitea-db-pw:
file: gitea-db-pw.secret
nocodb-db-root-pw:
file: nocodb-db-root-pw.secret
nocodb-db-pw:
file: nocodb-db-pw.secret
nocodb-json:
file: nocodb-json.secret