reorganize containers
This commit is contained in:
parent
ccd5e50232
commit
dd8948d908
@ -3,146 +3,6 @@ services:
|
|||||||
|
|
||||||
#---------------- USER-FACING 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 (budget)
|
||||||
actual_server:
|
actual_server:
|
||||||
image: docker.io/actualbudget/actual-server:latest
|
image: docker.io/actualbudget/actual-server:latest
|
||||||
@ -155,129 +15,6 @@ services:
|
|||||||
- 100.111.0.126
|
- 100.111.0.126
|
||||||
restart: unless-stopped
|
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 (audiobook downloading)
|
||||||
audiobookshelf:
|
audiobookshelf:
|
||||||
container_name: audiobookshelf
|
container_name: audiobookshelf
|
||||||
@ -324,6 +61,135 @@ services:
|
|||||||
- 100.111.0.126
|
- 100.111.0.126
|
||||||
restart: unless-stopped
|
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 (notes)
|
||||||
joplin:
|
joplin:
|
||||||
image: joplin/server:latest
|
image: joplin/server:latest
|
||||||
@ -350,6 +216,140 @@ services:
|
|||||||
- POSTGRES_DB=joplin
|
- POSTGRES_DB=joplin
|
||||||
restart: unless-stopped
|
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 ----------------#
|
#---------------- MONITORING ----------------#
|
||||||
|
|
||||||
@ -363,6 +363,23 @@ services:
|
|||||||
- 9999:8080
|
- 9999:8080
|
||||||
restart: unless-stopped
|
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 (disk health monitoring)
|
||||||
scrutiny:
|
scrutiny:
|
||||||
container_name: scrutiny
|
container_name: scrutiny
|
||||||
@ -398,26 +415,27 @@ services:
|
|||||||
- 100.111.0.126
|
- 100.111.0.126
|
||||||
restart: unless-stopped
|
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 ----------------#
|
#---------------- 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 (tunnel service for outside web access)
|
||||||
cloudflared:
|
cloudflared:
|
||||||
container_name: cloudflared
|
container_name: cloudflared
|
||||||
@ -462,27 +480,38 @@ services:
|
|||||||
- /docker/env/gluetun.env
|
- /docker/env/gluetun.env
|
||||||
restart: unless-stopped
|
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 ----------------#
|
#---------------- 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 (torrent client)
|
||||||
qbittorrent:
|
qbittorrent:
|
||||||
image: ghcr.io/linuxserver/qbittorrent:latest
|
image: ghcr.io/linuxserver/qbittorrent:latest
|
||||||
@ -532,35 +561,6 @@ services:
|
|||||||
- /docker/qbittorrent/downloads:/downloads
|
- /docker/qbittorrent/downloads:/downloads
|
||||||
restart: unless-stopped
|
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 ----------------#
|
#---------------- DOCKER ----------------#
|
||||||
|
|
||||||
|
48
readme.md
48
readme.md
@ -12,60 +12,60 @@ I have a dedicated home server that I run a lot of services on. This repo has my
|
|||||||
|
|
||||||
## Services
|
## Services
|
||||||
|
|
||||||
These are all the services hosted here, what they are for, and any clients I use with them.
|
These are all the services hosted, what they are for, and any clients I use with them, in alphabetical order.
|
||||||
|
|
||||||
### User-Facing
|
### User-Facing Services
|
||||||
|
|
||||||
|
- [Actual Budget](https://actualbudget.org/) - Excellent budgeting app. It can be automatically synced with your bank ([SimpleFIN Bridge](https://beta-bridge.simplefin.org/) for US banks, $15/year), but I have found that to be unstable
|
||||||
|
- There used to be an official app but it has been discontinued - I added the website to my phone's home screen and it works quite well
|
||||||
|
- [AudioBookShelf](https://www.audiobookshelf.org/) - Audiobook server
|
||||||
|
- The official mobile client works great
|
||||||
|
- [Calibre Web](https://github.com/janeczku/calibre-web) - Ebook management
|
||||||
|
- [Gitea](https://about.gitea.com/) - Git server - in the process of replacing my GitHub account
|
||||||
|
- [Grocy](https://github.com/grocy/grocy) - Household management (Am I out of milk? Do I have AAA batteries? What can I make for dinner?)
|
||||||
|
- [iOS Client](https://apps.apple.com/us/app/grocy-mobile/id1567803209)
|
||||||
|
- [Homepage](https://gethomepage.dev/) - My default new tab page; has info about all my services plus links
|
||||||
|
- [Immich](https://immich.app/) - Photo and video management
|
||||||
|
- Their official mobile apps are quite good
|
||||||
- [Jellyfin](https://jellyfin.org) - Media server for movies, TV shows, and music
|
- [Jellyfin](https://jellyfin.org) - Media server for movies, TV shows, and music
|
||||||
- [Feishin](https://github.com/jeffvli/feishin) - Desktop music client (soon to be replaced by [audioling](https://github.com/audioling/audioling))
|
- [Feishin](https://github.com/jeffvli/feishin) - Desktop music client (soon to be replaced by [audioling](https://github.com/audioling/audioling))
|
||||||
- [Finamp](https://github.com/jmshrv/finamp) - Mobile music client
|
- [Finamp](https://github.com/jmshrv/finamp) - Mobile music client
|
||||||
- For other devices (desktop, mobile, Roku/Android TV) I use either the web app or the official Jellyfin client
|
- For other devices (desktop, mobile, Roku/Android TV) I use either the web app or the official Jellyfin client
|
||||||
|
- [Joplin](https://joplinapp.org/) - Notes (Obsidian alternative)
|
||||||
|
- [Kiwix](https://kiwix.org/en/) - Offline wiki hosting - I have Wikipedia, the Arch Linux wiki, and several others downloaded
|
||||||
|
- [LinkStack](https://linkstack.org/) - Self-hosted LinkTree alternative
|
||||||
- [Miniflux](https://miniflux.app/) - Minimalist RSS feed reader
|
- [Miniflux](https://miniflux.app/) - Minimalist RSS feed reader
|
||||||
- [NetNewsWire](https://netnewswire.com/) - Wonderful all-purpose iOS RSS client
|
- [NetNewsWire](https://netnewswire.com/) - Wonderful all-purpose iOS RSS client
|
||||||
- [vaultwarden](https://github.com/dani-garcia/vaultwarden) - Password manager
|
|
||||||
- [Bitwarden clients](https://bitwarden.com/download/)
|
|
||||||
- [Gitea](https://about.gitea.com/) - Git server - in the process of replacing my GitHub account
|
|
||||||
- [LinkStack](https://linkstack.org/) - Self-hosted LinkTree alternative
|
|
||||||
- [Homepage](https://gethomepage.dev/) - My default new tab page; has info about all my services plus links
|
|
||||||
- [Kiwix](https://kiwix.org/en/) - Offline wiki hosting - I have Wikipedia, the Arch Linux wiki, and several others downloaded
|
|
||||||
- [Actual Budget](https://actualbudget.org/) - Excellent budgeting app. It can be automatically synced with your bank ([SimpleFIN Bridge](https://beta-bridge.simplefin.org/) for US banks, $15/year), but I have found that to be unstable
|
|
||||||
- There used to be an official app but it has been discontinued - I added the website to my phone's home screen and it works quite well
|
|
||||||
- [Paperless-ngx](https://docs.paperless-ngx.com/) - Document management system for legal documents, IDs, bank statements, etc.
|
- [Paperless-ngx](https://docs.paperless-ngx.com/) - Document management system for legal documents, IDs, bank statements, etc.
|
||||||
- [Swift Paperless](https://github.com/paulgessinger/swift-paperless) - iOS client
|
- [Swift Paperless](https://github.com/paulgessinger/swift-paperless) - iOS client
|
||||||
- [Immich](https://immich.app/) - Photo and video management
|
|
||||||
- Their official mobile apps are quite good
|
|
||||||
- [Grocy](https://github.com/grocy/grocy) - Household management (Am I out of milk? Do I have AAA batteries? What can I make for dinner?)
|
|
||||||
- [iOS Client](https://apps.apple.com/us/app/grocy-mobile/id1567803209)
|
|
||||||
- [Tandoor](https://tandoor.dev/) - Recipe management, so I always know which zucchine muffin recipe is the good one
|
- [Tandoor](https://tandoor.dev/) - Recipe management, so I always know which zucchine muffin recipe is the good one
|
||||||
- [Untare](https://github.com/phantomate/Untare) - Mobile client (discontinued but it still works for now)
|
- [Untare](https://github.com/phantomate/Untare) - Mobile client (discontinued but it still works for now)
|
||||||
- [AudioBookShelf](https://www.audiobookshelf.org/) - Audiobook server
|
|
||||||
- The official mobile client works great
|
|
||||||
- [Calibre Web](https://github.com/janeczku/calibre-web) - Ebook management
|
|
||||||
- [Yomu](https://www.yomu-reader.com/) for iOS is nice and minimal and supports OPDS for use with Calibre Web
|
- [Yomu](https://www.yomu-reader.com/) for iOS is nice and minimal and supports OPDS for use with Calibre Web
|
||||||
- [Joplin](https://joplinapp.org/) - Notes (Obsidian alternative)
|
- [vaultwarden](https://github.com/dani-garcia/vaultwarden) - Password manager
|
||||||
|
- [Bitwarden clients](https://bitwarden.com/download/)
|
||||||
|
|
||||||
### Monitoring
|
### Monitoring
|
||||||
|
|
||||||
- [Dozzle](https://dozzle.dev/) - Docker logs all in one place
|
- [Dozzle](https://dozzle.dev/) - Docker logs all in one place
|
||||||
|
- [Glances](https://github.com/nicolargo/glances) - System monitor - I mostly have this for dashboard widgets but it can be useful by itself
|
||||||
- [Scrutiny](https://github.com/AnalogJ/scrutiny) - HDD SMART monitoring, so I know when to prepare for a drive failure
|
- [Scrutiny](https://github.com/AnalogJ/scrutiny) - HDD SMART monitoring, so I know when to prepare for a drive failure
|
||||||
- [Speedtest Tracker](https://speedtest-tracker.dev/) - Runs scheduled internet speedtests and creates pretty graphs to keep my ISP honest
|
- [Speedtest Tracker](https://speedtest-tracker.dev/) - Runs scheduled internet speedtests and creates pretty graphs to keep my ISP honest
|
||||||
- [Glances](https://github.com/nicolargo/glances) - System monitor - I mostly have this for dashboard widgets but it can be useful by itself
|
|
||||||
|
|
||||||
### Networking
|
### Networking
|
||||||
|
|
||||||
|
- [AdGuard Home](https://adguard.com/en/adguard-home/overview.html) - DNS filtering - I use this with [tailscale](https://tailscale.com/) to block ads on my phone
|
||||||
- [cloudflared](https://github.com/cloudflare/cloudflared) - CloudFlare tunnel client for easy and secure external service access
|
- [cloudflared](https://github.com/cloudflare/cloudflared) - CloudFlare tunnel client for easy and secure external service access
|
||||||
- [gluetun](https://github.com/qdm12/gluetun) - Docker VPN client and kill-switch. Very useful, allows for per-container VPN connectivity.
|
- [gluetun](https://github.com/qdm12/gluetun) - Docker VPN client and kill-switch. Very useful, allows for per-container VPN connectivity.
|
||||||
- [AdGuard Home](https://adguard.com/en/adguard-home/overview.html) - DNS filtering - I use this with [tailscale](https://tailscale.com/) to block ads on my phone
|
|
||||||
|
|
||||||
Note that I run tailscale on bare metal so it is not listed here, but it is very useful for remote access to services I don't want visible on the open internet as well as SSH access.
|
Note that I run tailscale on bare metal so it is not listed here, but it is very useful for remote access to services I don't want visible on the open internet as well as SSH access.
|
||||||
|
|
||||||
### Downloading
|
### Downloading
|
||||||
|
|
||||||
- [qBittorrent](https://www.qbittorrent.org/) - The only torrent client I'll ever use
|
|
||||||
- [Radarr](https://radarr.video/) - Automated movie fetching
|
|
||||||
- [Sonarr](https://sonarr.tv/) - Automated TV show fetching
|
|
||||||
- [Prowlarr](https://prowlarr.com/) - Torrent indexer that interfaces with the other *arrs
|
|
||||||
- [Bazarr](https://www.bazarr.media/) - Automated subtitle fetching (I also use the OpenSubtitles plugin within Jellyfin when needed, but this works hands-off most of the time)
|
- [Bazarr](https://www.bazarr.media/) - Automated subtitle fetching (I also use the OpenSubtitles plugin within Jellyfin when needed, but this works hands-off most of the time)
|
||||||
|
- [Prowlarr](https://prowlarr.com/) - Torrent indexer that interfaces with the other *arrs
|
||||||
|
- [Radarr](https://radarr.video/) - Automated movie fetching
|
||||||
|
- [qBittorrent](https://www.qbittorrent.org/) - The only torrent client I'll ever use
|
||||||
|
- [Sonarr](https://sonarr.tv/) - Automated TV show fetching
|
||||||
|
|
||||||
I use [LunaSea](https://www.lunasea.app/) as a mobile client for Radarr and Sonarr.
|
I use [LunaSea](https://www.lunasea.app/) as a mobile client for Radarr and Sonarr.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user