diff --git a/servers/docker/arr/compose.yaml b/servers/docker/arr/compose.yaml new file mode 100644 index 0000000..93eb9fa --- /dev/null +++ b/servers/docker/arr/compose.yaml @@ -0,0 +1,103 @@ +services: + radarr: + image: linuxserver/radarr:6.0.4 + container_name: radarr + volumes: + # Config + - $APPDATA/radarr:/config + # Media + - $MEDIADIR/movies:/movies + - $DOWNLOADS:/downloads + - $RECYCLEBIN:/recyclebin + environment: + PUID: $PUID + PGID: $PGID + 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 + container_name: sonarr + volumes: + # Config + - $APPDATA/sonarr:/config + # Media + - $MEDIADIR/tv:/tv + - $DOWNLOADS:/downloads + - $RECYCLEBIN:/recyclebin + environment: + PUID: $PUID + PGID: $PGID + 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 + + kapowarr: + image: mrcas/kapowarr:v1.2.0 + container_name: kapowarr + 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 diff --git a/servers/docker/audiobookshelf/compose.yaml b/servers/docker/audiobookshelf/compose.yaml new file mode 100644 index 0000000..ed9b4b2 --- /dev/null +++ b/servers/docker/audiobookshelf/compose.yaml @@ -0,0 +1,28 @@ +services: + audiobookshelf: + 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 diff --git a/servers/docker/booklore/compose.yaml b/servers/docker/booklore/compose.yaml new file mode 100644 index 0000000..82a48e1 --- /dev/null +++ b/servers/docker/booklore/compose.yaml @@ -0,0 +1,66 @@ +services: + booklore: + image: booklore/booklore:v1.17.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 + depends_on: + mariadb: + condition: service_healthy + healthcheck: + test: wget -q -O - http://localhost:6060/api/v1/healthcheck + interval: 60s + retries: 5 + start_period: 60s + timeout: 10s + restart: unless-stopped + + 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 + 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 diff --git a/servers/docker/deluge/compose.yaml b/servers/docker/deluge/compose.yaml new file mode 100644 index 0000000..87e4f53 --- /dev/null +++ b/servers/docker/deluge/compose.yaml @@ -0,0 +1,50 @@ +services: + deluge: + image: ghcr.io/linuxserver/deluge:2.2.0 + container_name: deluge + volumes: + # Config + - $APPDATA/deluge:/config + # Media + - $DOWNLOADS:/downloads + environment: + PUID: $PUID + PGID: $PGID + TZ: $TZ + ports: + - 8112:8112 + - 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 + container_name: storm + environment: + DELUGE_RPC_VERSION: v2 + DELUGE_RPC_HOSTNAME: deluge + 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 diff --git a/servers/docker/drop/compose.yaml b/servers/docker/drop/compose.yaml new file mode 100644 index 0000000..2a822b5 --- /dev/null +++ b/servers/docker/drop/compose.yaml @@ -0,0 +1,50 @@ +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 + healthcheck: + test: pg_isready -d ${DROP_DB} -U ${DROP_DB_USER} + interval: 30s + timeout: 60s + retries: 5 + start_period: 10s + restart: unless-stopped + +# networks: +# proxy: +# external: true \ No newline at end of file diff --git a/servers/docker/freshrss/compose.yaml b/servers/docker/freshrss/compose.yaml new file mode 100644 index 0000000..e25c098 --- /dev/null +++ b/servers/docker/freshrss/compose.yaml @@ -0,0 +1,26 @@ +services: + freshrss: + image: linuxserver/freshrss:1.28.1 + container_name: freshrss + volumes: + # Config + - $APPDATA/freshrss:/config + environment: + PUID: $PUID + PGID: $PGID + 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 diff --git a/servers/docker/jellyfin/compose.yaml b/servers/docker/jellyfin/compose.yaml new file mode 100644 index 0000000..7453938 --- /dev/null +++ b/servers/docker/jellyfin/compose.yaml @@ -0,0 +1,35 @@ +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/renovate.json b/servers/docker/renovate.json new file mode 100644 index 0000000..7190a60 --- /dev/null +++ b/servers/docker/renovate.json @@ -0,0 +1,3 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json" +} diff --git a/servers/docker/seer/compose.yaml b/servers/docker/seer/compose.yaml new file mode 100644 index 0000000..3d6afd7 --- /dev/null +++ b/servers/docker/seer/compose.yaml @@ -0,0 +1,35 @@ +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/tubearchivist/compose.yaml b/servers/docker/tubearchivist/compose.yaml new file mode 100644 index 0000000..ee13e0b --- /dev/null +++ b/servers/docker/tubearchivist/compose.yaml @@ -0,0 +1,78 @@ +# TODO +services: + tubearchivist: + image: bbilly1/tubearchivist:v0.5.9 + container_name: tubearchivist + volumes: + # Config + - $APPDATA/tubearchivist:/cache + # Media + - $MEDIADIR/youtube:/youtube + environment: + HOST_UID: $PUID + HOST_GID: $PGID + TZ: $TZ + ES_URL: http://archivist-es:9200 + REDIS_CON: redis://archivist-redis:6379 + TA_HOST: http://${DOCKER_IP}:8200 + 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 + timeout: 10s + retries: 3 + start_period: 30s + depends_on: + - archivist-es + - archivist-redis + restart: unless-stopped + + archivist-redis: + image: redis + container_name: archivist-redis + volumes: + - redis:/data + expose: + - "6379" + 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 + environment: + ELASTIC_PASSWORD: $TA_ES_PASS + ES_JAVA_OPTS: -Xms1g -Xmx1g + xpack.security.enabled: true + discovery.type: single-node + path.repo: /usr/share/elasticsearch/data/snapshot + ulimits: + memlock: + soft: -1 + hard: -1 + expose: + - "9200" + restart: unless-stopped + +volumes: + redis: + es: + +# networks: +# proxy: +# external: true \ No newline at end of file diff --git a/servers/docker/tunarr/compose.yaml b/servers/docker/tunarr/compose.yaml new file mode 100644 index 0000000..febf59a --- /dev/null +++ b/servers/docker/tunarr/compose.yaml @@ -0,0 +1,30 @@ +services: + tunarr: + image: ghcr.io/chrisbenincasa/tunarr:1.1.11 + 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 + 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