diff --git a/servers/docker/.env.example b/servers/docker/.env.example new file mode 100644 index 0000000..8ea9459 --- /dev/null +++ b/servers/docker/.env.example @@ -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= \ No newline at end of file diff --git a/servers/docker/README.md b/servers/docker/README.md index 18d1d12..5e8e545 100644 --- a/servers/docker/README.md +++ b/servers/docker/README.md @@ -4,4 +4,12 @@ Machine de production hébergeant les services du quotidien. ## Dépendances -- Dépend du NAS (Orion) pour les partages NFS. \ No newline at end of file +- Dépend du NAS (Orion) pour les partages NFS. + +## A ajouter + +- filebrowser +- jellyfin +- mafl +- nginx +- portainer \ No newline at end of file diff --git a/servers/docker/arr/compose.yaml b/servers/docker/arr/compose.yaml index 93eb9fa..bd91bf3 100644 --- a/servers/docker/arr/compose.yaml +++ b/servers/docker/arr/compose.yaml @@ -1,12 +1,13 @@ services: radarr: - image: linuxserver/radarr:6.0.4 + image: linuxserver/radarr:latest container_name: radarr volumes: # Config - $APPDATA/radarr:/config # Media - $MEDIADIR/movies:/movies + - $MEDIADIR/animation:/animated - $DOWNLOADS:/downloads - $RECYCLEBIN:/recyclebin environment: @@ -15,18 +16,10 @@ services: TZ: $TZ ports: - 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 sonarr: - image: linuxserver/sonarr:4.0.16 + image: linuxserver/sonarr:latest container_name: sonarr volumes: # Config @@ -41,63 +34,35 @@ services: TZ: $TZ ports: - 8989:8989 - # labels: - # - "traefik.enable=true" - # - "traefik.http.routers.sonarr.rule=Host(`sonarr.${LOCAL_DOMAIN}`)" - # - "traefik.http.routers.sonarr.entrypoints=https" - # - "traefik.http.routers.sonarr.tls=true" - # - "traefik.http.services.sonarr.loadbalancer.server.port=8989" - # networks: - # - proxy + restart: unless-stopped + + prowlarr: + image: ghcr.io/linuxserver/prowlarr:develop + container_name: prowlarr + environment: + PUID: $PUID + PGID: $PGID + TZ: $TZ + volumes: + # Config + - $APPDATA/prowlarr:/config + ports: + - 9696:9696 restart: unless-stopped kapowarr: - image: mrcas/kapowarr:v1.2.0 + image: mrcas/kapowarr:latest container_name: kapowarr + environment: + PUID: $PUID + PGID: $PGID + TZ: $TZ volumes: # Config - $APPDATA/kapowarr:/app/db # Media - $MEDIADIR/comics:/comics - $DOWNLOADS:/app/temp_downloads - environment: - PUID: $PUID - PGID: $PGID - TZ: $TZ ports: - 5656:5656 - # labels: - # - "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 \ No newline at end of file + restart: unless-stopped \ No newline at end of file diff --git a/servers/docker/audiobookshelf/compose.yaml b/servers/docker/audiobookshelf/compose.yaml index ed9b4b2..c09c9b9 100644 --- a/servers/docker/audiobookshelf/compose.yaml +++ b/servers/docker/audiobookshelf/compose.yaml @@ -1,28 +1,13 @@ services: audiobookshelf: + restart: unless-stopped 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: - 13378:80 - # labels: - # - "traefik.enable=true" - # - "traefik.http.routers.audiobookshelf.rule=Host(`audiobookshelf.${LOCAL_DOMAIN}`)" - # - "traefik.http.routers.audiobookshelf.entrypoints=https" - # - "traefik.http.routers.audiobookshelf.tls=true" - # - "traefik.http.services.audiobookshelf.loadbalancer.server.port=80" - # networks: - # - proxy - restart: unless-stopped - -# networks: -# proxy: -# external: true \ No newline at end of file + volumes: + - $MEDIADIR/audiobooks:/audiobooks + - $MEDIADIR/podcasts:/podcasts + - /mnt/appdata/audiobookshelf/config:/config + - /mnt/appdata/audiobookshelf/metadata:/metadata + environment: + - TZ=Europe/Zurich \ No newline at end of file diff --git a/servers/docker/booklore/compose.yaml b/servers/docker/booklore/compose.yaml index 82a48e1..8a53ac0 100644 --- a/servers/docker/booklore/compose.yaml +++ b/servers/docker/booklore/compose.yaml @@ -1,37 +1,27 @@ services: booklore: - image: booklore/booklore:v1.17.0 + image: ghcr.io/grimmory-tools/grimmory:v3.5.0 container_name: booklore - volumes: - # Config - - $APPDATA/booklore/data:/app/data - # Media - - $MEDIADIR/books:/books - - $MEDIADIR/comics:/comics - # - $MEDIADIR/bookdrop:/bookdrop environment: - USER_ID: $PUID - GROUP_ID: $PGID - TZ: $TZ - DATABASE_URL: $BOOKLORE_DB_URL - DATABASE_USERNAME: $BOOKLORE_DB_USER - DATABASE_PASSWORD: $BOOKLORE_DB_PASSWORD - BOOKLORE_PORT: 6060 - 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 + - USER_ID=${APP_USER_ID} + - GROUP_ID=${APP_GROUP_ID} + - TZ=${TZ} + - DATABASE_URL=${DATABASE_URL} + - DATABASE_USERNAME=${DB_USER} + - DATABASE_PASSWORD=${DB_PASSWORD} + - BOOKLORE_PORT=${BOOKLORE_PORT} depends_on: mariadb: 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: - test: wget -q -O - http://localhost:6060/api/v1/healthcheck + test: wget -q -O - http://localhost:${BOOKLORE_PORT}/api/v1/healthcheck interval: 60s retries: 5 start_period: 60s @@ -41,26 +31,19 @@ services: mariadb: image: lscr.io/linuxserver/mariadb:11.4.5 container_name: mariadb - volumes: - # Config - - $APPDATA/booklore/mariadb/config:/config environment: - PUID: $PUID - PGID: $PGID - TZ: $TZ - MYSQL_ROOT_PASSWORD: $BOOKLORE_MYSQL_ROOT_PASSWORD - MYSQL_DATABASE: $BOOKLORE_MYSQL_DATABASE - MYSQL_USER: $BOOKLORE_DB_USER - MYSQL_PASSWORD: $BOOKLORE_DB_PASSWORD - # networks: - # - proxy + - PUID=${DB_USER_ID} + - PGID=${DB_GROUP_ID} + - TZ=${TZ} + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${DB_USER} + - MYSQL_PASSWORD=${DB_PASSWORD} + volumes: + - $APPDATA/booklore/mariadb/config:/config + restart: unless-stopped healthcheck: test: [ "CMD", "mariadb-admin", "ping", "-h", "localhost" ] interval: 5s timeout: 5s - retries: 10 - restart: unless-stopped - -# networks: -# proxy: -# external: true \ No newline at end of file + retries: 10 \ No newline at end of file diff --git a/servers/docker/deluge/compose.yaml b/servers/docker/deluge/compose.yaml index 87e4f53..e36a215 100644 --- a/servers/docker/deluge/compose.yaml +++ b/servers/docker/deluge/compose.yaml @@ -1,6 +1,6 @@ services: deluge: - image: ghcr.io/linuxserver/deluge:2.2.0 + image: linuxserver/deluge container_name: deluge volumes: # Config @@ -16,18 +16,10 @@ services: - 6881:6881 - 6881:6881/udp - 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 storm: - image: ghcr.io/relvacode/storm:v1.3.0 + image: ghcr.io/relvacode/storm container_name: storm environment: DELUGE_RPC_VERSION: v2 @@ -35,16 +27,4 @@ services: DELUGE_RPC_USERNAME: $DELUGE_USER DELUGE_RPC_PASSWORD: $DELUGE_PASS ports: - - 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 \ No newline at end of file + - 8221:8221 \ No newline at end of file diff --git a/servers/docker/dispatcharr/compose.yaml b/servers/docker/dispatcharr/compose.yaml new file mode 100644 index 0000000..51fa178 --- /dev/null +++ b/servers/docker/dispatcharr/compose.yaml @@ -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: \ No newline at end of file diff --git a/servers/docker/drop/compose.yaml b/servers/docker/drop/compose.yaml index 2a822b5..ed54f33 100644 --- a/servers/docker/drop/compose.yaml +++ b/servers/docker/drop/compose.yaml @@ -1,50 +1,30 @@ 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: image: postgres:14-alpine - container_name: postgres - 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 + restart: unless-stopped healthcheck: - test: pg_isready -d ${DROP_DB} -U ${DROP_DB_USER} + test: pg_isready -d drop -U drop interval: 30s timeout: 60s retries: 5 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 - -# networks: -# proxy: -# external: true \ No newline at end of file + depends_on: + postgres: + condition: service_healthy + 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 \ No newline at end of file diff --git a/servers/docker/forgejo/compose.yaml b/servers/docker/forgejo/compose.yaml new file mode 100644 index 0000000..2a97431 --- /dev/null +++ b/servers/docker/forgejo/compose.yaml @@ -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 \ No newline at end of file diff --git a/servers/docker/freshrss/compose.yaml b/servers/docker/freshrss/compose.yaml index e25c098..62d5e01 100644 --- a/servers/docker/freshrss/compose.yaml +++ b/servers/docker/freshrss/compose.yaml @@ -1,6 +1,6 @@ services: freshrss: - image: linuxserver/freshrss:1.28.1 + image: lscr.io/linuxserver/freshrss:latest container_name: freshrss volumes: # Config @@ -11,16 +11,4 @@ services: TZ: $TZ ports: - 8083:80 - # labels: - # - "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 \ No newline at end of file + restart: unless-stopped \ No newline at end of file diff --git a/servers/docker/glances/compose.yaml b/servers/docker/glances/compose.yaml new file mode 100644 index 0000000..6dd9fe9 --- /dev/null +++ b/servers/docker/glances/compose.yaml @@ -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 \ No newline at end of file diff --git a/servers/docker/heimdall/compose.yaml b/servers/docker/heimdall/compose.yaml new file mode 100644 index 0000000..de13e90 --- /dev/null +++ b/servers/docker/heimdall/compose.yaml @@ -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 \ No newline at end of file diff --git a/servers/docker/jellyfin/compose.yaml b/servers/docker/jellyfin/compose.yaml deleted file mode 100644 index 7453938..0000000 --- a/servers/docker/jellyfin/compose.yaml +++ /dev/null @@ -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 \ No newline at end of file diff --git a/servers/docker/jellyseer/compose.yaml b/servers/docker/jellyseer/compose.yaml new file mode 100644 index 0000000..b10a783 --- /dev/null +++ b/servers/docker/jellyseer/compose.yaml @@ -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 \ No newline at end of file diff --git a/servers/docker/pkvault/compose.yaml b/servers/docker/pkvault/compose.yaml new file mode 100644 index 0000000..03de687 --- /dev/null +++ b/servers/docker/pkvault/compose.yaml @@ -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 \ No newline at end of file diff --git a/servers/docker/runner/compose.yaml b/servers/docker/runner/compose.yaml new file mode 100644 index 0000000..141ec71 --- /dev/null +++ b/servers/docker/runner/compose.yaml @@ -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 \ No newline at end of file diff --git a/servers/docker/seer/compose.yaml b/servers/docker/seer/compose.yaml deleted file mode 100644 index 3d6afd7..0000000 --- a/servers/docker/seer/compose.yaml +++ /dev/null @@ -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 \ No newline at end of file diff --git a/servers/docker/stash/compose.yaml b/servers/docker/stash/compose.yaml new file mode 100644 index 0000000..a544d80 --- /dev/null +++ b/servers/docker/stash/compose.yaml @@ -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 \ No newline at end of file diff --git a/servers/docker/syncthing/compose.yaml b/servers/docker/syncthing/compose.yaml new file mode 100644 index 0000000..ddbf518 --- /dev/null +++ b/servers/docker/syncthing/compose.yaml @@ -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 \ No newline at end of file diff --git a/servers/docker/tubearchivist/compose.yaml b/servers/docker/tubearchivist/compose.yaml index ee13e0b..ac9861d 100644 --- a/servers/docker/tubearchivist/compose.yaml +++ b/servers/docker/tubearchivist/compose.yaml @@ -1,11 +1,13 @@ -# TODO services: tubearchivist: - image: bbilly1/tubearchivist:v0.5.9 container_name: tubearchivist + restart: unless-stopped + image: bbilly1/tubearchivist:v0.5.12 + ports: + - 8200:8000 volumes: # Config - - $APPDATA/tubearchivist:/cache + - $APPDATA/tubearchivist-new:/cache # Media - $MEDIADIR/youtube:/youtube environment: @@ -18,16 +20,6 @@ services: TA_USERNAME: $TA_USER TA_PASSWORD: $TA_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: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 2m @@ -37,24 +29,20 @@ services: depends_on: - archivist-es - archivist-redis - restart: unless-stopped - archivist-redis: image: redis container_name: archivist-redis - volumes: - - redis:/data + restart: unless-stopped expose: - "6379" + volumes: + - redis:/data depends_on: - archivist-es - restart: unless-stopped - archivist-es: image: bbilly1/tubearchivist-es:8.19.0 container_name: archivist-es - volumes: - - es:/usr/share/elasticsearch/data + restart: unless-stopped environment: ELASTIC_PASSWORD: $TA_ES_PASS ES_JAVA_OPTS: -Xms1g -Xmx1g @@ -65,14 +53,11 @@ services: memlock: soft: -1 hard: -1 + volumes: + - es:/usr/share/elasticsearch/data # check for permission error when using bind mount, see readme expose: - "9200" - restart: unless-stopped volumes: redis: - es: - -# networks: -# proxy: -# external: true \ No newline at end of file + es: \ No newline at end of file diff --git a/servers/docker/tunarr/compose.yaml b/servers/docker/tunarr/compose.yaml index febf59a..cc6b44a 100644 --- a/servers/docker/tunarr/compose.yaml +++ b/servers/docker/tunarr/compose.yaml @@ -1,30 +1,18 @@ services: tunarr: image: ghcr.io/chrisbenincasa/tunarr:1.1.11 + restart: unless-stopped 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: - 8088:8000 + environment: + - LOG_LEVEL=${TUNARR_LOG_LEVEL:-INFO} + - TZ=Europe/Zurich devices: - /dev/dri:/dev/dri - # labels: - # - "traefik.enable=true" - # - "traefik.http.routers.tunarr.rule=Host(`tunarr.${LOCAL_DOMAIN}`)" - # - "traefik.http.routers.tunarr.entrypoints=https" - # - "traefik.http.routers.tunarr.tls=true" - # - "traefik.http.services.tunarr.loadbalancer.server.port=8000" - # networks: - # - proxy - restart: unless-stopped - -# networks: -# proxy: -# external: true \ No newline at end of file + volumes: + # The host path is relative to the location of the compose file + # This can also use an absolute path. + - /mnt/appdata/tunarr:/config/tunarr + - $MEDIADIR/tv:/tv:ro + - $MEDIADIR/movies:/movies:ro diff --git a/servers/docker/wg-easy/compose.yaml b/servers/docker/wg-easy/compose.yaml new file mode 100644 index 0000000..406fc8a --- /dev/null +++ b/servers/docker/wg-easy/compose.yaml @@ -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