diff --git a/admin-docker/komodo/compose.yaml b/admin-docker/komodo/compose.yaml index 8dfd963..eb09297 100644 --- a/admin-docker/komodo/compose.yaml +++ b/admin-docker/komodo/compose.yaml @@ -9,6 +9,7 @@ services: mongo: + container_name: komodo-mongo image: mongo labels: komodo.skip: # Prevent Komodo from stopping with StopAllContainers @@ -26,6 +27,7 @@ services: MONGO_INITDB_ROOT_PASSWORD: ${KOMODO_DB_PASSWORD} core: + container_name: komodo-core image: ghcr.io/moghtech/komodo-core:${COMPOSE_KOMODO_IMAGE_TAG:-latest} labels: komodo.skip: # Prevent Komodo from stopping with StopAllContainers diff --git a/auth-docker/authentik/compose.yaml b/auth-docker/authentik/compose.yaml index 702a045..3d4a5f0 100644 --- a/auth-docker/authentik/compose.yaml +++ b/auth-docker/authentik/compose.yaml @@ -1,6 +1,7 @@ services: postgresql: + container_name: authentik-postgresql image: docker.io/library/postgres:16-alpine restart: unless-stopped healthcheck: @@ -20,6 +21,7 @@ services: labels: - wud.watch=false redis: + container_name: authentik-redis image: docker.io/library/redis:alpine command: --save 60 1 --loglevel warning restart: unless-stopped @@ -32,6 +34,7 @@ services: volumes: - redis:/data server: + container_name: authentik-server image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:latest restart: unless-stopped command: server @@ -53,6 +56,7 @@ services: - postgresql - redis worker: + container_name: authentik-worker image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:latest restart: unless-stopped command: worker diff --git a/komodo-periphery/compose.yaml b/komodo-periphery/compose.yaml index baa9b69..69ea651 100644 --- a/komodo-periphery/compose.yaml +++ b/komodo-periphery/compose.yaml @@ -1,5 +1,6 @@ services: periphery: + container_name: komodo-periphery image: ghcr.io/moghtech/komodo-periphery:${COMPOSE_KOMODO_IMAGE_TAG:-latest} labels: komodo.skip: # Prevent Komodo from stopping with StopAllContainers diff --git a/main-docker/bangserver/compose.yaml b/main-docker/bangserver/compose.yaml new file mode 100644 index 0000000..fad2a2a --- /dev/null +++ b/main-docker/bangserver/compose.yaml @@ -0,0 +1,13 @@ +services: + bangserver: + container_name: bangserver + image: ghcr.io/rebelonion/bangserver:latest + security_opt: + - seccomp:unconfined + volumes: + - /home/docker/bangserver:/etc/bangserver:ro + ports: + - 3003:3003 + environment: + - BANG_HOST=${BANG_HOST} + restart: unless-stopped diff --git a/main-docker/byparr/compose.yaml b/main-docker/byparr/compose.yaml new file mode 100644 index 0000000..390d0a4 --- /dev/null +++ b/main-docker/byparr/compose.yaml @@ -0,0 +1,10 @@ +services: + byparr: + container_name: byparr + image: ghcr.io/thephaseless/byparr:latest + restart: unless-stopped + shm_size: 2gb + volumes: + - /home/docker/byparr/screenshots:/app/screenshots # (optional) For screenshots when exception occurs + ports: + - "8191:8191" diff --git a/main-docker/freshrss/compose.yaml b/main-docker/freshrss/compose.yaml new file mode 100644 index 0000000..c0adf58 --- /dev/null +++ b/main-docker/freshrss/compose.yaml @@ -0,0 +1,13 @@ +services: + freshrss: + image: lscr.io/linuxserver/freshrss:latest + container_name: freshrss + environment: + - PUID=1000 + - PGID=10000 + - TZ=America/Chicago + volumes: + - /home/docker/freshrss/config:/config + ports: + - 8001:80 + restart: unless-stopped diff --git a/main-docker/ganymede/compose.yaml b/main-docker/ganymede/compose.yaml new file mode 100644 index 0000000..a673171 --- /dev/null +++ b/main-docker/ganymede/compose.yaml @@ -0,0 +1,73 @@ +services: + ganymede: + container_name: ganymede + image: ghcr.io/zibbp/ganymede:latest + restart: unless-stopped + depends_on: + - ganymede-db + environment: + - DEBUG=false + - TZ=America/Chicago # Set to your timezone + # Data paths in container; update the mounted volume paths as well + - VIDEOS_DIR=/data/videos + - TEMP_DIR=/data/temp + - LOGS_DIR=/data/logs + - CONFIG_DIR=/data/config + # Database settings + - DB_HOST=ganymede-db + - DB_PORT=5432 + - DB_USER=ganymede + - DB_PASS=${POSTGRES_PASSWORD} + - DB_NAME=ganymede-prd + - DB_SSL=disable + # - DB_SSL_ROOT_CERT= # path to cert in the container if DB_SSL is not disabled + - TWITCH_CLIENT_ID=${TWITCH_CLIENT_ID} # from your twitch application + - TWITCH_CLIENT_SECRET=${TWITCH_CLIENT_SECRET} # from your twitch application + # Worker settings. Max number of tasks to run in parallel per type. + - MAX_CHAT_DOWNLOAD_EXECUTIONS=3 + - MAX_CHAT_RENDER_EXECUTIONS=2 + - MAX_VIDEO_DOWNLOAD_EXECUTIONS=2 + - MAX_VIDEO_CONVERT_EXECUTIONS=3 + - MAX_VIDEO_SPRITE_THUMBNAIL_EXECUTIONS=2 + # Optional OAuth settings + # - OAUTH_ENABLED=false + # - OAUTH_PROVIDER_URL= + # - OAUTH_CLIENT_ID= + # - OAUTH_CLIENT_SECRET= + # - OAUTH_REDIRECT_URL=http://IP:PORT/api/v1/auth/oauth/callback # Points to the API service + # Optional Frontend settings + - SHOW_SSO_LOGIN_BUTTON=true + - FORCE_SSO_AUTH=false + - REQUIRE_LOGIN=false + # - CDN_URL= # Set this if you are hosting static files through another service (nginx, S3, etc). By default this does not need to be configured as Ganymede serves the static files. + volumes: + - /mnt/ganymede:/data/videos # update VIDEOS_DIR env var + - /mnt/temp/ganymede/temp:/data/temp # update TEMP_DIR env var + - /home/docker/ganymede/logs:/data/logs # queue logs + - /home/docker/ganymede/config:/data/config # config and other miscellaneous files + ports: + - 4800:4000 + healthcheck: + test: curl --fail http://localhost:4000/health || exit 1 + interval: 60s + retries: 5 + start_period: 60s + timeout: 10s + ganymede-db: + container_name: ganymede-db + image: postgres:14 + volumes: + - /home/docker/ganymede/ganymede-db:/var/lib/postgresql/data + environment: + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_USER=ganymede + - POSTGRES_DB=ganymede-prd + ports: + - 4801:5432 + restart: unless-stopped + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + interval: 30s + timeout: 60s + retries: 5 + start_period: 60s diff --git a/main-docker/koblas/compose.yaml b/main-docker/koblas/compose.yaml new file mode 100644 index 0000000..78a90dc --- /dev/null +++ b/main-docker/koblas/compose.yaml @@ -0,0 +1,14 @@ +services: + koblas: + image: ynuwenhof/koblas:latest + container_name: koblas + restart: unless-stopped + ports: + - 1080:1080 + environment: + RUST_LOG: debug + KOBLAS_LIMIT: 5 + KOBLAS_NO_AUTHENTICATION: false + KOBLAS_ANONYMIZATION: true + volumes: + - /root/koblas/config.toml:/etc/koblas/config.toml diff --git a/main-docker/komga/compose.yaml b/main-docker/komga/compose.yaml new file mode 100644 index 0000000..b24f9e8 --- /dev/null +++ b/main-docker/komga/compose.yaml @@ -0,0 +1,23 @@ +services: + komga: + image: gotson/komga + container_name: komga + volumes: + - type: bind + source: /home/docker/komga/config + target: /config + - type: bind + source: /mnt/manga + target: /data + - type: bind + source: /etc/timezone + target: /etc/timezone + read_only: true + ports: + - 25600:25600 + user: "1000:10000" + environment: + - PUID=1000 + - PGID=10000 + - JAVA_TOOL_OPTIONS=-Xmx4g + restart: unless-stopped diff --git a/main-docker/n8n/compose.yaml b/main-docker/n8n/compose.yaml new file mode 100644 index 0000000..791f10f --- /dev/null +++ b/main-docker/n8n/compose.yaml @@ -0,0 +1,17 @@ +services: + n8n: + container_name: n8n + image: n8nio/n8n:latest + ports: + - "5678:5678" + volumes: + - n8n_data:/home/node/.n8n + - /var/run/docker.sock:/var/run/docker.sock + group_add: + - "996" + environment: + - N8N_SECURE_COOKIE=false + - TZ=America/Chicago + restart: unless-stopped +volumes: + n8n_data: diff --git a/main-docker/ntfy/compose.yaml b/main-docker/ntfy/compose.yaml new file mode 100644 index 0000000..efb6bdd --- /dev/null +++ b/main-docker/ntfy/compose.yaml @@ -0,0 +1,21 @@ +services: + ntfy: + image: binwiederhier/ntfy + container_name: ntfy + command: + - serve + environment: + - TZ=America/Chicago + user: 1000:10000 + volumes: + - /home/docker/ntfy/cache:/var/cache/ntfy + - /home/docker/ntfy/etc:/etc/ntfy + ports: + - 8002:80 + healthcheck: + test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"] + interval: 60s + timeout: 10s + retries: 3 + start_period: 40s + restart: unless-stopped diff --git a/main-docker/open-webui/compose.yaml b/main-docker/open-webui/compose.yaml new file mode 100644 index 0000000..05125e1 --- /dev/null +++ b/main-docker/open-webui/compose.yaml @@ -0,0 +1,11 @@ +services: + openwebui: + container_name: open-webui + restart: unless-stopped + image: ghcr.io/open-webui/open-webui:main + ports: + - "3002:8080" + volumes: + - open-webui:/app/backend/data +volumes: + open-webui: diff --git a/main-docker/pinchflat/compose.yaml b/main-docker/pinchflat/compose.yaml new file mode 100644 index 0000000..ed4bc23 --- /dev/null +++ b/main-docker/pinchflat/compose.yaml @@ -0,0 +1,74 @@ +services: + vpn: + container_name: pinchflat-vpn + restart: unless-stopped + image: thrnz/docker-wireguard-pia + # Alternatively you may use ghcr.io + #image: ghcr.io/thrnz/docker-wireguard-pia + ports: + - 8945:8945 # for pinchflat + - 4416:4416 # for bgutil-provider + volumes: + - pia:/pia + # If enabled, the forwarded port is dumped to /pia-shared/port.dat for potential use in other containers + - pia-shared:/pia-shared + cap_add: + - NET_ADMIN + environment: + # The following env vars are required: + - LOC=${LOC} + - USER=${USER} + - PASS=${PASS} + #The rest are optional: + - LOCAL_NETWORK=${LOCAL_NETWORK} + #- KEEPALIVE=25 + #- VPNDNS=8.8.8.8,8.8.4.4 + - PORT_FORWARDING=0 + sysctls: + - net.ipv4.conf.all.src_valid_mark=1 + - net.ipv6.conf.default.disable_ipv6=1 + - net.ipv6.conf.all.disable_ipv6=1 + - net.ipv6.conf.lo.disable_ipv6=1 + healthcheck: + test: ping -c 1 www.google.com || exit 1 + interval: 300s + timeout: 10s + retries: 3 + start_period: 30s + start_interval: 3s + + pinchflat: + container_name: pinchflat + restart: unless-stopped + image: keglin/pinchflat:latest + volumes: + - /mnt/pinchflat:/downloads + - /home/docker/pinchflat:/config + - /home/docker/python-packages:/etc/yt-dlp/plugins/bgutil-ytdlp-pot-provider + environment: + - TZ=America/Chicago + - LOG_LEVEL=info + - PUID=1000 + - PGID=10000 + healthcheck: + test: ["CMD-SHELL", "yt-dlp --update-to nightly"] + interval: 12h + timeout: 30s + retries: 3 + network_mode: service:vpn + depends_on: + vpn: + condition: service_healthy + + bgutil-provider: + container_name: bgutil-provider + restart: unless-stopped + image: brainicism/bgutil-ytdlp-pot-provider + network_mode: service:vpn + depends_on: + vpn: + condition: service_healthy + +volumes: + pia: + pia-shared: diff --git a/main-docker/plex-auto-languages/compose.yaml b/main-docker/plex-auto-languages/compose.yaml new file mode 100644 index 0000000..7ccd456 --- /dev/null +++ b/main-docker/plex-auto-languages/compose.yaml @@ -0,0 +1,11 @@ +services: + plexautolanguages: + container_name: plex-auto-languages + image: journeyover/plex-auto-languages:latest + restart: unless-stopped + environment: + - PLEX_URL=${PLEX_URL} + - PLEX_TOKEN=${PLEX_TOKEN} + - TZ=America/Chicago + volumes: + - /home/docker/plexAL:/config diff --git a/main-docker/shlink/compose.yaml b/main-docker/shlink/compose.yaml new file mode 100644 index 0000000..2014648 --- /dev/null +++ b/main-docker/shlink/compose.yaml @@ -0,0 +1,45 @@ +services: + shlink: + image: shlinkio/shlink:stable + restart: always + container_name: shlink-backend + environment: + - TZ="America/Chicago" + - DEFAULT_DOMAIN=${DEFAULT_DOMAIN} + - IS_HTTPS_ENABLED=true + - GEOLITE_LICENSE_KEY=${GEOLITE_LICENSE_KEY} + - DB_DRIVER=maria + - DB_USER=shlink + - DB_NAME=shlink + - DB_PASSWORD=${DB_PASSWORD} + - DB_HOST=database + depends_on: + - database + ports: + - 8987:8080 + + database: + image: mariadb:latest + restart: always + container_name: shlink-database + environment: + - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} + - MARIADB_DATABASE=shlink + - MARIADB_USER=shlink + - MARIADB_PASSWORD=${DB_PASSWORD} + volumes: + - /home/docker/shlink/db:/var/lib/mysql + + shlink-web-client: + image: shlinkio/shlink-web-client + restart: always + container_name: shlink-gui + environment: + - SHLINK_SERVER_URL=${SHLINK_SERVER_URL} + - SHLINK_SERVER_API_KEY=${SHLINK_SERVER_API_KEY} + #volumes: + # - /home/docker/shlink/servers.json:/usr/share/nginx/html/servers.json #this file will be generated automatically + depends_on: + - shlink + ports: + - 8081:8080 diff --git a/main-docker/suwayomi/compose.yaml b/main-docker/suwayomi/compose.yaml new file mode 100644 index 0000000..bcf9935 --- /dev/null +++ b/main-docker/suwayomi/compose.yaml @@ -0,0 +1,36 @@ +services: + suwayomi: + container_name: suwayomi + image: ghcr.io/suwayomi/tachidesk:preview + environment: + - PUID=1000 + - PGID=10000 + - TZ=America/Chicago # Use TZ database name from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + # Comment these out if you do not use the flaresolverr container at the bottom of this file + - FLARESOLVERR_ENABLED=true + - FLARESOLVERR_URL=http://flaresolverr:8191 + - BASIC_AUTH_ENABLED=true + - BASIC_AUTH_USERNAME=${BASIC_AUTH_USERNAME} + - BASIC_AUTH_PASSWORD=${BASIC_AUTH_PASSWORD} +# ################################################################################################# +# +# !!! IMPORTANT !!! +# - server settings can be changed during runtime in the WebUI +# - providing an environment variable will OVERWRITE the current setting value when starting the container +# +# ################################################################################################# +# +# example for setting env vars: +# +# - BIND_IP=0.0.0.0 +# - BIND_PORT=4567 +# - SOCKS_PROXY_ENABLED=false +# - DOWNLOAD_AS_CBZ=true +# - EXTENSION_REPOS=["http://github.com/orginazation-name/repo-name", "http://github.com/orginazation-name-2/repo-name-2"] + user: "1000:10000" + volumes: + - /mnt/manga:/mnt/manga + - /home/docker/suwayomi:/home/suwayomi/.local/share/Tachidesk + ports: + - "4567:4567" + restart: on-failure:3 diff --git a/main-docker/twitch-cpm/compose.yaml b/main-docker/twitch-cpm/compose.yaml new file mode 100644 index 0000000..4011ff3 --- /dev/null +++ b/main-docker/twitch-cpm/compose.yaml @@ -0,0 +1,15 @@ +services: + twitch-cpm: + container_name: twitch-cpm + image: rdavidoff/twitch-channel-points-miner-v2 + stdin_open: true + tty: true + environment: + - TERM=xterm-256color + volumes: + - /root/twitch/analytics:/usr/src/app/analytics + - /root/twitch/cookies:/usr/src/app/cookies + - /root/twitch/logs:/usr/src/app/logs + - /root/twitch/run.py:/usr/src/app/run.py:ro + ports: + - "5000:5000" diff --git a/main-docker/uptime-kuma/compose.yaml b/main-docker/uptime-kuma/compose.yaml new file mode 100644 index 0000000..2b4e8fb --- /dev/null +++ b/main-docker/uptime-kuma/compose.yaml @@ -0,0 +1,22 @@ +services: + uptime-kuma: + image: louislam/uptime-kuma:1 + container_name: uptime-kuma + volumes: + - /root/uptimekuma/cert:/app/data/docker-tls + - /var/run/docker.sock:/var/run/docker.sock:ro + - uptime-kuma:/app/data + ports: + - "3001:3001" + restart: always + security_opt: + - no-new-privileges:true + healthcheck: + test: curl -f http://localhost:3001 || exit 1 + interval: 30m + timeout: 10s + retries: 3 + start_period: 1m + +volumes: + uptime-kuma: