398 lines
8.4 KiB
YAML
398 lines
8.4 KiB
YAML
version: "3"
|
|
|
|
services:
|
|
letsencrypt:
|
|
image: linuxserver/letsencrypt
|
|
container_name: letsencrypt
|
|
restart: unless-stopped
|
|
cap_add:
|
|
- NET_ADMIN
|
|
env_file:
|
|
- ./letsencrypt/letsencrypt.env
|
|
volumes:
|
|
- ./letsencrypt:/config
|
|
# Recipe media should not be served by GUnicorn, don't want to setup Nginx
|
|
- ./recipes/mediafiles:/opt/recipes/media
|
|
- ./recipes/staticfiles:/opt/recipes/static
|
|
ports:
|
|
- 80:80
|
|
- 443:443
|
|
|
|
authelia:
|
|
image: authelia/authelia
|
|
container_name: authelia
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./authelia/authelia.env
|
|
volumes:
|
|
- ./authelia:/config
|
|
expose:
|
|
- 9091
|
|
|
|
freshrss:
|
|
image: linuxserver/freshrss
|
|
container_name: freshrss
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./freshrss/freshrss.env
|
|
volumes:
|
|
- ./freshrss:/config
|
|
expose:
|
|
- 80
|
|
|
|
rss-bridge:
|
|
image: rssbridge/rss-bridge
|
|
container_name: rss-bridge
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./rss-bridge/rss-bridge.env
|
|
volumes:
|
|
- ./rss-bridge/whitelist.txt:/app/whitelist.txt
|
|
expose:
|
|
- 80
|
|
|
|
calibre:
|
|
image: linuxserver/calibre
|
|
container_name: calibre
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./calibre/calibre.env
|
|
- ./calibre/calibre.env.secret
|
|
volumes:
|
|
- ~/library:/config
|
|
- ~/books_to_add:/books_to_add
|
|
expose:
|
|
- 8080
|
|
- 8081
|
|
depends_on:
|
|
- "calibre-web" # Because of access to database
|
|
|
|
calibre-web:
|
|
image: linuxserver/calibre-web
|
|
container_name: calibre-web
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./calibre-web/calibre-web.env
|
|
volumes:
|
|
- ./calibre-web:/config
|
|
- ~/library:/books
|
|
expose:
|
|
- 8083
|
|
|
|
wallabag:
|
|
image: wallabag/wallabag
|
|
container_name: wallabag
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./wallabag/wallabag.env
|
|
volumes:
|
|
- ./wallabag/images:/var/www/wallabag/web/assets/images
|
|
- ./wallabag/data:/var/www/wallabag/data
|
|
expose:
|
|
- 80
|
|
|
|
gitea:
|
|
image: gitea/gitea:latest
|
|
container_name: gitea
|
|
restart: unless-stopped
|
|
env_file:
|
|
- gitea/gitea.env
|
|
volumes:
|
|
- ./gitea:/data
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
expose:
|
|
- 3000
|
|
ports:
|
|
- "22:22"
|
|
|
|
drone-server:
|
|
image: drone/drone:1
|
|
container_name: drone-server
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./drone/drone.env
|
|
- ./drone/drone.env.secret
|
|
volumes:
|
|
- ./drone:/data
|
|
expose:
|
|
- 8080
|
|
depends_on:
|
|
- gitea
|
|
|
|
drone-agent:
|
|
image: drone/agent:1
|
|
container_name: drone-agent
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./drone/drone-agent.env
|
|
- ./drone/drone-agent.env.secret
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
ports:
|
|
- 3030:3000
|
|
depends_on:
|
|
- drone-server
|
|
|
|
pyload:
|
|
image: linuxserver/pyload
|
|
container_name: pyload
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./pyload/pyload.env
|
|
volumes:
|
|
- ./pyload:/config
|
|
- ~/downloads:/downloads
|
|
expose:
|
|
- 8000
|
|
- 7227 #optional
|
|
|
|
transmission:
|
|
image: linuxserver/transmission
|
|
container_name: transmission
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./transmission/transmission.env
|
|
- ./transmission/transmission.env.secret
|
|
volumes:
|
|
- ./transmission:/config
|
|
- ~/downloads:/downloads
|
|
- ~/downloads/blackhole:/watch
|
|
expose:
|
|
- 9091
|
|
ports:
|
|
- 51413:51413
|
|
- 51413:51413/udp
|
|
|
|
sabnzbd:
|
|
image: linuxserver/sabnzbd
|
|
container_name: sabnzbd
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./sabnzbd/sabnzbd.env
|
|
volumes:
|
|
- ./sabnzbd:/config
|
|
- ~/downloads:/downloads
|
|
expose:
|
|
- 8080
|
|
- 9090
|
|
|
|
nzbhydra2:
|
|
image: linuxserver/nzbhydra2
|
|
container_name: nzbhydra2
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./nzbhydra2/nzbhydra.env
|
|
volumes:
|
|
- ./nzbhydra2:/config
|
|
- ~/downloads:/downloads
|
|
expose:
|
|
- 5076
|
|
|
|
jackett:
|
|
image: linuxserver/jackett
|
|
container_name: jackett
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./jackett/jackett.env
|
|
volumes:
|
|
- ./jackett:/config
|
|
- ~/downloads/blackhole:/downloads
|
|
expose:
|
|
- 9117
|
|
|
|
sonarr:
|
|
image: linuxserver/sonarr
|
|
container_name: sonarr
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./sonarr/sonarr.env
|
|
volumes:
|
|
- ./sonarr:/config
|
|
- ~/videos/shows:/tv
|
|
- ~/downloads:/downloads
|
|
expose:
|
|
- 8989
|
|
|
|
radarr:
|
|
image: linuxserver/radarr
|
|
container_name: radarr
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./radarr/radarr.env
|
|
volumes:
|
|
- ./radarr:/config
|
|
- ~/videos/movies:/movies
|
|
- ~/downloads:/downloads
|
|
expose:
|
|
- 7878
|
|
|
|
bazarr:
|
|
image: linuxserver/bazarr
|
|
container_name: bazarr
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./bazarr/bazarr.env
|
|
volumes:
|
|
- ./bazarr:/config
|
|
- ~/videos/movies:/movies
|
|
- ~/videos/shows:/tv
|
|
expose:
|
|
- 6767
|
|
|
|
quassel-core:
|
|
image: linuxserver/quassel-core
|
|
container_name: quassel-core
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./quassel/quassel.env
|
|
volumes:
|
|
- ./quassel:/config
|
|
ports:
|
|
- 4242:4242
|
|
- 113:10113 #optional
|
|
|
|
emby:
|
|
image: linuxserver/emby
|
|
container_name: emby
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./emby/emby.env
|
|
volumes:
|
|
- ./emby:/config
|
|
- ~/videos/shows:/data/tvshows
|
|
- ~/videos/movies:/data/movies
|
|
- /tmp/transcode:/transcode #optional
|
|
expose:
|
|
- 8096
|
|
|
|
komga:
|
|
image: gotson/komga
|
|
container_name: komga
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./komga/komga.env
|
|
volumes:
|
|
- ./komga:/config
|
|
- ~/comics:/books/comics
|
|
- ~/manga:/books/manga
|
|
- /etc/timezone:/etc/timezone:ro
|
|
expose:
|
|
- 8080
|
|
user: 1000:1000
|
|
|
|
jellyfin:
|
|
image: linuxserver/jellyfin
|
|
container_name: jellyfin
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./jellyfin/jellyfin.env
|
|
volumes:
|
|
- ./jellyfin:/config
|
|
- ~/videos/shows:/data/tvshows
|
|
- ~/videos/movies:/data/movies
|
|
expose:
|
|
- 8096
|
|
|
|
photoprism:
|
|
image: photoprism/photoprism:latest
|
|
container_name: photoprism
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: "photoprism status"
|
|
interval: 60s
|
|
timeout: 15s
|
|
retries: 5
|
|
env_file:
|
|
- ./photoprism/photoprism.env
|
|
volumes:
|
|
- ~/pictures/originals:/photoprism/originals
|
|
- ~/pictures/import:/photoprism/import
|
|
- ./photoprism/config:/photoprism/config
|
|
- ./photoprism/cache:/photoprism/cache
|
|
- ./photoprism/database:/photoprism/database
|
|
expose:
|
|
- 2342
|
|
- 2343
|
|
user: 1000:1000
|
|
|
|
syncthing:
|
|
image: linuxserver/syncthing
|
|
restart: unless-stopped
|
|
container_name: syncthing
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./syncthing/syncthing.env
|
|
volumes:
|
|
- ./syncthing:/config
|
|
- ~/:/data1
|
|
expose:
|
|
- 8384
|
|
ports:
|
|
- 22000:22000
|
|
- 21027:21027/udp
|
|
|
|
fava:
|
|
image: yegle/fava
|
|
restart: unless-stopped
|
|
container_name: fava
|
|
env_file:
|
|
- ./fava/fava.env
|
|
volumes:
|
|
- ~/fava:/bean
|
|
expose:
|
|
- 5000
|
|
user: 1000:1000
|
|
|
|
synapse:
|
|
image: matrixdotorg/synapse
|
|
restart: unless-stopped
|
|
container_name: synapse
|
|
env_file:
|
|
- ./matrix/matrix.env
|
|
volumes:
|
|
- ./matrix:/data
|
|
expose:
|
|
- 8008
|
|
|
|
recipes:
|
|
image: vabene1111/recipes
|
|
restart: unless-stopped
|
|
container_name: recipes
|
|
env_file:
|
|
- ./recipes/recipes.env
|
|
- ./recipes/recipes.env.secret
|
|
volumes:
|
|
- ./recipes/staticfiles:/opt/recipes/staticfiles
|
|
- ./recipes/mediafiles:/opt/recipes/mediafiles
|
|
depends_on:
|
|
- recipes_db
|
|
|
|
recipes_db:
|
|
image: postgres:11-alpine
|
|
restart: unless-stopped
|
|
container_name: recipes_db
|
|
volumes:
|
|
- ./recipes/postgresql:/var/lib/postgresql/data
|
|
env_file:
|
|
- ./recipes/recipes.env
|
|
- ./recipes/recipes.env.secret
|
|
|
|
jupyter:
|
|
image: jupyter/datascience-notebook:lab-2.1.5
|
|
restart: unless-stopped
|
|
container_name: jupyter
|
|
volumes:
|
|
- ./jupyter/notebooks:/home/jovyan/
|
|
- ./jupyter/hooks/:/usr/local/bin/start-notebook.d/
|
|
environment:
|
|
- JUPYTER_ENABLE_LAB=yes
|
|
- NB_UID=1000
|
|
- NB_GID=1000
|
|
- CHOWN_HOME=yes
|
|
- GRANT_SUDO=yes
|
|
- RESTARTABLE=yes
|
|
expose:
|
|
- 8888
|
|
user: root
|