Update current server compose files
This commit is contained in:
parent
ae044c6b7a
commit
1eabcaef08
19
servers/docker/.env.example
Normal file
19
servers/docker/.env.example
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
PUID=
|
||||||
|
PGID=
|
||||||
|
TZ=
|
||||||
|
APPDATA=
|
||||||
|
HOST_IP=
|
||||||
|
WG_HOST=
|
||||||
|
WG_DNS=
|
||||||
|
LOCAL_DOMAIN=
|
||||||
|
GITEA_RUNNER_TOKEN=
|
||||||
|
GITEA_RUNNER_UID=
|
||||||
|
GITEA_RUNNER_GID=
|
||||||
|
MEDIADIR=
|
||||||
|
DOWNLOADS=
|
||||||
|
RECYCLEBIN=
|
||||||
|
SYNCTHINGDATA=
|
||||||
|
FB_DIR=
|
||||||
|
TA_USER=
|
||||||
|
TA_PASS=
|
||||||
|
TA_ES_PASS=
|
||||||
|
|
@ -4,4 +4,12 @@ Machine de production hébergeant les services du quotidien.
|
||||||
|
|
||||||
## Dépendances
|
## Dépendances
|
||||||
|
|
||||||
- Dépend du NAS (Orion) pour les partages NFS.
|
- Dépend du NAS (Orion) pour les partages NFS.
|
||||||
|
|
||||||
|
## A ajouter
|
||||||
|
|
||||||
|
- filebrowser
|
||||||
|
- jellyfin
|
||||||
|
- mafl
|
||||||
|
- nginx
|
||||||
|
- portainer
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
services:
|
services:
|
||||||
radarr:
|
radarr:
|
||||||
image: linuxserver/radarr:6.0.4
|
image: linuxserver/radarr:latest
|
||||||
container_name: radarr
|
container_name: radarr
|
||||||
volumes:
|
volumes:
|
||||||
# Config
|
# Config
|
||||||
- $APPDATA/radarr:/config
|
- $APPDATA/radarr:/config
|
||||||
# Media
|
# Media
|
||||||
- $MEDIADIR/movies:/movies
|
- $MEDIADIR/movies:/movies
|
||||||
|
- $MEDIADIR/animation:/animated
|
||||||
- $DOWNLOADS:/downloads
|
- $DOWNLOADS:/downloads
|
||||||
- $RECYCLEBIN:/recyclebin
|
- $RECYCLEBIN:/recyclebin
|
||||||
environment:
|
environment:
|
||||||
|
|
@ -15,18 +16,10 @@ services:
|
||||||
TZ: $TZ
|
TZ: $TZ
|
||||||
ports:
|
ports:
|
||||||
- 7878:7878
|
- 7878:7878
|
||||||
# labels:
|
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.radarr.rule=Host(`radarr.${LOCAL_DOMAIN}`)"
|
|
||||||
# - "traefik.http.routers.radarr.entrypoints=https"
|
|
||||||
# - "traefik.http.routers.radarr.tls=true"
|
|
||||||
# - "traefik.http.services.radarr.loadbalancer.server.port=7878"
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
sonarr:
|
sonarr:
|
||||||
image: linuxserver/sonarr:4.0.16
|
image: linuxserver/sonarr:latest
|
||||||
container_name: sonarr
|
container_name: sonarr
|
||||||
volumes:
|
volumes:
|
||||||
# Config
|
# Config
|
||||||
|
|
@ -41,63 +34,35 @@ services:
|
||||||
TZ: $TZ
|
TZ: $TZ
|
||||||
ports:
|
ports:
|
||||||
- 8989:8989
|
- 8989:8989
|
||||||
# labels:
|
restart: unless-stopped
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.sonarr.rule=Host(`sonarr.${LOCAL_DOMAIN}`)"
|
prowlarr:
|
||||||
# - "traefik.http.routers.sonarr.entrypoints=https"
|
image: ghcr.io/linuxserver/prowlarr:develop
|
||||||
# - "traefik.http.routers.sonarr.tls=true"
|
container_name: prowlarr
|
||||||
# - "traefik.http.services.sonarr.loadbalancer.server.port=8989"
|
environment:
|
||||||
# networks:
|
PUID: $PUID
|
||||||
# - proxy
|
PGID: $PGID
|
||||||
|
TZ: $TZ
|
||||||
|
volumes:
|
||||||
|
# Config
|
||||||
|
- $APPDATA/prowlarr:/config
|
||||||
|
ports:
|
||||||
|
- 9696:9696
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
kapowarr:
|
kapowarr:
|
||||||
image: mrcas/kapowarr:v1.2.0
|
image: mrcas/kapowarr:latest
|
||||||
container_name: kapowarr
|
container_name: kapowarr
|
||||||
|
environment:
|
||||||
|
PUID: $PUID
|
||||||
|
PGID: $PGID
|
||||||
|
TZ: $TZ
|
||||||
volumes:
|
volumes:
|
||||||
# Config
|
# Config
|
||||||
- $APPDATA/kapowarr:/app/db
|
- $APPDATA/kapowarr:/app/db
|
||||||
# Media
|
# Media
|
||||||
- $MEDIADIR/comics:/comics
|
- $MEDIADIR/comics:/comics
|
||||||
- $DOWNLOADS:/app/temp_downloads
|
- $DOWNLOADS:/app/temp_downloads
|
||||||
environment:
|
|
||||||
PUID: $PUID
|
|
||||||
PGID: $PGID
|
|
||||||
TZ: $TZ
|
|
||||||
ports:
|
ports:
|
||||||
- 5656:5656
|
- 5656:5656
|
||||||
# labels:
|
restart: unless-stopped
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.kapowarr.rule=Host(`kapowarr.${LOCAL_DOMAIN}`)"
|
|
||||||
# - "traefik.http.routers.kapowarr.entrypoints=https"
|
|
||||||
# - "traefik.http.routers.kapowarr.tls=true"
|
|
||||||
# - "traefik.http.services.kapowarr.loadbalancer.server.port=5656"
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
prowlarr:
|
|
||||||
image: linuxserver/prowlarr:2.3.0
|
|
||||||
container_name: prowlarr
|
|
||||||
volumes:
|
|
||||||
# Config
|
|
||||||
- $APPDATA/prowlarr:/config
|
|
||||||
environment:
|
|
||||||
PUID: $PUID
|
|
||||||
PGID: $PGID
|
|
||||||
TZ: $TZ
|
|
||||||
ports:
|
|
||||||
- 9696:9696
|
|
||||||
# labels:
|
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.prowlarr.rule=Host(`prowlarr.${LOCAL_DOMAIN}`)"
|
|
||||||
# - "traefik.http.routers.prowlarr.entrypoints=https"
|
|
||||||
# - "traefik.http.routers.prowlarr.tls=true"
|
|
||||||
# - "traefik.http.services.prowlarr.loadbalancer.server.port=9696"
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# networks:
|
|
||||||
# proxy:
|
|
||||||
# external: true
|
|
||||||
|
|
@ -1,28 +1,13 @@
|
||||||
services:
|
services:
|
||||||
audiobookshelf:
|
audiobookshelf:
|
||||||
|
restart: unless-stopped
|
||||||
image: ghcr.io/advplyr/audiobookshelf:2.32.1
|
image: ghcr.io/advplyr/audiobookshelf:2.32.1
|
||||||
container_name: audiobookshelf
|
|
||||||
volumes:
|
|
||||||
# Config
|
|
||||||
- $APPDATA/audiobookshelf/config:/config
|
|
||||||
- $APPDATA/audiobookshelf/metadata:/metadata
|
|
||||||
# Media
|
|
||||||
- $MEDIADIR/audiobooks:/audiobooks
|
|
||||||
- $MEDIADIR/podcasts:/podcasts
|
|
||||||
environment:
|
|
||||||
TZ: $TZ
|
|
||||||
ports:
|
ports:
|
||||||
- 13378:80
|
- 13378:80
|
||||||
# labels:
|
volumes:
|
||||||
# - "traefik.enable=true"
|
- $MEDIADIR/audiobooks:/audiobooks
|
||||||
# - "traefik.http.routers.audiobookshelf.rule=Host(`audiobookshelf.${LOCAL_DOMAIN}`)"
|
- $MEDIADIR/podcasts:/podcasts
|
||||||
# - "traefik.http.routers.audiobookshelf.entrypoints=https"
|
- /mnt/appdata/audiobookshelf/config:/config
|
||||||
# - "traefik.http.routers.audiobookshelf.tls=true"
|
- /mnt/appdata/audiobookshelf/metadata:/metadata
|
||||||
# - "traefik.http.services.audiobookshelf.loadbalancer.server.port=80"
|
environment:
|
||||||
# networks:
|
- TZ=Europe/Zurich
|
||||||
# - proxy
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# networks:
|
|
||||||
# proxy:
|
|
||||||
# external: true
|
|
||||||
|
|
@ -1,37 +1,27 @@
|
||||||
services:
|
services:
|
||||||
booklore:
|
booklore:
|
||||||
image: booklore/booklore:v1.17.0
|
image: ghcr.io/grimmory-tools/grimmory:v3.5.0
|
||||||
container_name: booklore
|
container_name: booklore
|
||||||
volumes:
|
|
||||||
# Config
|
|
||||||
- $APPDATA/booklore/data:/app/data
|
|
||||||
# Media
|
|
||||||
- $MEDIADIR/books:/books
|
|
||||||
- $MEDIADIR/comics:/comics
|
|
||||||
# - $MEDIADIR/bookdrop:/bookdrop
|
|
||||||
environment:
|
environment:
|
||||||
USER_ID: $PUID
|
- USER_ID=${APP_USER_ID}
|
||||||
GROUP_ID: $PGID
|
- GROUP_ID=${APP_GROUP_ID}
|
||||||
TZ: $TZ
|
- TZ=${TZ}
|
||||||
DATABASE_URL: $BOOKLORE_DB_URL
|
- DATABASE_URL=${DATABASE_URL}
|
||||||
DATABASE_USERNAME: $BOOKLORE_DB_USER
|
- DATABASE_USERNAME=${DB_USER}
|
||||||
DATABASE_PASSWORD: $BOOKLORE_DB_PASSWORD
|
- DATABASE_PASSWORD=${DB_PASSWORD}
|
||||||
BOOKLORE_PORT: 6060
|
- BOOKLORE_PORT=${BOOKLORE_PORT}
|
||||||
ports:
|
|
||||||
- "6060:6060"
|
|
||||||
# labels:
|
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.booklore.rule=Host(`booklore.${LOCAL_DOMAIN}`)"
|
|
||||||
# - "traefik.http.routers.booklore.entrypoints=https"
|
|
||||||
# - "traefik.http.routers.booklore.tls=true"
|
|
||||||
# - "traefik.http.services.booklore.loadbalancer.server.port=6060"
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
depends_on:
|
depends_on:
|
||||||
mariadb:
|
mariadb:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
ports:
|
||||||
|
- "${BOOKLORE_PORT}:${BOOKLORE_PORT}"
|
||||||
|
volumes:
|
||||||
|
- $APPDATA/booklore/data:/app/data
|
||||||
|
- $APPDATA/booklore/bookdrop:/bookdrop
|
||||||
|
- $MEDIADIR/books:/books
|
||||||
|
- $MEDIADIR/comics:/comics
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: wget -q -O - http://localhost:6060/api/v1/healthcheck
|
test: wget -q -O - http://localhost:${BOOKLORE_PORT}/api/v1/healthcheck
|
||||||
interval: 60s
|
interval: 60s
|
||||||
retries: 5
|
retries: 5
|
||||||
start_period: 60s
|
start_period: 60s
|
||||||
|
|
@ -41,26 +31,19 @@ services:
|
||||||
mariadb:
|
mariadb:
|
||||||
image: lscr.io/linuxserver/mariadb:11.4.5
|
image: lscr.io/linuxserver/mariadb:11.4.5
|
||||||
container_name: mariadb
|
container_name: mariadb
|
||||||
volumes:
|
|
||||||
# Config
|
|
||||||
- $APPDATA/booklore/mariadb/config:/config
|
|
||||||
environment:
|
environment:
|
||||||
PUID: $PUID
|
- PUID=${DB_USER_ID}
|
||||||
PGID: $PGID
|
- PGID=${DB_GROUP_ID}
|
||||||
TZ: $TZ
|
- TZ=${TZ}
|
||||||
MYSQL_ROOT_PASSWORD: $BOOKLORE_MYSQL_ROOT_PASSWORD
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||||
MYSQL_DATABASE: $BOOKLORE_MYSQL_DATABASE
|
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||||
MYSQL_USER: $BOOKLORE_DB_USER
|
- MYSQL_USER=${DB_USER}
|
||||||
MYSQL_PASSWORD: $BOOKLORE_DB_PASSWORD
|
- MYSQL_PASSWORD=${DB_PASSWORD}
|
||||||
# networks:
|
volumes:
|
||||||
# - proxy
|
- $APPDATA/booklore/mariadb/config:/config
|
||||||
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: [ "CMD", "mariadb-admin", "ping", "-h", "localhost" ]
|
test: [ "CMD", "mariadb-admin", "ping", "-h", "localhost" ]
|
||||||
interval: 5s
|
interval: 5s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 10
|
retries: 10
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# networks:
|
|
||||||
# proxy:
|
|
||||||
# external: true
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
services:
|
services:
|
||||||
deluge:
|
deluge:
|
||||||
image: ghcr.io/linuxserver/deluge:2.2.0
|
image: linuxserver/deluge
|
||||||
container_name: deluge
|
container_name: deluge
|
||||||
volumes:
|
volumes:
|
||||||
# Config
|
# Config
|
||||||
|
|
@ -16,18 +16,10 @@ services:
|
||||||
- 6881:6881
|
- 6881:6881
|
||||||
- 6881:6881/udp
|
- 6881:6881/udp
|
||||||
- 58846:58846
|
- 58846:58846
|
||||||
# labels:
|
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.deluge.rule=Host(`deluge.${LOCAL_DOMAIN}`)"
|
|
||||||
# - "traefik.http.routers.deluge.entrypoints=https"
|
|
||||||
# - "traefik.http.routers.deluge.tls=true"
|
|
||||||
# - "traefik.http.services.deluge.loadbalancer.server.port=8112"
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
storm:
|
storm:
|
||||||
image: ghcr.io/relvacode/storm:v1.3.0
|
image: ghcr.io/relvacode/storm
|
||||||
container_name: storm
|
container_name: storm
|
||||||
environment:
|
environment:
|
||||||
DELUGE_RPC_VERSION: v2
|
DELUGE_RPC_VERSION: v2
|
||||||
|
|
@ -35,16 +27,4 @@ services:
|
||||||
DELUGE_RPC_USERNAME: $DELUGE_USER
|
DELUGE_RPC_USERNAME: $DELUGE_USER
|
||||||
DELUGE_RPC_PASSWORD: $DELUGE_PASS
|
DELUGE_RPC_PASSWORD: $DELUGE_PASS
|
||||||
ports:
|
ports:
|
||||||
- 8221:8221
|
- 8221:8221
|
||||||
# labels:
|
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.storm.rule=Host(`storm.${LOCAL_DOMAIN}`)"
|
|
||||||
# - "traefik.http.routers.storm.entrypoints=https"
|
|
||||||
# - "traefik.http.routers.storm.tls=true"
|
|
||||||
# - "traefik.http.services.storm.loadbalancer.server.port=8221"
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
|
|
||||||
# networks:
|
|
||||||
# proxy:
|
|
||||||
# external: true
|
|
||||||
55
servers/docker/dispatcharr/compose.yaml
Normal file
55
servers/docker/dispatcharr/compose.yaml
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
services:
|
||||||
|
dispatcharr:
|
||||||
|
# build:
|
||||||
|
# context: .
|
||||||
|
# dockerfile: Dockerfile
|
||||||
|
image: ghcr.io/dispatcharr/dispatcharr:latest
|
||||||
|
container_name: dispatcharr
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- 9191:9191
|
||||||
|
volumes:
|
||||||
|
- dispatcharr_data:/data
|
||||||
|
environment:
|
||||||
|
- DISPATCHARR_ENV=aio
|
||||||
|
- REDIS_HOST=localhost
|
||||||
|
- CELERY_BROKER_URL=redis://localhost:6379/0
|
||||||
|
- DISPATCHARR_LOG_LEVEL=info
|
||||||
|
# Process Priority Configuration (Optional)
|
||||||
|
# Lower values = higher priority. Range: -20 (highest) to 19 (lowest)
|
||||||
|
# Negative values require cap_add: SYS_NICE (uncomment below)
|
||||||
|
#- UWSGI_NICE_LEVEL=-5 # uWSGI/FFmpeg/Streaming (default: 0, recommended: -5 for high priority)
|
||||||
|
#- CELERY_NICE_LEVEL=5 # Celery/EPG/Background tasks (default: 5, low priority)
|
||||||
|
#
|
||||||
|
# Uncomment to enable high priority for streaming (required if UWSGI_NICE_LEVEL < 0)
|
||||||
|
#cap_add:
|
||||||
|
# - SYS_NICE
|
||||||
|
# Optional for hardware acceleration
|
||||||
|
#devices:
|
||||||
|
# - /dev/dri:/dev/dri # For Intel/AMD GPU acceleration (VA-API)
|
||||||
|
# Uncomment the following lines for NVIDIA GPU support
|
||||||
|
# NVidia GPU support (requires NVIDIA Container Toolkit)
|
||||||
|
#deploy:
|
||||||
|
# resources:
|
||||||
|
# reservations:
|
||||||
|
# devices:
|
||||||
|
# - driver: nvidia
|
||||||
|
# count: all
|
||||||
|
# capabilities: [gpu]
|
||||||
|
|
||||||
|
epg:
|
||||||
|
image: ghcr.io/davidclaeysquinones/epg-info:latest
|
||||||
|
volumes:
|
||||||
|
# add a mapping in order to add the channels file
|
||||||
|
- /mnt/appdata/epg:/config
|
||||||
|
ports:
|
||||||
|
- 6080:3000
|
||||||
|
environment:
|
||||||
|
# specify the time zone for the server
|
||||||
|
- TZ="Europe/Zurich"
|
||||||
|
# uncomment the underlying line if you want to enable custom fixes
|
||||||
|
#- ENABLE_FIXES=true
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
dispatcharr_data:
|
||||||
|
|
@ -1,50 +1,30 @@
|
||||||
services:
|
services:
|
||||||
drop:
|
|
||||||
image: ghcr.io/drop-oss/drop:v0.3.5
|
|
||||||
container_name: drop
|
|
||||||
volumes:
|
|
||||||
# Config
|
|
||||||
- $APPDATA/drop/data:/data
|
|
||||||
# Media
|
|
||||||
- $MEDIADIR/games/pc:/library
|
|
||||||
environment:
|
|
||||||
DATABASE_URL: postgres://${DROP_DB_USER}:${DROP_DB_PASSWORD}@postgres:5432/${DROP_DB}
|
|
||||||
EXTERNAL_URL: http://${HOST_IP}:3001 # default, customise if accessing from another computer or behind a reverse proxy
|
|
||||||
ports:
|
|
||||||
- 3001:3000
|
|
||||||
# labels:
|
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.drop.rule=Host(`drop.${LOCAL_DOMAIN}`)"
|
|
||||||
# - "traefik.http.routers.drop.entrypoints=https"
|
|
||||||
# - "traefik.http.routers.drop.tls=true"
|
|
||||||
# - "traefik.http.services.drop.loadbalancer.server.port=3000"
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
depends_on:
|
|
||||||
postgres:
|
|
||||||
condition: service_healthy
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:14-alpine
|
image: postgres:14-alpine
|
||||||
container_name: postgres
|
restart: unless-stopped
|
||||||
volumes:
|
|
||||||
# Config
|
|
||||||
- $APPDATA/drop/db:/var/lib/postgresql/data
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: $DROP_DB
|
|
||||||
POSTGRES_USER: $DROP_DB_USER
|
|
||||||
POSTGRES_PASSWORD: $DROP_DB_PASSWORD
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: pg_isready -d ${DROP_DB} -U ${DROP_DB_USER}
|
test: pg_isready -d drop -U drop
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 60s
|
timeout: 60s
|
||||||
retries: 5
|
retries: 5
|
||||||
start_period: 10s
|
start_period: 10s
|
||||||
|
volumes:
|
||||||
|
- $APPDATA/drop/db:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
- POSTGRES_PASSWORD=drop
|
||||||
|
- POSTGRES_USER=drop
|
||||||
|
- POSTGRES_DB=drop
|
||||||
|
drop:
|
||||||
|
image: ghcr.io/drop-oss/drop:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
# networks:
|
postgres:
|
||||||
# proxy:
|
condition: service_healthy
|
||||||
# external: true
|
ports:
|
||||||
|
- 3001:3000
|
||||||
|
volumes:
|
||||||
|
- $MEDIADIR/games/pc:/library
|
||||||
|
- $APPDATA/drop/data:/data
|
||||||
|
environment:
|
||||||
|
- DATABASE_URL=postgres://drop:drop@postgres:5432/drop
|
||||||
|
- EXTERNAL_URL=http://192.168.1.106:3001 # default, customise if accessing from another computer or behind a reverse proxy
|
||||||
23
servers/docker/forgejo/compose.yaml
Normal file
23
servers/docker/forgejo/compose.yaml
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
networks:
|
||||||
|
forgejo:
|
||||||
|
external: false
|
||||||
|
|
||||||
|
services:
|
||||||
|
forgejo:
|
||||||
|
image: codeberg.org/forgejo/forgejo:7.0.3
|
||||||
|
container_name: forgejo
|
||||||
|
volumes:
|
||||||
|
# Config
|
||||||
|
- $APPDATA/forgejo:/data
|
||||||
|
# Other
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
environment:
|
||||||
|
USER_UID: $PUID
|
||||||
|
USER_GID: $PGID
|
||||||
|
ports:
|
||||||
|
- 8084:3000
|
||||||
|
- 2221:22
|
||||||
|
networks:
|
||||||
|
- forgejo
|
||||||
|
restart: unless-stopped
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
services:
|
services:
|
||||||
freshrss:
|
freshrss:
|
||||||
image: linuxserver/freshrss:1.28.1
|
image: lscr.io/linuxserver/freshrss:latest
|
||||||
container_name: freshrss
|
container_name: freshrss
|
||||||
volumes:
|
volumes:
|
||||||
# Config
|
# Config
|
||||||
|
|
@ -11,16 +11,4 @@ services:
|
||||||
TZ: $TZ
|
TZ: $TZ
|
||||||
ports:
|
ports:
|
||||||
- 8083:80
|
- 8083:80
|
||||||
# labels:
|
restart: unless-stopped
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.freshrss.rule=Host(`freshrss.${LOCAL_DOMAIN}`)"
|
|
||||||
# - "traefik.http.routers.freshrss.entrypoints=https"
|
|
||||||
# - "traefik.http.routers.freshrss.tls=true"
|
|
||||||
# - "traefik.http.services.freshrss.loadbalancer.server.port=80"
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# networks:
|
|
||||||
# proxy:
|
|
||||||
# external: true
|
|
||||||
16
servers/docker/glances/compose.yaml
Normal file
16
servers/docker/glances/compose.yaml
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
services:
|
||||||
|
glances:
|
||||||
|
image: docker.io/nicolargo/glances
|
||||||
|
container_name: glances
|
||||||
|
volumes:
|
||||||
|
# Config
|
||||||
|
- $APPDATA/glances:/glances/conf
|
||||||
|
# Other
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
environment:
|
||||||
|
TZ: $TZ
|
||||||
|
GLANCES_OPT: '-w'
|
||||||
|
ports:
|
||||||
|
- 61208-61209:61208-61209
|
||||||
|
pid: host
|
||||||
|
restart: unless-stopped
|
||||||
24
servers/docker/heimdall/compose.yaml
Normal file
24
servers/docker/heimdall/compose.yaml
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
services:
|
||||||
|
heimdall:
|
||||||
|
image: lscr.io/linuxserver/heimdall:latest
|
||||||
|
container_name: heimdall
|
||||||
|
volumes:
|
||||||
|
# Config
|
||||||
|
- $APPDATA/heimdall:/config
|
||||||
|
environment:
|
||||||
|
PUID: $PUID
|
||||||
|
PGID: $PGID
|
||||||
|
TZ: $TZ
|
||||||
|
ports:
|
||||||
|
- 81:80
|
||||||
|
# networks:
|
||||||
|
# - proxy
|
||||||
|
# labels:
|
||||||
|
# - swag=enable
|
||||||
|
# - swag_url=heimdall.${LOCAL_DOMAIN}
|
||||||
|
# - swag_port=80
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
# networks:
|
||||||
|
# proxy:
|
||||||
|
# external: true
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
services:
|
|
||||||
jellyfin:
|
|
||||||
image: ghcr.io/linuxserver/jellyfin:10.11.6
|
|
||||||
container_name: jellyfin
|
|
||||||
volumes:
|
|
||||||
# Config
|
|
||||||
- $APPDATA/jellyfin:/config
|
|
||||||
# Media
|
|
||||||
- $MEDIADIR/tv:/tv
|
|
||||||
- $MEDIADIR/movies:/movies
|
|
||||||
- $MEDIADIR/music:/music
|
|
||||||
- $MEDIADIR/audiobooks:/audiobooks
|
|
||||||
- $MEDIADIR/emissions:/emissions
|
|
||||||
- $MEDIADIR/books:/books
|
|
||||||
- $MEDIADIR/comics:/comics
|
|
||||||
- $MEDIADIR/youtube:/youtube
|
|
||||||
environment:
|
|
||||||
PUID: $PUID
|
|
||||||
PGID: $PGID
|
|
||||||
TZ: $TZ
|
|
||||||
ports:
|
|
||||||
- 8096:8096
|
|
||||||
# labels:
|
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.jellyfin.rule=Host(`jellyfin.${LOCAL_DOMAIN}`)"
|
|
||||||
# - "traefik.http.routers.jellyfin.entrypoints=https"
|
|
||||||
# - "traefik.http.routers.jellyfin.tls=true"
|
|
||||||
# - "traefik.http.services.jellyfin.loadbalancer.server.port=8096"
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# networks:
|
|
||||||
# proxy:
|
|
||||||
# external: true
|
|
||||||
21
servers/docker/jellyseer/compose.yaml
Normal file
21
servers/docker/jellyseer/compose.yaml
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
services:
|
||||||
|
jellyseerr:
|
||||||
|
image: ghcr.io/seerr-team/seerr:v3.0.1
|
||||||
|
container_name: jellyseerr
|
||||||
|
environment:
|
||||||
|
LOG_LEVEL: debug
|
||||||
|
TZ: $TZ
|
||||||
|
PORT: 5055
|
||||||
|
PUID: $PUID
|
||||||
|
PGID: $PGID
|
||||||
|
ports:
|
||||||
|
- 5055:5055
|
||||||
|
volumes:
|
||||||
|
- $APPDATA/jellyseer:/app/config
|
||||||
|
healthcheck:
|
||||||
|
test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1
|
||||||
|
start_period: 20s
|
||||||
|
timeout: 3s
|
||||||
|
interval: 15s
|
||||||
|
retries: 3
|
||||||
|
restart: unless-stopped
|
||||||
18
servers/docker/pkvault/compose.yaml
Normal file
18
servers/docker/pkvault/compose.yaml
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
services:
|
||||||
|
pkvault:
|
||||||
|
image: ghcr.io/chnapy/pkvault:2.4.5 # or specific version, like 1.5.1
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "3005:3000"
|
||||||
|
environment:
|
||||||
|
- LOG_FILE_COUNT_LIMIT=10 # removes extra log files, default: 10
|
||||||
|
- BACKUP_FILE_COUNT_LIMIT=30 # removes extra backup files, default: no limit
|
||||||
|
volumes:
|
||||||
|
- $APPDATA/pkvault/data:/pkvault
|
||||||
|
|
||||||
|
# save paths sample
|
||||||
|
- $APPDATA/pkvault/saves:/data/saves
|
||||||
|
- $APPDATA/pkvault/other/saves:/data/other-saves
|
||||||
|
|
||||||
|
# external-pkms path sample (optional)
|
||||||
|
- $APPDATA/pkvault/external-pkms:/data/external-pkms
|
||||||
36
servers/docker/runner/compose.yaml
Normal file
36
servers/docker/runner/compose.yaml
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
services:
|
||||||
|
docker-in-docker:
|
||||||
|
image: docker:dind
|
||||||
|
container_name: 'docker_dind'
|
||||||
|
privileged: true
|
||||||
|
command: ['dockerd', '-H', 'tcp://0.0.0.0:2375', '--tls=false']
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
runner:
|
||||||
|
image: code.forgejo.org/forgejo/runner:3.5.0
|
||||||
|
container_name: runner
|
||||||
|
volumes:
|
||||||
|
# Config
|
||||||
|
- $APPDATA/runner/data:/data
|
||||||
|
# Other
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
environment:
|
||||||
|
DOCKER_HOST: tcp://docker-in-docker:2375
|
||||||
|
# CONFIG_FILE: /config.yaml
|
||||||
|
# GITEA_INSTANCE_URL: 'https://git.${DOMAIN}'
|
||||||
|
# GITEA_RUNNER_REGISTRATION_TOKEN: $GITEA_RUNNER_TOKEN
|
||||||
|
# GITEA_RUNNER_UID: $GITEA_RUNNER_UID
|
||||||
|
# GITEA_RUNNER_GID: $GITEA_RUNNER_GID
|
||||||
|
# GITEA_RUNNER_NAME: gitea-runner-1
|
||||||
|
# GITEA_RUNNER_LABELS: "ubuntu-latest,ubuntu-22.04,ubuntu-20.04,ubuntu-18.04"
|
||||||
|
ports:
|
||||||
|
- 42263:42263
|
||||||
|
links:
|
||||||
|
- docker-in-docker
|
||||||
|
depends_on:
|
||||||
|
docker-in-docker:
|
||||||
|
condition: service_started
|
||||||
|
user: 1001:1001
|
||||||
|
# command: forgejo-runner daemon
|
||||||
|
command: '/bin/sh -c "while : ; do sleep 1 ; done ;"'
|
||||||
|
restart: unless-stopped
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
services:
|
|
||||||
seer:
|
|
||||||
image: ghcr.io/seerr-team/seerr:v3.0.1
|
|
||||||
# init: true
|
|
||||||
container_name: seer
|
|
||||||
volumes:
|
|
||||||
# Config
|
|
||||||
- $APPDATA/seer:/app/config
|
|
||||||
environment:
|
|
||||||
PUID: $PUID
|
|
||||||
PGID: $PGID
|
|
||||||
TZ: $TZ
|
|
||||||
LOG_LEVEL: debug
|
|
||||||
PORT: 5055
|
|
||||||
ports:
|
|
||||||
- 5055:5055
|
|
||||||
healthcheck:
|
|
||||||
test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1
|
|
||||||
start_period: 20s
|
|
||||||
timeout: 3s
|
|
||||||
interval: 15s
|
|
||||||
retries: 3
|
|
||||||
# labels:
|
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.seer.rule=Host(`seer.${LOCAL_DOMAIN}`)"
|
|
||||||
# - "traefik.http.routers.seer.entrypoints=https"
|
|
||||||
# - "traefik.http.routers.seer.tls=true"
|
|
||||||
# - "traefik.http.services.seer.loadbalancer.server.port=5055"
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# networks:
|
|
||||||
# proxy:
|
|
||||||
# external: true
|
|
||||||
28
servers/docker/stash/compose.yaml
Normal file
28
servers/docker/stash/compose.yaml
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
services:
|
||||||
|
stash:
|
||||||
|
image: stashapp/stash:v0.31.0
|
||||||
|
container_name: stash
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "9999:9999"
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-file: "10"
|
||||||
|
max-size: "2m"
|
||||||
|
environment:
|
||||||
|
- STASH_STASH=/data/
|
||||||
|
- STASH_GENERATED=/generated/
|
||||||
|
- STASH_METADATA=/metadata/
|
||||||
|
- STASH_CACHE=/cache/
|
||||||
|
- STASH_PORT=9999
|
||||||
|
volumes:
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- ${APPDATA}/stash/config:/root/.stash
|
||||||
|
- ${APPDATA}/stash/metadata:/metadata
|
||||||
|
- ${APPDATA}/stash/cache:/cache
|
||||||
|
- ${APPDATA}/stash/blobs:/blobs
|
||||||
|
- ${APPDATA}/stash/generated:/generated
|
||||||
|
# - ${APPDATA}/stash:/data
|
||||||
|
- ${MEDIADIR}/stash/stash:/data/stash
|
||||||
|
- ${MEDIADIR}/stash/stash-hentai:/data/stash-hentai
|
||||||
19
servers/docker/syncthing/compose.yaml
Normal file
19
servers/docker/syncthing/compose.yaml
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
services:
|
||||||
|
syncthing:
|
||||||
|
image: ghcr.io/linuxserver/syncthing
|
||||||
|
container_name: syncthing
|
||||||
|
volumes:
|
||||||
|
# Config
|
||||||
|
- $APPDATA/syncthing:/config
|
||||||
|
# Sync data
|
||||||
|
# - $SYNCTHINGDATA:/data
|
||||||
|
- $MEDIADIR/movies:/movies
|
||||||
|
environment:
|
||||||
|
PUID: $PUID
|
||||||
|
PGID: $PGID
|
||||||
|
TZ: $TZ
|
||||||
|
ports:
|
||||||
|
- 8384:8384
|
||||||
|
- 22000:22000
|
||||||
|
- 21027:21027/udp
|
||||||
|
restart: unless-stopped
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
# TODO
|
|
||||||
services:
|
services:
|
||||||
tubearchivist:
|
tubearchivist:
|
||||||
image: bbilly1/tubearchivist:v0.5.9
|
|
||||||
container_name: tubearchivist
|
container_name: tubearchivist
|
||||||
|
restart: unless-stopped
|
||||||
|
image: bbilly1/tubearchivist:v0.5.12
|
||||||
|
ports:
|
||||||
|
- 8200:8000
|
||||||
volumes:
|
volumes:
|
||||||
# Config
|
# Config
|
||||||
- $APPDATA/tubearchivist:/cache
|
- $APPDATA/tubearchivist-new:/cache
|
||||||
# Media
|
# Media
|
||||||
- $MEDIADIR/youtube:/youtube
|
- $MEDIADIR/youtube:/youtube
|
||||||
environment:
|
environment:
|
||||||
|
|
@ -18,16 +20,6 @@ services:
|
||||||
TA_USERNAME: $TA_USER
|
TA_USERNAME: $TA_USER
|
||||||
TA_PASSWORD: $TA_PASS
|
TA_PASSWORD: $TA_PASS
|
||||||
ELASTIC_PASSWORD: $TA_ES_PASS
|
ELASTIC_PASSWORD: $TA_ES_PASS
|
||||||
ports:
|
|
||||||
- 8200:8000
|
|
||||||
# labels:
|
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.tubearchivist.rule=Host(`tubearchivist.${LOCAL_DOMAIN}`)"
|
|
||||||
# - "traefik.http.routers.tubearchivist.entrypoints=https"
|
|
||||||
# - "traefik.http.routers.tubearchivist.tls=true"
|
|
||||||
# - "traefik.http.services.tubearchivist.loadbalancer.server.port=8000"
|
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
|
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
|
||||||
interval: 2m
|
interval: 2m
|
||||||
|
|
@ -37,24 +29,20 @@ services:
|
||||||
depends_on:
|
depends_on:
|
||||||
- archivist-es
|
- archivist-es
|
||||||
- archivist-redis
|
- archivist-redis
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
archivist-redis:
|
archivist-redis:
|
||||||
image: redis
|
image: redis
|
||||||
container_name: archivist-redis
|
container_name: archivist-redis
|
||||||
volumes:
|
restart: unless-stopped
|
||||||
- redis:/data
|
|
||||||
expose:
|
expose:
|
||||||
- "6379"
|
- "6379"
|
||||||
|
volumes:
|
||||||
|
- redis:/data
|
||||||
depends_on:
|
depends_on:
|
||||||
- archivist-es
|
- archivist-es
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
archivist-es:
|
archivist-es:
|
||||||
image: bbilly1/tubearchivist-es:8.19.0
|
image: bbilly1/tubearchivist-es:8.19.0
|
||||||
container_name: archivist-es
|
container_name: archivist-es
|
||||||
volumes:
|
restart: unless-stopped
|
||||||
- es:/usr/share/elasticsearch/data
|
|
||||||
environment:
|
environment:
|
||||||
ELASTIC_PASSWORD: $TA_ES_PASS
|
ELASTIC_PASSWORD: $TA_ES_PASS
|
||||||
ES_JAVA_OPTS: -Xms1g -Xmx1g
|
ES_JAVA_OPTS: -Xms1g -Xmx1g
|
||||||
|
|
@ -65,14 +53,11 @@ services:
|
||||||
memlock:
|
memlock:
|
||||||
soft: -1
|
soft: -1
|
||||||
hard: -1
|
hard: -1
|
||||||
|
volumes:
|
||||||
|
- es:/usr/share/elasticsearch/data # check for permission error when using bind mount, see readme
|
||||||
expose:
|
expose:
|
||||||
- "9200"
|
- "9200"
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
redis:
|
redis:
|
||||||
es:
|
es:
|
||||||
|
|
||||||
# networks:
|
|
||||||
# proxy:
|
|
||||||
# external: true
|
|
||||||
|
|
@ -1,30 +1,18 @@
|
||||||
services:
|
services:
|
||||||
tunarr:
|
tunarr:
|
||||||
image: ghcr.io/chrisbenincasa/tunarr:1.1.11
|
image: ghcr.io/chrisbenincasa/tunarr:1.1.11
|
||||||
|
restart: unless-stopped
|
||||||
container_name: tunarr
|
container_name: tunarr
|
||||||
volumes:
|
|
||||||
# Config
|
|
||||||
- $APPDATA/tunarr:/config/tunarr
|
|
||||||
# Media
|
|
||||||
- $MEDIADIR/tv:/tv:ro
|
|
||||||
- $MEDIADIR/movies:/movies:ro
|
|
||||||
environment:
|
|
||||||
LOG_LEVEL: ${TUNARR_LOG_LEVEL:-INFO}
|
|
||||||
TZ: $TZ
|
|
||||||
ports:
|
ports:
|
||||||
- 8088:8000
|
- 8088:8000
|
||||||
|
environment:
|
||||||
|
- LOG_LEVEL=${TUNARR_LOG_LEVEL:-INFO}
|
||||||
|
- TZ=Europe/Zurich
|
||||||
devices:
|
devices:
|
||||||
- /dev/dri:/dev/dri
|
- /dev/dri:/dev/dri
|
||||||
# labels:
|
volumes:
|
||||||
# - "traefik.enable=true"
|
# The host path is relative to the location of the compose file
|
||||||
# - "traefik.http.routers.tunarr.rule=Host(`tunarr.${LOCAL_DOMAIN}`)"
|
# This can also use an absolute path.
|
||||||
# - "traefik.http.routers.tunarr.entrypoints=https"
|
- /mnt/appdata/tunarr:/config/tunarr
|
||||||
# - "traefik.http.routers.tunarr.tls=true"
|
- $MEDIADIR/tv:/tv:ro
|
||||||
# - "traefik.http.services.tunarr.loadbalancer.server.port=8000"
|
- $MEDIADIR/movies:/movies:ro
|
||||||
# networks:
|
|
||||||
# - proxy
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# networks:
|
|
||||||
# proxy:
|
|
||||||
# external: true
|
|
||||||
|
|
|
||||||
20
servers/docker/wg-easy/compose.yaml
Normal file
20
servers/docker/wg-easy/compose.yaml
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
services:
|
||||||
|
wg-easy:
|
||||||
|
image: weejewel/wg-easy
|
||||||
|
container_name: wg-easy
|
||||||
|
volumes:
|
||||||
|
# Config
|
||||||
|
- $APPDATA/wg-easy:/etc/wireguard
|
||||||
|
environment:
|
||||||
|
WG_HOST: $WG_HOST
|
||||||
|
WG_DEFAULT_DNS: $WG_DNS
|
||||||
|
ports:
|
||||||
|
- "51820:51820/udp"
|
||||||
|
- "51821:51821/tcp"
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_MODULE
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.ip_forward=1
|
||||||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||||||
|
restart: unless-stopped
|
||||||
Loading…
Reference in a new issue