d_personal/docker-compose.yml

248 lines
8.0 KiB
YAML
Raw Normal View History

2022-07-24 15:24:53 +02:00
version: '3.6'
#
2022-08-09 11:06:53 +02:00
# INTERNAL NETWORKS
#
2022-08-09 11:06:53 +02:00
#
networks:
2022-07-25 23:40:38 +02:00
nextcloud_network:
name: nextcloud_network
2022-08-06 11:22:43 +02:00
ha_network:
name: ha_network
2022-07-24 15:24:53 +02:00
services:
2022-08-09 11:06:53 +02:00
2022-07-24 15:24:53 +02:00
certbot:
image: certbot/certbot:latest
container_name: certbot
restart: unless-stopped
volumes:
2022-08-09 11:06:53 +02:00
- /etc/letsencrypt:/etc/letsencrypt:rw
2022-07-24 15:24:53 +02:00
- ${DOCKER_CONFIG_DIR}/certbot/www:/var/www/certbot:rw
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
#
2022-07-24 20:50:52 +02:00
# HOMESERVER SERVICES
2022-07-24 15:24:53 +02:00
#
transmission:
image: lscr.io/linuxserver/transmission:latest
container_name: transmission
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- TRANSMISSION_WEB_HOME=/combustion-release/
- USER=${TRANSMISSION_USERNAME}
- PASS=${TRANSMISSION_PASSWORD}
volumes:
- ${DOCKER_CONFIG_DIR}/transmission/config:/config
2022-08-09 11:06:53 +02:00
- ${TRANSMISSION_DOWNLOAD_DIR}:/downloads
2022-07-24 15:24:53 +02:00
- ${DOCKER_DATA_DIR}/transmission/watch:/watch
2022-08-09 11:06:53 +02:00
ports:
- 9091:9091
2022-07-24 15:24:53 +02:00
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
group_add:
- "109" # cat /etc/group | grep render
- "44" # cat /etc/group | grep video
2022-07-24 15:24:53 +02:00
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- JELLYFIN_PublishedServerUrl=${JELLYFIN_DOMAIN_NAME}
volumes:
- ${DOCKER_CONFIG_DIR}/jellyfin/library:/config
- /mnt/drive-one/media/series:/data/series
- /mnt/drive-one/media/movies:/data/movies
- /dev/shm/JellyfinTranscode:/transcode
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
2022-08-09 11:06:53 +02:00
ports:
- 8096:8096
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- ${DOCKER_CONFIG_DIR}/radarr:/config
- /mnt/drive-one/media/movies:/movies
- ${TRANSMISSION_DOWNLOAD_DIR}:/downloads
ports:
- 7878:7878
2022-07-24 15:24:53 +02:00
2022-08-09 11:33:13 +02:00
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- ${DOCKER_CONFIG_DIR}/sonarr:/config
- /mnt/drive-one/media/series:/tv
- ${TRANSMISSION_DOWNLOAD_DIR}:/downloads
ports:
- 8989:8989
2022-07-24 15:24:53 +02:00
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- ${DOCKER_DATA_DIR}/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
2022-08-09 11:06:53 +02:00
ports:
- 3080:3000
2022-07-24 15:24:53 +02:00
nextcloud:
image: nextcloud:latest
container_name: nextcloud
restart: unless-stopped
depends_on:
2022-07-24 16:11:50 +02:00
- nextcloud_db
2022-07-24 15:24:53 +02:00
environment:
- POSTGRES_HOST=nextcloud_db
- POSTGRES_DB=nextcloud
- POSTGRES_USER=${POSTGRES_NEXTCLOUD_USERNAME}
- POSTGRES_PASSWORD=${POSTGRES_NEXTCLOUD_PASSWORD}
volumes:
- ${DOCKER_DATA_DIR}/nextcloud:/var/www/html
2022-08-09 11:06:53 +02:00
ports:
- 42069:80
2022-07-24 15:24:53 +02:00
networks:
2022-07-25 23:40:38 +02:00
- nextcloud_network
2022-07-24 15:24:53 +02:00
nextcloud_db:
image: postgres:latest
container_name: nextcloud_db
hostname: nextcloud_db
restart: unless-stopped
environment:
- POSTGRES_DB=nextcloud
- POSTGRES_USER=${POSTGRES_NEXTCLOUD_USERNAME}
- POSTGRES_PASSWORD=${POSTGRES_NEXTCLOUD_PASSWORD}
2022-07-25 12:04:59 +02:00
volumes:
- ${DOCKER_DATA_DIR}/nextcloud_db:/var/lib/postgresql/data
2022-07-24 15:24:53 +02:00
networks:
2022-07-25 23:40:38 +02:00
- nextcloud_network
2022-07-25 23:40:38 +02:00
photoprism: # https://docs.photoprism.app/getting-started/docker-compose/#command-line-interface
2022-07-25 23:14:17 +02:00
image: photoprism/photoprism:latest
2022-08-07 14:49:54 +02:00
restart: unless-stopped
2022-07-25 23:14:17 +02:00
container_name: photoprism
security_opt:
- seccomp:unconfined
- apparmor:unconfined
environment:
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # YOUR INITIAL ADMIN PASSWORD (MINIMUM 8 CHARACTERS, USERNAME "admin")
PHOTOPRISM_SITE_URL: "https://photos.spanskiduh.xyz/" # public server URL incl http:// or https:// and /path, :port is optional
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip)
PHOTOPRISM_LOG_LEVEL: "info" # log level: trace, debug, info, warning, error, fatal, or panic
2022-08-06 11:22:43 +02:00
PHOTOPRISM_PUBLIC: "false" # no authentication required (disables password protection)
2022-07-25 23:14:17 +02:00
PHOTOPRISM_READONLY: "true" # do not modify originals directory (reduced functionality)
PHOTOPRISM_EXPERIMENTAL: "true" # enables experimental features
PHOTOPRISM_DISABLE_CHOWN: "false" # disables storage permission updates on startup
PHOTOPRISM_DISABLE_WEBDAV: "false" # disables built-in WebDAV server
PHOTOPRISM_DISABLE_SETTINGS: "false" # disables settings UI and API
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow
PHOTOPRISM_DISABLE_FACES: "false" # disables facial recognition
PHOTOPRISM_DISABLE_CLASSIFICATION: "false" # disables image classification
PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW files
PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW files (reduces performance)
PHOTOPRISM_JPEG_QUALITY: 85 # image quality, a higher value reduces compression (25-100)
PHOTOPRISM_DETECT_NSFW: "true" # flag photos as private that MAY be offensive (requires TensorFlow)
PHOTOPRISM_UPLOAD_NSFW: "true" # allows uploads that MAY be offensive
2022-08-06 11:22:43 +02:00
PHOTOPRISM_DATABASE_DRIVER: "sqlite" # SQLite is an embedded database that doesn't require a server
2022-07-25 23:14:17 +02:00
PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App"
PHOTOPRISM_SITE_DESCRIPTION: "" # meta site description
2022-08-06 11:22:43 +02:00
PHOTOPRISM_SITE_AUTHOR: "spanskiduh" # meta site author
2022-07-25 23:14:17 +02:00
devices:
- "/dev/dri:/dev/dri"
working_dir: "/photoprism" # do not change or remove
volumes:
2022-08-06 11:22:43 +02:00
- "/home/hsrv/d_personal/data/nextcloud/data/spanskiduh/files/InstantUpload/:/photoprism/originals" # Original media files (DO NOT REMOVE)
2022-07-25 23:14:17 +02:00
- "${DOCKER_DATA_DIR}/photoprism:/photoprism/storage" # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE)
2022-08-09 11:06:53 +02:00
ports:
- 2080:2342
2022-07-24 20:50:52 +02:00
#
2022-07-25 23:40:38 +02:00
# IOT MANAGEMENT & DASHBOARD (todo)
2022-07-24 20:50:52 +02:00
#
2022-08-06 11:22:43 +02:00
mqtt:
image: eclipse-mosquitto:latest
container_name: mqtt
restart: unless-stopped
ports:
- 1883:1883
- 9001:9001
volumes:
- ${DOCKER_LOG_DIR}:/mosquitto/log
- ${DOCKER_DATA_DIR}/mqtt:/mosquitto/data
- ${DOCKER_CONFIG_DIR}/mqtt:/mosquitto/config
networks:
- ha_network
ha_postgres:
image: postgres:latest
container_name: ha_postgres
2022-07-25 12:04:59 +02:00
restart: unless-stopped
environment:
2022-08-06 11:22:43 +02:00
- POSTGRES_DB=ha
- POSTGRES_USER=${POSTGRES_HA_USERNAME}
- POSTGRES_PASSWORD=${POSTGRES_HA_PASSWORD}
2022-07-25 12:04:59 +02:00
volumes:
2022-08-06 11:22:43 +02:00
- ${DOCKER_DATA_DIR}/ha_postgres:/var/lib/postgresql/data
- /etc/localtime:/etc/localtime:ro
networks:
- ha_network
homeassistant:
depends_on:
- ha_postgres
container_name: homeassistant
image: homeassistant/home-assistant:latest
restart: unless-stopped
privileged: true
command: [ "python", "-m", "homeassistant", "--config", "/config", "--log-rotate-days", '3' ]
volumes:
- ${DOCKER_CONFIG_DIR}/homeassistant:/config
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
2022-08-09 11:06:53 +02:00
ports:
- 8123:8123
2022-07-25 12:04:59 +02:00
networks:
2022-08-06 11:22:43 +02:00
- ha_network
2022-07-25 12:04:59 +02:00
2022-07-24 20:50:52 +02:00
#
# OTHER SERVICES
#
2022-07-25 12:04:59 +02:00
2022-07-24 21:27:44 +02:00
autism_app:
container_name: autism_app
image: autism_app
2022-07-25 12:04:59 +02:00
restart: unless-stopped
2022-07-24 21:27:44 +02:00
build:
context: ./autism-app
volumes:
- ./autism-app/src:/app/src
2022-08-09 11:06:53 +02:00
ports:
- 3000:3000