reorganize containers

This commit is contained in:
azpsen
2025-01-06 09:54:48 -06:00
parent ccd5e50232
commit dd8948d908
2 changed files with 351 additions and 351 deletions

View File

@@ -3,146 +3,6 @@ services:
#---------------- USER-FACING SERVICES ----------------#
## Jellyfin (media server)
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
- JELLYFIN_PublishedServerUrl=https://watch.azpsen.com
volumes:
- /docker/jellyfin:/config
- /docker/jellyfin/theme:/usr/share/jellyfin/web/theme
- /media/jellyfin/Movies:/data/movies
- /media/jellyfin/TV Shows:/data/tvshows
- /media/jellyfin/Music:/data/music
- /media/jellyfin/Live TV:/data/livetv
ports:
- 8096:8096
- 7539:7539/udp
- 1900:1900/udp
devices:
- /dev/dri:/dev/dri
dns:
- 100.111.0.126
restart: unless-stopped
## Miniflux (rss feed reader)
miniflux:
image: miniflux/miniflux:latest
container_name: miniflux
ports:
- 8772:8080
depends_on:
rss_db:
condition: service_healthy
env_file:
- /docker/env/miniflux.env
healthcheck:
test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
dns:
- 100.111.0.126
restart: unless-stopped
rss_db:
image: postgres:15
container_name: rss_db
env_file:
- /docker/env/miniflux.env
volumes:
- miniflux-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
restart: unless-stopped
## Vaultwarden (password manager)
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
env_file:
- /docker/env/vaultwarden.env
volumes:
- /docker/vaultwarden:/data
ports:
- 8912:80
dns:
- 100.111.0.126
restart: unless-stopped
## Gitea
gitea:
image: docker.io/gitea/gitea:latest-rootless
container_name: gitea
user: "1001"
volumes:
- /docker/gitea/data:/var/lib/gitea
- /docker/gitea/config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- 3003:3000
- 2222:2222
dns:
- 100.111.0.126
restart: unless-stopped
## Link Stack
linkstack:
image: linkstackorg/linkstack
container_name: linkstack
env_file:
- /docker/env/linkstack.env
ports:
- 4000:80
dns:
- 100.111.0.126
volumes:
- linkstack:/htdocs
restart: unless-stopped
## Server Dashboard
dashboard:
image: ghcr.io/gethomepage/homepage:latest
container_name: dashboard
environment:
- PUID=1000
- PGID=1000
ports:
- 3000:3000
volumes:
- /docker/dashboard:/app/config
- /docker/dashboard/images:/app/public/images
- /docker/dashboard/fonts:/app/public/fonts
- /media:/media:ro
dns:
- 100.111.0.126
restart: unless-stopped
docker-proxy:
image: ghcr.io/tecnativa/docker-socket-proxy:latest
container_name: docker-proxy
environment:
- CONTAINERS=1 # Allow access to viewing containers
- POST=0 # Disallow any POST operations (effectively read-only)
ports:
- 2375:2375
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: unless-stopped
## Kiwix (offline wiki)
kiwix-serve:
image: ghcr.io/kiwix/kiwix-serve
container_name: kiwix-serve
volumes:
- /media/kiwix:/data
ports:
- 8765:8080
command: '*.zim'
restart: unless-stopped
## Actual (budget)
actual_server:
image: docker.io/actualbudget/actual-server:latest
@@ -155,129 +15,6 @@ services:
- 100.111.0.126
restart: unless-stopped
## Paperless (document management)
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
container_name: paperless
user: 1000:1000
depends_on:
- paperless_broker
ports:
- 8143:8000
volumes:
- paperless-data:/usr/src/paperless/data
- paperless-media:/usr/src/paperless/media
- /docker/paperless/export:/usr/src/paperless/export
- /docker/paperless/consume:/usr/src/paperless/consume
env_file:
- /docker/env/paperless.env
restart: unless-stopped
paperless_broker:
image: docker.io/library/redis:7
container_name: paperless_broker
volumes:
- redis-data:/data
restart: unless-stopped
## Immich (photo library management)
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:v1.123.0
volumes:
- /media/immich:/usr/src/app/upload
- /docker/immich_db_dump:/db_dump
env_file:
- /docker/env/immich.env
environment:
- PUID=1000
- PGID=1000
ports:
- 2283:2283
depends_on:
- redis
- database
devices:
- /dev/dri:/dev/dri
dns:
- 100.111.0.126
restart: unless-stopped
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:v1.123.0
volumes:
- model-cache:/cache
env_file:
- /docker/env/immich.env
restart: unless-stopped
redis:
container_name: immich_redis
image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
restart: unless-stopped
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
env_file:
- /docker/env/immich.env
volumes:
- /docker/immich:/var/lib/postgresql/data
restart: unless-stopped
## Grocy (home inventory management)
grocy:
container_name: grocy
image: lscr.io/linuxserver/grocy:latest
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
volumes:
- /docker/grocy:/config
ports:
- 9283:80
restart: unless-stopped
## Tandoor (recipe management)
tandoor:
container_name: tandoor
image: vabene1111/recipes
user: 1000:1000
env_file:
- /docker/env/tandoor.env
volumes:
- tandoor-server-config:/opt/recipes/nginx/conf.d
- /docker/tandoor/static:/opt/recipes/staticfiles
- /docker/tandoor/media:/opt/recipes/mediafiles
depends_on:
- tandoor-db
dns:
- 100.111.0.126
restart: unless-stopped
tandoor-server:
image: nginx:mainline-alpine
container_name: tandoor-server
ports:
- 8554:80
env_file:
- /docker/env/tandoor.env
volumes:
- tandoor-server-config:/etc/nginx/conf.d:ro
- /docker/tandoor/static:/static:ro
- /docker/tandoor/media:/media:ro
depends_on:
- tandoor
dns:
- 100.111.0.126
restart: unless-stopped
tandoor-db:
container_name: tandoor-db
image: postgres:16-alpine
user: 1000:1000
env_file:
- /docker/env/tandoor.env
volumes:
- /docker/tandoor/postgresql:/var/lib/postgresql/data
restart: unless-stopped
## AudioBookShelf (audiobook downloading)
audiobookshelf:
container_name: audiobookshelf
@@ -324,6 +61,135 @@ services:
- 100.111.0.126
restart: unless-stopped
## Gitea
gitea:
image: docker.io/gitea/gitea:latest-rootless
container_name: gitea
user: "1001"
volumes:
- /docker/gitea/data:/var/lib/gitea
- /docker/gitea/config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- 3003:3000
- 2222:2222
dns:
- 100.111.0.126
restart: unless-stopped
## Grocy (home inventory management)
grocy:
container_name: grocy
image: lscr.io/linuxserver/grocy:latest
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
volumes:
- /docker/grocy:/config
ports:
- 9283:80
restart: unless-stopped
## Homepage (server dashboard)
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: dashboard
environment:
- PUID=1000
- PGID=1000
ports:
- 3000:3000
volumes:
- /docker/dashboard:/app/config
- /docker/dashboard/images:/app/public/images
- /docker/dashboard/fonts:/app/public/fonts
- /media:/media:ro
dns:
- 100.111.0.126
restart: unless-stopped
docker-proxy:
image: ghcr.io/tecnativa/docker-socket-proxy:latest
container_name: docker-proxy
environment:
- CONTAINERS=1 # Allow access to viewing containers
- POST=0 # Disallow any POST operations (effectively read-only)
ports:
- 2375:2375
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: unless-stopped
## Immich (photo library management)
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:v1.123.0
volumes:
- /media/immich:/usr/src/app/upload
- /docker/immich_db_dump:/db_dump
env_file:
- /docker/env/immich.env
environment:
- PUID=1000
- PGID=1000
ports:
- 2283:2283
depends_on:
- redis
- database
devices:
- /dev/dri:/dev/dri
dns:
- 100.111.0.126
restart: unless-stopped
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:v1.123.0
volumes:
- model-cache:/cache
env_file:
- /docker/env/immich.env
restart: unless-stopped
redis:
container_name: immich_redis
image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
restart: unless-stopped
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
env_file:
- /docker/env/immich.env
volumes:
- /docker/immich:/var/lib/postgresql/data
restart: unless-stopped
## Jellyfin (media server)
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
- JELLYFIN_PublishedServerUrl=https://watch.azpsen.com
volumes:
- /docker/jellyfin:/config
- /docker/jellyfin/theme:/usr/share/jellyfin/web/theme
- /media/jellyfin/Movies:/data/movies
- /media/jellyfin/TV Shows:/data/tvshows
- /media/jellyfin/Music:/data/music
- /media/jellyfin/Live TV:/data/livetv
ports:
- 8096:8096
- 7539:7539/udp
- 1900:1900/udp
devices:
- /dev/dri:/dev/dri
dns:
- 100.111.0.126
restart: unless-stopped
## Joplin (notes)
joplin:
image: joplin/server:latest
@@ -350,6 +216,140 @@ services:
- POSTGRES_DB=joplin
restart: unless-stopped
## Kiwix (offline wiki)
kiwix-serve:
image: ghcr.io/kiwix/kiwix-serve
container_name: kiwix-serve
volumes:
- /media/kiwix:/data
ports:
- 8765:8080
command: '*.zim'
restart: unless-stopped
## Link Stack
linkstack:
image: linkstackorg/linkstack
container_name: linkstack
env_file:
- /docker/env/linkstack.env
ports:
- 4000:80
dns:
- 100.111.0.126
volumes:
- linkstack:/htdocs
restart: unless-stopped
## Miniflux (rss feed reader)
miniflux:
image: miniflux/miniflux:latest
container_name: miniflux
ports:
- 8772:8080
depends_on:
rss_db:
condition: service_healthy
env_file:
- /docker/env/miniflux.env
healthcheck:
test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
dns:
- 100.111.0.126
restart: unless-stopped
rss_db:
image: postgres:15
container_name: rss_db
env_file:
- /docker/env/miniflux.env
volumes:
- miniflux-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
restart: unless-stopped
## Paperless (document management)
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
container_name: paperless
user: 1000:1000
depends_on:
- paperless_broker
ports:
- 8143:8000
volumes:
- paperless-data:/usr/src/paperless/data
- paperless-media:/usr/src/paperless/media
- /docker/paperless/export:/usr/src/paperless/export
- /docker/paperless/consume:/usr/src/paperless/consume
env_file:
- /docker/env/paperless.env
restart: unless-stopped
paperless_broker:
image: docker.io/library/redis:7
container_name: paperless_broker
volumes:
- redis-data:/data
restart: unless-stopped
## Tandoor (recipe management)
tandoor:
container_name: tandoor
image: vabene1111/recipes
user: 1000:1000
env_file:
- /docker/env/tandoor.env
volumes:
- tandoor-server-config:/opt/recipes/nginx/conf.d
- /docker/tandoor/static:/opt/recipes/staticfiles
- /docker/tandoor/media:/opt/recipes/mediafiles
depends_on:
- tandoor-db
dns:
- 100.111.0.126
restart: unless-stopped
tandoor-server:
image: nginx:mainline-alpine
container_name: tandoor-server
ports:
- 8554:80
env_file:
- /docker/env/tandoor.env
volumes:
- tandoor-server-config:/etc/nginx/conf.d:ro
- /docker/tandoor/static:/static:ro
- /docker/tandoor/media:/media:ro
depends_on:
- tandoor
dns:
- 100.111.0.126
restart: unless-stopped
tandoor-db:
container_name: tandoor-db
image: postgres:16-alpine
user: 1000:1000
env_file:
- /docker/env/tandoor.env
volumes:
- /docker/tandoor/postgresql:/var/lib/postgresql/data
restart: unless-stopped
## Vaultwarden (password manager)
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
env_file:
- /docker/env/vaultwarden.env
volumes:
- /docker/vaultwarden:/data
ports:
- 8912:80
dns:
- 100.111.0.126
restart: unless-stopped
#---------------- MONITORING ----------------#
@@ -363,6 +363,23 @@ services:
- 9999:8080
restart: unless-stopped
## Glances (system monitor)
glances:
image: nicolargo/glances:latest
container_name: glances
pid: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /:/glances/root:ro
environment:
- "GLANCES_OPT=-w"
ports:
- 61208:61208
secrets:
- source: glances_password
target: /root/.config/glances/glances.pwd
restart: unless-stopped
## Scrutiny (disk health monitoring)
scrutiny:
container_name: scrutiny
@@ -398,26 +415,27 @@ services:
- 100.111.0.126
restart: unless-stopped
## Glances (system monitor)
glances:
image: nicolargo/glances:latest
container_name: glances
pid: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /:/glances/root:ro
environment:
- "GLANCES_OPT=-w"
ports:
- 61208:61208
secrets:
- source: glances_password
target: /root/.config/glances/glances.pwd
restart: unless-stopped
#---------------- NETWORKING ----------------#
## AdGuard Home (ad-blocking dns provider)
adguard:
image: adguard/adguardhome
container_name: adguard
network_mode: host
ports:
- 53:53/tcp
- 53:53/udp
- 784:784/udp
- 853:853/tcp
- 3000:3000/tcp
- 80:80/tcp
- 443:443/tcp
volumes:
- /docker/adguard/working:/opt/adguardhome/work
- /docker/adguard/conf:/opt/adguardhome/conf
restart: unless-stopped
## Cloudflared (tunnel service for outside web access)
cloudflared:
container_name: cloudflared
@@ -462,27 +480,38 @@ services:
- /docker/env/gluetun.env
restart: unless-stopped
## AdGuard Home (ad-blocking dns provider)
adguard:
image: adguard/adguardhome
container_name: adguard
network_mode: host
ports:
- 53:53/tcp
- 53:53/udp
- 784:784/udp
- 853:853/tcp
- 3000:3000/tcp
- 80:80/tcp
- 443:443/tcp
volumes:
- /docker/adguard/working:/opt/adguardhome/work
- /docker/adguard/conf:/opt/adguardhome/conf
restart: unless-stopped
#---------------- DOWNLOADING ----------------#
## Bazarr (subtitle downloading)
bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: bazarr
environment:
- puid=1000
- pgid=1000
- tz=america/chicago
volumes:
- /docker/bazarr:/config
- /media/jellyfin/movies:/movies
- /media/jellyfin/tv shows:/tv
ports:
- 6767:6767
restart: unless-stopped
## Prowlarr (torrent indexer management)
prowlarr:
image: ghcr.io/linuxserver/prowlarr:nightly
container_name: prowlarr
network_mode: "service:gluetun"
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
volumes:
- /docker/prowlarr:/config
restart: unless-stopped
## QBittorrent (torrent client)
qbittorrent:
image: ghcr.io/linuxserver/qbittorrent:latest
@@ -532,35 +561,6 @@ services:
- /docker/qbittorrent/downloads:/downloads
restart: unless-stopped
## Prowlarr (torrent indexer management)
prowlarr:
image: ghcr.io/linuxserver/prowlarr:nightly
container_name: prowlarr
network_mode: "service:gluetun"
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
volumes:
- /docker/prowlarr:/config
restart: unless-stopped
## Bazarr (subtitle downloading)
bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: bazarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
volumes:
- /docker/bazarr:/config
- /media/jellyfin/Movies:/movies
- /media/jellyfin/TV Shows:/tv
ports:
- 6767:6767
restart: unless-stopped
#---------------- DOCKER ----------------#