From 5ad09a69de9e6cec729a34425549c235bb43a00e Mon Sep 17 00:00:00 2001 From: RyuuPendragon Date: Thu, 5 Jun 2025 13:56:57 +0530 Subject: [PATCH] Add Files --- adguardhome-sync/docker-compose.yaml | 14 ++++ adguardhome/docker-compose-sync.yaml | 26 +++++++ adguardhome/docker-compose.yaml | 14 ++++ airsonic-advanced/docker-compose.yaml | 20 +++++ authelia/docker-compose.yaml | 12 +++ bookstack/docker-compose.yaml | 38 ++++++++++ caddy-reverse-proxy/docker-compose-dns.yaml | 21 ++++++ caddy-reverse-proxy/docker-compose.yaml | 17 +++++ changedetection/docker-compose.yaml | 24 ++++++ cloudflare-ddns/docker-compose.yaml | 20 +++++ dockerproxy/docker-compose.yaml | 15 ++++ duplicati/docker-compose.yaml | 19 +++++ duplicati/readme.md | 6 ++ duplicati/start-containers.sh | 10 +++ duplicati/stop-containers.sh | 10 +++ ferdium-server/docker-compose.yaml | 28 +++++++ forgejo/docker-compose.yaml | 39 ++++++++++ glances/docker-compose-cosmoem.yaml | 15 ++++ glances/docker-compose-rayquaza.yaml | 15 ++++ glances/docker-compose.yaml | 15 ++++ gotify/docker-compose-arm64.yaml | 13 ++++ healthchecks/docker-compose.yaml | 30 ++++++++ homeassistant/docker-compose-ls.yaml | 13 ++++ homeassistant/docker-compose.yaml | 11 +++ homepage/docker-compose.yaml | 29 ++++++++ immich/docker-compose.yaml | 64 ++++++++++++++++ joplin/docker-compose.yaml | 32 ++++++++ komga/docker-compose.yaml | 15 ++++ .../docker-compose-dry.yaml | 20 +++++ .../docker-compose-issue.yaml | 20 +++++ .../docker-compose-renew.yaml | 20 +++++ mailrise/docker-compose.yaml | 10 +++ minio/docker-compose.yaml | 17 +++++ nextcloud/docker-compose-ls.yaml | 46 ++++++++++++ nextcloud/docker-compose.yaml | 74 +++++++++++++++++++ nginx-proxy-manager/docker-compose.yaml | 13 ++++ nginx-reverse-proxy/docker-compose.yaml | 15 ++++ paperless-ngx/docker-compose.yaml | 38 ++++++++++ picsur/docker-compose.yaml | 33 +++++++++ pihole-unbound/docker-compose.yaml | 17 +++++ pihole/docker-compose.yaml | 16 ++++ portainer-agent/docker-compose.yaml | 11 +++ portainer/docker-compose.yaml | 13 ++++ qbittorrent/docker-compose.yaml | 18 +++++ radicale/docker-compose.yaml | 27 +++++++ stirling-pdf/docker-compose.yaml | 18 +++++ uptime-kuma/docker-compose.yaml | 10 +++ vaultwarden/docker-compose.yaml | 24 ++++++ wallos/docker-compose.yaml | 13 ++++ 49 files changed, 1058 insertions(+) create mode 100644 adguardhome-sync/docker-compose.yaml create mode 100644 adguardhome/docker-compose-sync.yaml create mode 100644 adguardhome/docker-compose.yaml create mode 100644 airsonic-advanced/docker-compose.yaml create mode 100644 authelia/docker-compose.yaml create mode 100644 bookstack/docker-compose.yaml create mode 100644 caddy-reverse-proxy/docker-compose-dns.yaml create mode 100644 caddy-reverse-proxy/docker-compose.yaml create mode 100644 changedetection/docker-compose.yaml create mode 100644 cloudflare-ddns/docker-compose.yaml create mode 100644 dockerproxy/docker-compose.yaml create mode 100644 duplicati/docker-compose.yaml create mode 100644 duplicati/readme.md create mode 100644 duplicati/start-containers.sh create mode 100644 duplicati/stop-containers.sh create mode 100644 ferdium-server/docker-compose.yaml create mode 100644 forgejo/docker-compose.yaml create mode 100644 glances/docker-compose-cosmoem.yaml create mode 100644 glances/docker-compose-rayquaza.yaml create mode 100644 glances/docker-compose.yaml create mode 100644 gotify/docker-compose-arm64.yaml create mode 100644 healthchecks/docker-compose.yaml create mode 100644 homeassistant/docker-compose-ls.yaml create mode 100644 homeassistant/docker-compose.yaml create mode 100644 homepage/docker-compose.yaml create mode 100644 immich/docker-compose.yaml create mode 100644 joplin/docker-compose.yaml create mode 100644 komga/docker-compose.yaml create mode 100644 letsencrypt-cloudflare/docker-compose-dry.yaml create mode 100644 letsencrypt-cloudflare/docker-compose-issue.yaml create mode 100644 letsencrypt-cloudflare/docker-compose-renew.yaml create mode 100644 mailrise/docker-compose.yaml create mode 100644 minio/docker-compose.yaml create mode 100644 nextcloud/docker-compose-ls.yaml create mode 100644 nextcloud/docker-compose.yaml create mode 100644 nginx-proxy-manager/docker-compose.yaml create mode 100644 nginx-reverse-proxy/docker-compose.yaml create mode 100644 paperless-ngx/docker-compose.yaml create mode 100644 picsur/docker-compose.yaml create mode 100644 pihole-unbound/docker-compose.yaml create mode 100644 pihole/docker-compose.yaml create mode 100644 portainer-agent/docker-compose.yaml create mode 100644 portainer/docker-compose.yaml create mode 100644 qbittorrent/docker-compose.yaml create mode 100644 radicale/docker-compose.yaml create mode 100644 stirling-pdf/docker-compose.yaml create mode 100644 uptime-kuma/docker-compose.yaml create mode 100644 vaultwarden/docker-compose.yaml create mode 100644 wallos/docker-compose.yaml diff --git a/adguardhome-sync/docker-compose.yaml b/adguardhome-sync/docker-compose.yaml new file mode 100644 index 0000000..8e97a6f --- /dev/null +++ b/adguardhome-sync/docker-compose.yaml @@ -0,0 +1,14 @@ +version: "3.8" +services: + adguardhome-sync: + image: "linuxserver/adguardhome-sync:0.7.6" + container_name: "adguardhome-sync" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + volumes: + - "${CONFIG_PATH}:/config" + ports: + - "${PORT}:8080" + restart: "unless-stopped" diff --git a/adguardhome/docker-compose-sync.yaml b/adguardhome/docker-compose-sync.yaml new file mode 100644 index 0000000..e977cdc --- /dev/null +++ b/adguardhome/docker-compose-sync.yaml @@ -0,0 +1,26 @@ +version: "3.8" +services: + adguardhome: + image: "adguard/adguardhome:v0.107.62" + container_name: "adguardhome" + volumes: + - "${WORK_PATH}:/opt/adguardhome/work" + - "${CONF_PATH}:/opt/adguardhome/conf" + ports: + - "${DNS_PORT}:53/tcp" + - "${DNS_PORT}:53/udp" + - "${TLS_PORT}:853/tcp" + - "${ADMIN_PORT}:3000/tcp" + restart: "unless-stopped" + adguardhome-sync: + image: "linuxserver/adguardhome-sync:0.7.6" + container_name: "adguardhome-sync" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + volumes: + - "${SYNC_PATH}:/config" + ports: + - "${SYNC_PORT}:8080" + restart: "unless-stopped" diff --git a/adguardhome/docker-compose.yaml b/adguardhome/docker-compose.yaml new file mode 100644 index 0000000..21096b0 --- /dev/null +++ b/adguardhome/docker-compose.yaml @@ -0,0 +1,14 @@ +version: "3.8" +services: + adguardhome: + image: "adguard/adguardhome:v0.107.62" + container_name: "adguardhome" + volumes: + - "${WORK_PATH}:/opt/adguardhome/work" + - "${CONF_PATH}:/opt/adguardhome/conf" + ports: + - "${DNS_PORT}:53/tcp" + - "${DNS_PORT}:53/udp" + - "${TLS_PORT}:853/tcp" + - "${ADMIN_PORT}:3000/tcp" + restart: "unless-stopped" diff --git a/airsonic-advanced/docker-compose.yaml b/airsonic-advanced/docker-compose.yaml new file mode 100644 index 0000000..901c15c --- /dev/null +++ b/airsonic-advanced/docker-compose.yaml @@ -0,0 +1,20 @@ +version: "3.8" +services: + airsonic-advanced: + image: "linuxserver/airsonic-advanced:11.0.0-SNAPSHOT.20230217142243-ls99" + container_name: "airsonic-advanced" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + - "CONTEXT_PATH=${CONTEXT_PATH}" + - "JAVA_OPTS=${JAVA_OPTS}" + volumes: + - "${CONFIG_PATH}:/config" + - "${PLAYLISTS_PATH}:/playlists" + - "${AUDIOBOOKS_PATH}:/audiobooks" + - "${PODCASTS_PATH}:/podcasts" + - "${MUSIC_PATH}:/music" + ports: + - "${PORT}:4040" + restart: "unless-stopped" diff --git a/authelia/docker-compose.yaml b/authelia/docker-compose.yaml new file mode 100644 index 0000000..c66a992 --- /dev/null +++ b/authelia/docker-compose.yaml @@ -0,0 +1,12 @@ +version: "3.8" +services: + authelia: + image: "authelia/authelia:4.39.4" + container_name: "authelia" + environment: + - "TZ=${TZ}" + volumes: + - "${CONFIG_PATH}:/config" + ports: + - "${PORT}:9091" + restart: "unless-stopped" diff --git a/bookstack/docker-compose.yaml b/bookstack/docker-compose.yaml new file mode 100644 index 0000000..f8ccd5b --- /dev/null +++ b/bookstack/docker-compose.yaml @@ -0,0 +1,38 @@ +version: "3.8" +services: + bookstack_app: + image: "linuxserver/bookstack:25.02.20250309" + container_name: "bookstack_app" + depends_on: + - "bookstack_db" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + - "APP_URL=${APP_URL}" + - "DB_HOST=bookstack_db" + - "DB_DATABASE=${DB_DATABASE}" + - "DB_USER=${DB_USER}" + - "DB_PASS=${DB_PASS}" + volumes: + - "${BOOKSTACK_CONFIG_PATH}:/config" + ports: + - "${APP_PORT}:80" + restart: "unless-stopped" + + bookstack_db: + image: "linuxserver/mariadb:11.4.5" + container_name: "bookstack_db" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + - "MYSQL_DATABASE=${DB_DATABASE}" + - "MYSQL_ROOT_PASSWORD=${DB_ROOT_PASS}" + - "MYSQL_USER=${DB_USER}" + - "MYSQL_PASSWORD=${DB_PASS}" + volumes: + - "${DB_CONFIG_PATH}:/config" + ports: + - "${DB_PORT}:3306" + restart: "unless-stopped" diff --git a/caddy-reverse-proxy/docker-compose-dns.yaml b/caddy-reverse-proxy/docker-compose-dns.yaml new file mode 100644 index 0000000..63e6cfa --- /dev/null +++ b/caddy-reverse-proxy/docker-compose-dns.yaml @@ -0,0 +1,21 @@ +version: "3.8" +services: + caddy-reverse-proxy: + image: "slothcroissant/caddy-cloudflaredns:2.10.0" + container_name: "caddy-reverse-proxy" + cap_add: + - NET_ADMIN + environment: + - "CLOUDFLARE_EMAIL=${CLOUDFLARE_EMAIL}" + - "CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN}" + - "ACME_AGREE=true" + volumes: + - "${CADDYFILE_PATH}:/etc/caddy/Caddyfile" + - "${CONF_PATH}:/config" + - "${DATA_PATH}:/data" + - "${LOG_PATH}:/var/log/caddy" + - "${SITE_PATH}:/srv" + ports: + - "${HTTP}:80" + - "${HTTPS}:443" + restart: "unless-stopped" diff --git a/caddy-reverse-proxy/docker-compose.yaml b/caddy-reverse-proxy/docker-compose.yaml new file mode 100644 index 0000000..57e680f --- /dev/null +++ b/caddy-reverse-proxy/docker-compose.yaml @@ -0,0 +1,17 @@ +version: "3.8" +services: + caddy-reverse-proxy: + image: "caddy:2.10.0" + container_name: "caddy-reverse-proxy" + cap_add: + - NET_ADMIN + volumes: + - "${CADDYFILE_PATH}:/etc/caddy/Caddyfile" + - "${CONF_PATH}:/config" + - "${DATA_PATH}:/data" + - "${LOG_PATH}:/var/log/caddy" + - "${SITE_PATH}:/srv" + ports: + - "${HTTP}:80" + - "${HTTPS}:443" + restart: "unless-stopped" diff --git a/changedetection/docker-compose.yaml b/changedetection/docker-compose.yaml new file mode 100644 index 0000000..103cfb5 --- /dev/null +++ b/changedetection/docker-compose.yaml @@ -0,0 +1,24 @@ +version: "3.8" +services: + changedetection: + image: "linuxserver/changedetection.io:version-0.45.14" + container_name: "changedetection" + depends_on: + - "playwright-chrome" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + - "PLAYWRIGHT_DRIVER_URL=ws://playwright-chrome:3000/" + volumes: + - "${CONFIG_PATH}:/config" + ports: + - "${PORT}:5000" + restart: "unless-stopped" + + playwright-chrome: + image: "browserless/chrome:latest" + container_name: "playwright-chrome" + ports: + - "3000:3000" + restart: "unless-stopped" diff --git a/cloudflare-ddns/docker-compose.yaml b/cloudflare-ddns/docker-compose.yaml new file mode 100644 index 0000000..56be9c0 --- /dev/null +++ b/cloudflare-ddns/docker-compose.yaml @@ -0,0 +1,20 @@ +version: "3" +services: + cloudflare-ddns: + image: "favonia/cloudflare-ddns:1.15.1" + container_name: cloudflare-ddns + user: "${PUID}:${PGID}" + cap_drop: + - all + read_only: true + security_opt: + - no-new-privileges:true + environment: + - CF_API_TOKEN=${CF_API_TOKEN} + - DOMAINS=${DOMAINS} + - PROXIED=${PROXIED} + - IP6_PROVIDER=${IP6_PROVIDER} + - UPDATE_CRON=${UPDATE_CRON} + - HEALTHCHECKS=${HEALTHCHECKS} + - TTL=${TTL} + restart: unless-stopped diff --git a/dockerproxy/docker-compose.yaml b/dockerproxy/docker-compose.yaml new file mode 100644 index 0000000..c5cee27 --- /dev/null +++ b/dockerproxy/docker-compose.yaml @@ -0,0 +1,15 @@ +version: "3.3" +services: + dockerproxy: + image: "ghcr.io/tecnativa/docker-socket-proxy:0.3.0" + container_name: "dockerproxy" + environment: + - "CONTAINERS=${CONTAINERS}" + - "SERVICES=${SERVICES}" + - "TASKS=${TASKS}" + - "POST=${POST}" + ports: + - "${PORT}:2375" + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + restart: "unless-stopped" diff --git a/duplicati/docker-compose.yaml b/duplicati/docker-compose.yaml new file mode 100644 index 0000000..685d2aa --- /dev/null +++ b/duplicati/docker-compose.yaml @@ -0,0 +1,19 @@ +version: "3.8" +services: + duplicati: + image: "linuxserver/duplicati:2.1.0" + container_name: "duplicati" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + volumes: + - "${CONFIG_PATH}:/config" + - "${SOURCE_PATH}:/source" + - "${BACKUP_PATH}:/backups" + - "${SCRIPTS_PATH}:/scripts" + - "/var/run/docker.sock:/var/run/docker.sock" + - "/usr/bin/docker:/usr/bin/docker" + ports: + - "${PORT}:8200" + restart: "unless-stopped" diff --git a/duplicati/readme.md b/duplicati/readme.md new file mode 100644 index 0000000..33480bb --- /dev/null +++ b/duplicati/readme.md @@ -0,0 +1,6 @@ +## Duplicati Scripts: + +Add scripts to backup jobs for stoping and starting docker containers + +* run-script-before - /scripts/stop-containers.sh +* run-script-after - /scripts/start-containers.sh \ No newline at end of file diff --git a/duplicati/start-containers.sh b/duplicati/start-containers.sh new file mode 100644 index 0000000..e5238c5 --- /dev/null +++ b/duplicati/start-containers.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Start Database Containers and Dependant Containers +docker start db_container db_container_2 + +# Sleep for 10 sec for Database Containers and Dependant Containers startup +sleep 10 + +# Start Server Containers and Other Containers +docker start container container_2 diff --git a/duplicati/stop-containers.sh b/duplicati/stop-containers.sh new file mode 100644 index 0000000..f653922 --- /dev/null +++ b/duplicati/stop-containers.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Stop Server Containers and Other Containers +docker stop container container_2 + +# Sleep for 10 sec for Server Containers and Other Containers to stop +sleep 10 + +# Stop Database Containers and Dependant Containers +docker stop db_container db_container_2 diff --git a/ferdium-server/docker-compose.yaml b/ferdium-server/docker-compose.yaml new file mode 100644 index 0000000..ae95a80 --- /dev/null +++ b/ferdium-server/docker-compose.yaml @@ -0,0 +1,28 @@ +version: "3.8" +services: + ferdium-server: + image: "ferdium/ferdium-server:2.0.10" + container_name: "ferdium-server" + environment: + - "NODE_ENV=${NODE_ENV}" + - "APP_URL=${APP_URL}" + - "DB_CONNECTION=${DB_CONNECTION}" + - "MAIL_CONNECTION=smtp" + - "SMTP_HOST=${SMTP_HOST}" + - "SMTP_PORT=${SMTP_PORT}" + - "MAIL_SSL=${MAIL_SSL}" + - "MAIL_USERNAME=${MAIL_USERNAME}" + - "MAIL_PASSWORD=${MAIL_PASSWORD}" + - "MAIL_SENDER=${MAIL_SENDER}" + - "IS_CREATION_ENABLED=${IS_CREATION_ENABLED}" + - "IS_DASHBOARD_ENABLED=${IS_DASHBOARD_ENABLED}" + - "IS_REGISTRATION_ENABLED=${IS_REGISTRATION_ENABLED}" + - "CONNECT_WITH_FRANZ=${CONNECT_WITH_FRANZ}" + - "DATA_DIR=${DATA_DIR}" + - "JWT_USE_PEM=${JWT_USE_PEM}" + volumes: + - "${DB_PATH}:/data" + - "${RECIPES_PATH}:/app/build/recipes" + ports: + - "${PORT}:3333" + restart: "unless-stopped" diff --git a/forgejo/docker-compose.yaml b/forgejo/docker-compose.yaml new file mode 100644 index 0000000..bd5414c --- /dev/null +++ b/forgejo/docker-compose.yaml @@ -0,0 +1,39 @@ +version: "3.8" +services: + forgejo_db: + image: "linuxserver/mariadb:11.4.5" + container_name: "forgejo_db" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + volumes: + - "${DB_PATH}:/config" + ports: + - "${DB_PORT}:3306" + restart: "unless-stopped" + + forgejo_server: + image: "codeberg.org/forgejo/forgejo:11.0.1-rootless" + container_name: "forgejo_server" + depends_on: + - "forgejo_db" + environment: + - "USER_UID=${PUID}" + - "USER_GID=${PGID}" + - "FORGEJO__database__DB_TYPE=mysql" + - "FORGEJO__database__HOST=forgejo_db" + - "FORGEJO__database__NAME=${MYSQL_DATABASE}" + - "FORGEJO__database__USER=${MYSQL_USER}" + - "FORGEJO__database__PASSWD=${MYSQL_PASSWORD}" + volumes: + - "${SERVER_PATH}:/data" + - "/etc/timezone:/etc/timezone:ro" + - "/etc/localtime:/etc/localtime:ro" + ports: + - "${SERVER_PORT}:3000" + restart: "unless-stopped" diff --git a/glances/docker-compose-cosmoem.yaml b/glances/docker-compose-cosmoem.yaml new file mode 100644 index 0000000..e555243 --- /dev/null +++ b/glances/docker-compose-cosmoem.yaml @@ -0,0 +1,15 @@ +version: "3.8" +services: + glances: + image: "nicolargo/glances:4.3.0.8" + container_name: "glances" + hostname: "Cosmoem" + pid: "host" + environment: + - "GLANCES_OPT=-w" + ports: + - "${PORT}:61208" + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "/:/mnt/root" + restart: "unless-stopped" diff --git a/glances/docker-compose-rayquaza.yaml b/glances/docker-compose-rayquaza.yaml new file mode 100644 index 0000000..c02aa39 --- /dev/null +++ b/glances/docker-compose-rayquaza.yaml @@ -0,0 +1,15 @@ +version: "3.8" +services: + glances: + image: "nicolargo/glances:4.3.0.8" + container_name: "glances" + hostname: "Rayquaza" + pid: "host" + environment: + - "GLANCES_OPT=-w" + ports: + - "${PORT}:61208" + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "/:/mnt/root" + restart: "unless-stopped" diff --git a/glances/docker-compose.yaml b/glances/docker-compose.yaml new file mode 100644 index 0000000..e123046 --- /dev/null +++ b/glances/docker-compose.yaml @@ -0,0 +1,15 @@ +version: "3.8" +services: + glances: + image: "nicolargo/glances:4.3.0.8" + container_name: "glances" + hostname: "Hostname" + pid: "host" + environment: + - "GLANCES_OPT=-w" + ports: + - "${PORT}:61208" + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "/:/mnt/root" + restart: "unless-stopped" diff --git a/gotify/docker-compose-arm64.yaml b/gotify/docker-compose-arm64.yaml new file mode 100644 index 0000000..d4e2cf7 --- /dev/null +++ b/gotify/docker-compose-arm64.yaml @@ -0,0 +1,13 @@ +version: "3.8" +services: + gotify: + image: "gotify/server-arm64:2.6.3" + container_name: "gotify" + environment: + - "TZ=${TZ}" + - "GOTIFY_REGISTRATION=${GOTIFY_REGISTRATION}" + volumes: + - "${CONFIG_PATH}:/app/data" + ports: + - "${PORT}:80" + restart: "unless-stopped" diff --git a/healthchecks/docker-compose.yaml b/healthchecks/docker-compose.yaml new file mode 100644 index 0000000..e72237b --- /dev/null +++ b/healthchecks/docker-compose.yaml @@ -0,0 +1,30 @@ +version: "3.8" +services: + healthchecks: + image: "linuxserver/healthchecks:3.10.20250526" + container_name: "healthchecks" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + - "SITE_ROOT=${SITE_ROOT}" + - "SITE_NAME=${SITE_NAME}" + - "DEFAULT_FROM_EMAIL=${DEFAULT_FROM_EMAIL}" + - "EMAIL_HOST=${EMAIL_HOST}" + - "EMAIL_PORT=${EMAIL_PORT}" + - "EMAIL_HOST_USER=${EMAIL_HOST_USER}" + - "EMAIL_HOST_PASSWORD=${EMAIL_HOST_PASSWORD}" + - "EMAIL_USE_TLS=${EMAIL_USE_TLS}" + - "EMAIL_USE_SSL=${EMAIL_USE_SSL}" + - "SUPERUSER_EMAIL=${SUPERUSER_EMAIL}" + - "SUPERUSER_PASSWORD=${SUPERUSER_PASSWORD}" + - "SECRET_KEY=${SECRET_KEY}" + - "APPRISE_ENABLED=${APPRISE_ENABLED}" + - "REGISTRATION_OPEN=${REGISTRATION_OPEN}" + - "DEBUG=${DEBUG}" + - "SITE_LOGO_URL=${SITE_LOGO_URL}" + volumes: + - ${CONFIG_PATH}:/config + ports: + - "${PORT}:8000" + restart: "unless-stopped" diff --git a/homeassistant/docker-compose-ls.yaml b/homeassistant/docker-compose-ls.yaml new file mode 100644 index 0000000..d32f660 --- /dev/null +++ b/homeassistant/docker-compose-ls.yaml @@ -0,0 +1,13 @@ +version: "3.8" +services: + homeassistant: + image: "linuxserver/homeassistant:2025.5.3" + container_name: "homeassistant" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + network_mode: "host" + volumes: + - "${CONFIG_PATH}:/config" + restart: "unless-stopped" diff --git a/homeassistant/docker-compose.yaml b/homeassistant/docker-compose.yaml new file mode 100644 index 0000000..21e8a2f --- /dev/null +++ b/homeassistant/docker-compose.yaml @@ -0,0 +1,11 @@ +version: "3.8" +services: + homeassistant: + image: "homeassistant/home-assistant:2025.5.3" + container_name: "homeassistant" + network_mode: "host" + volumes: + - "${CONFIG_PATH}:/config" + - "/etc/localtime:/etc/localtime:ro" + - "/run/dbus:/run/dbus:ro" + restart: "unless-stopped" diff --git a/homepage/docker-compose.yaml b/homepage/docker-compose.yaml new file mode 100644 index 0000000..cc0bff6 --- /dev/null +++ b/homepage/docker-compose.yaml @@ -0,0 +1,29 @@ +version: "3.3" +services: + dockerproxy: + image: "tecnativa/docker-socket-proxy:0.3.0" + container_name: "dockerproxy" + environment: + - "CONTAINERS=${CONTAINERS}" # Allow access to viewing containers + - "SERVICES=${SERVICES}" # Allow access to viewing services (necessary when using Docker Swarm) + - "TASKS=${TASKS}" # Allow access to viewing tasks (necessary when using Docker Swarm) + - "POST=${POST}" # Disallow any POST operations (effectively read-only) + ports: + - "${PROXY_PORT}:2375" + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + restart: "unless-stopped" + + homepage: + image: "gethomepage/homepage:v1.2.0" + container_name: "homepage" + environment: + - "HOMEPAGE_ALLOWED_HOSTS=${HOMEPAGE_ALLOWED_HOSTS}" + - "PUID=${PUID}" + - "PGID=${PGID}" + volumes: + - "${CONFIG_PATH}:/app/config" + - "${IMAGES_PATH}:/app/public/images" + ports: + - "${PORT}:3000" + restart: "unless-stopped" diff --git a/immich/docker-compose.yaml b/immich/docker-compose.yaml new file mode 100644 index 0000000..5b25b1c --- /dev/null +++ b/immich/docker-compose.yaml @@ -0,0 +1,64 @@ +version: "3.8" +services: + immich-server: + container_name: immich_server + image: ghcr.io/immich-app/immich-server:v1.134.0 + command: ['start.sh', 'immich'] + volumes: + - ${UPLOAD_LOCATION}:/usr/src/app/upload + - ${PHOTOS_PATH_1}:/usr/src/app/external/${USER_1}/photos + - ${VIDEOS_PATH_1}:/usr/src/app/external/${USER_1}/videos + - ${PHOTOS_PATH_2}:/usr/src/app/external/${USER_2}/photos + - ${VIDEOS_PATH_2}:/usr/src/app/external/${USER_2}/videos + - /etc/localtime:/etc/localtime:ro + env_file: + - ../stack.env + ports: + - ${SERVER_PORT}:3001 + depends_on: + - immich-redis + - immich-postgres + restart: unless-stopped + + immich-microservices: + container_name: immich_microservices + image: ghcr.io/immich-app/immich-server:v1.134.0 + command: ['start.sh', 'microservices'] + volumes: + - ${UPLOAD_LOCATION}:/usr/src/app/upload + - ${PHOTOS_PATH_1}:/usr/src/app/external/${USER_1}/photos + - ${VIDEOS_PATH_1}:/usr/src/app/external/${USER_1}/videos + - ${PHOTOS_PATH_2}:/usr/src/app/external/${USER_2}/photos + - ${VIDEOS_PATH_2}:/usr/src/app/external/${USER_2}/videos + - /etc/localtime:/etc/localtime:ro + env_file: + - ../stack.env + depends_on: + - immich-redis + - immich-postgres + restart: unless-stopped + + immich-machine-learning: + container_name: immich_machine_learning + image: ghcr.io/immich-app/immich-machine-learning:v1.134.0 + volumes: + - ${CACHE_PATH}:/cache + env_file: + - ../stack.env + restart: unless-stopped + + immich-redis: + container_name: immich_redis + image: redis:8.0.2 + restart: unless-stopped + + immich-postgres: + container_name: immich_postgres + image: tensorchord/pgvecto-rs:pg15-v0.2.1 + environment: + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_USER: ${DB_USERNAME} + POSTGRES_DB: ${DB_DATABASE_NAME} + volumes: + - ${DB_PATH}:/var/lib/postgresql/data + restart: unless-stopped diff --git a/joplin/docker-compose.yaml b/joplin/docker-compose.yaml new file mode 100644 index 0000000..96046eb --- /dev/null +++ b/joplin/docker-compose.yaml @@ -0,0 +1,32 @@ +version: "3.8" +services: + joplin-server: + image: "joplin/server:3.3.9-beta" + container_name: "joplin-server" + depends_on: + - "joplin-db" + environment: + - "APP_PORT=${APP_PORT}" + - "APP_BASE_URL=${APP_BASE_URL}" + - "DB_CLIENT=pg" + - "POSTGRES_DATABASE=${POSTGRES_DATABASE}" + - "POSTGRES_USER=${POSTGRES_USER}" + - "POSTGRES_PASSWORD=${POSTGRES_PASSWORD}" + - "POSTGRES_HOST=joplin-db" + - "POSTGRES_PORT=5432" + ports: + - "${APP_PORT}:22300" + restart: "unless-stopped" + + joplin-db: + image: "postgres:17.5" + container_name: "joplin-db" + environment: + - "POSTGRES_DB=${POSTGRES_DATABASE}" + - "POSTGRES_USER=${POSTGRES_USER}" + - "POSTGRES_PASSWORD=${POSTGRES_PASSWORD}" + volumes: + - "${DB_PATH}:/var/lib/postgresql/data" + ports: + - "${DB_PORT}:5432" + restart: "unless-stopped" diff --git a/komga/docker-compose.yaml b/komga/docker-compose.yaml new file mode 100644 index 0000000..d3e01f7 --- /dev/null +++ b/komga/docker-compose.yaml @@ -0,0 +1,15 @@ +version: "3.8" +services: + komga: + image: "gotson/komga:1.21.3" + container_name: "komga" + user: "${UID}:${GID}" + environment: + - "TZ=${TZ}" + - "JAVA_TOOL_OPTIONS=-Xmx${RAM_LIMIT}" + volumes: + - "${CONFIG_PATH}:/config" + - "${DATA_PATH}:/data" + ports: + - "${PORT}:25600" + restart: "unless-stopped" diff --git a/letsencrypt-cloudflare/docker-compose-dry.yaml b/letsencrypt-cloudflare/docker-compose-dry.yaml new file mode 100644 index 0000000..4c4f82b --- /dev/null +++ b/letsencrypt-cloudflare/docker-compose-dry.yaml @@ -0,0 +1,20 @@ +version: "3" +services: + letsencrypt-cloudflare: + image: "certbot/dns-cloudflare:v4.0.0" + container_name: "letsencrypt-cloudflare" + + # Dry Run + command: certonly --non-interactive --dns-cloudflare --dns-cloudflare-credentials /opt/cloudflare/cloudflare.ini --agree-tos --email ${EMAIL} -d ${DOMAIN} -d *.${DOMAIN} --server https://acme-v02.api.letsencrypt.org/directory --dns-cloudflare-propagation-seconds ${PROPAGATION} --dry-run + + # Issue certificate + # command: certonly --non-interactive --dns-cloudflare --dns-cloudflare-credentials /opt/cloudflare/cloudflare.ini --agree-tos --email ${EMAIL} -d ${DOMAIN} -d *.${DOMAIN} --server https://acme-v02.api.letsencrypt.org/directory --dns-cloudflare-propagation-seconds ${PROPAGATION} + + # Renew certificate + # command: renew --non-interactive --dns-cloudflare --dns-cloudflare-credentials /opt/cloudflare/cloudflare.ini --agree-tos --server https://acme-v02.api.letsencrypt.org/directory --dns-cloudflare-propagation-seconds ${PROPAGATION} + + volumes: + - "${CLOUDFLARE_PATH}:/opt/cloudflare" + - "${LETSENCRYPT_PATH}:/etc/letsencrypt" + - "${LETSENCRYPT_LOG_PATH}:/var/log/letsencrypt" + - "${LETSENCRYPT_LIB_PATH}:/var/lib/letsencrypt" diff --git a/letsencrypt-cloudflare/docker-compose-issue.yaml b/letsencrypt-cloudflare/docker-compose-issue.yaml new file mode 100644 index 0000000..cfd1adf --- /dev/null +++ b/letsencrypt-cloudflare/docker-compose-issue.yaml @@ -0,0 +1,20 @@ +version: "3" +services: + letsencrypt-cloudflare: + image: "certbot/dns-cloudflare:v4.0.0" + container_name: "letsencrypt-cloudflare" + + # Dry Run + # command: certonly --non-interactive --dns-cloudflare --dns-cloudflare-credentials /opt/cloudflare/cloudflare.ini --agree-tos --email ${EMAIL} -d ${DOMAIN} -d *.${DOMAIN} --server https://acme-v02.api.letsencrypt.org/directory --dns-cloudflare-propagation-seconds ${PROPAGATION} --dry-run + + # Issue certificate + command: certonly --non-interactive --dns-cloudflare --dns-cloudflare-credentials /opt/cloudflare/cloudflare.ini --agree-tos --email ${EMAIL} -d ${DOMAIN} -d *.${DOMAIN} --server https://acme-v02.api.letsencrypt.org/directory --dns-cloudflare-propagation-seconds ${PROPAGATION} + + # Renew certificate + # command: renew --non-interactive --dns-cloudflare --dns-cloudflare-credentials /opt/cloudflare/cloudflare.ini --agree-tos --server https://acme-v02.api.letsencrypt.org/directory --dns-cloudflare-propagation-seconds ${PROPAGATION} + + volumes: + - "${CLOUDFLARE_PATH}:/opt/cloudflare" + - "${LETSENCRYPT_PATH}:/etc/letsencrypt" + - "${LETSENCRYPT_LOG_PATH}:/var/log/letsencrypt" + - "${LETSENCRYPT_LIB_PATH}:/var/lib/letsencrypt" diff --git a/letsencrypt-cloudflare/docker-compose-renew.yaml b/letsencrypt-cloudflare/docker-compose-renew.yaml new file mode 100644 index 0000000..eb0a8ed --- /dev/null +++ b/letsencrypt-cloudflare/docker-compose-renew.yaml @@ -0,0 +1,20 @@ +version: "3" +services: + letsencrypt-cloudflare: + image: "certbot/dns-cloudflare:v4.0.0" + container_name: "letsencrypt-cloudflare" + + # Dry Run + # command: certonly --non-interactive --dns-cloudflare --dns-cloudflare-credentials /opt/cloudflare/cloudflare.ini --agree-tos --email ${EMAIL} -d ${DOMAIN} -d *.${DOMAIN} --server https://acme-v02.api.letsencrypt.org/directory --dns-cloudflare-propagation-seconds ${PROPAGATION} --dry-run + + # Issue certificate + # command: certonly --non-interactive --dns-cloudflare --dns-cloudflare-credentials /opt/cloudflare/cloudflare.ini --agree-tos --email ${EMAIL} -d ${DOMAIN} -d *.${DOMAIN} --server https://acme-v02.api.letsencrypt.org/directory --dns-cloudflare-propagation-seconds ${PROPAGATION} + + # Renew certificate + command: renew --non-interactive --dns-cloudflare --dns-cloudflare-credentials /opt/cloudflare/cloudflare.ini --agree-tos --server https://acme-v02.api.letsencrypt.org/directory --dns-cloudflare-propagation-seconds ${PROPAGATION} + + volumes: + - "${CLOUDFLARE_PATH}:/opt/cloudflare" + - "${LETSENCRYPT_PATH}:/etc/letsencrypt" + - "${LETSENCRYPT_LOG_PATH}:/var/log/letsencrypt" + - "${LETSENCRYPT_LIB_PATH}:/var/lib/letsencrypt" diff --git a/mailrise/docker-compose.yaml b/mailrise/docker-compose.yaml new file mode 100644 index 0000000..61f8474 --- /dev/null +++ b/mailrise/docker-compose.yaml @@ -0,0 +1,10 @@ +version: "3.8" +services: + mailrise: + image: "yoryan/mailrise:latest" + container_name: "mailrise" + volumes: + - "${CONF}:/etc/mailrise.conf" + ports: + - "${PORT}:8025" + restart: "unless-stopped" diff --git a/minio/docker-compose.yaml b/minio/docker-compose.yaml new file mode 100644 index 0000000..27362b6 --- /dev/null +++ b/minio/docker-compose.yaml @@ -0,0 +1,17 @@ +version: "3.8" +services: + minio: + image: "minio/minio:latest" + container_name: "minio" + environment: + - "MINIO_ROOT_USER=${MINIO_ROOT_USER}" + - "MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}" + - "MINIO_BROWSER_REDIRECT_URL=${MINIO_BROWSER_REDIRECT_URL}" + - "MINIO_SERVER_URL=${MINIO_SERVER_URL}" + command: server --console-address ":9001" /data + volumes: + - "${DATA_PATH}:/data" + ports: + - "${PORT1}:9000" + - "${PORT2}:9001" + restart: "unless-stopped" diff --git a/nextcloud/docker-compose-ls.yaml b/nextcloud/docker-compose-ls.yaml new file mode 100644 index 0000000..9d2ac9f --- /dev/null +++ b/nextcloud/docker-compose-ls.yaml @@ -0,0 +1,46 @@ +version: "3.8" +services: + nextcloud_app: + image: "linuxserver/nextcloud:31.0.5" + container_name: "nextcloud_app" + depends_on: + - "nextcloud_db" + - "nextcloud_redis" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + volumes: + - "${CONFIG_PATH}:/config" + - "${DATA_PATH}:/data" + - "${HDD_DATA_PATH}:/hdd" + ports: + - "${APP_PORT}:443" + restart: "unless-stopped" + + nextcloud_db: + image: "linuxserver/mariadb:11.4.5" + container_name: "nextcloud_db" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + - "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + volumes: + - "${DB_PATH}:/config" + ports: + - "${DB_PORT}:3306" + restart: "unless-stopped" + + nextcloud_redis: + image: "redis:8.0.2" + container_name: "nextcloud_redis" + command: redis-server --requirepass ${REDIS_PASSWORD} + volumes: + - "${REDIS_PATH}:/data" + ports: + - "${REDIS_PORT}:6379" + restart: "unless-stopped" diff --git a/nextcloud/docker-compose.yaml b/nextcloud/docker-compose.yaml new file mode 100644 index 0000000..31df689 --- /dev/null +++ b/nextcloud/docker-compose.yaml @@ -0,0 +1,74 @@ +version: "3.8" +services: + nextcloud_app: + image: "nextcloud:31.0.5" + container_name: "nextcloud_app" + depends_on: + - "nextcloud_db" + - "nextcloud_redis" + environment: + - "MYSQL_HOST=nextcloud_db:3306" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + - "REDIS_HOST=nextcloud_redis" + - "REDIS_HOST_PORT=6379" + - "REDIS_HOST_PASSWORD=${REDIS_PASSWORD}" + - "PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT}" + - "PHP_UPLOAD_LIMIT=${PHP_UPLOAD_LIMIT}" + - "APACHE_DISABLE_REWRITE_IP=${APACHE_DISABLE_REWRITE_IP}" + volumes: + - "${CONFIG_PATH}:/var/www/html" + - "${DATA_PATH}:/var/www/html/data" + - "${HDD_PATH}:/hdd" + ports: + - "${APP_PORT}:80" + restart: "unless-stopped" + + nextcloud_cron: + image: "nextcloud:31.0.5" + container_name: "nextcloud_cron" + depends_on: + - "nextcloud_app" + entrypoint: /cron.sh + environment: + - "MYSQL_HOST=nextcloud_db:3306" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + - "REDIS_HOST=nextcloud_redis" + - "REDIS_HOST_PORT=6379" + - "REDIS_HOST_PASSWORD=${REDIS_PASSWORD}" + - "PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT}" + - "PHP_UPLOAD_LIMIT=${PHP_UPLOAD_LIMIT}" + - "APACHE_DISABLE_REWRITE_IP=${APACHE_DISABLE_REWRITE_IP}" + volumes: + - "${CONFIG_PATH}:/var/www/html" + - "${DATA_PATH}:/var/www/html/data" + - "${HDD_PATH}:/hdd" + restart: "unless-stopped" + + nextcloud_db: + image: "mariadb:11.7.2" + container_name: "nextcloud_db" + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed + environment: + - "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + volumes: + - "${DB_PATH}:/var/lib/mysql" + ports: + - "${DB_PORT}:3306" + restart: "unless-stopped" + + nextcloud_redis: + image: "redis:8.0.2" + container_name: "nextcloud_redis" + command: "redis-server --requirepass ${REDIS_PASSWORD}" + volumes: + - "${REDIS_PATH}:/data" + ports: + - "${REDIS_PORT}:6379" + restart: "unless-stopped" diff --git a/nginx-proxy-manager/docker-compose.yaml b/nginx-proxy-manager/docker-compose.yaml new file mode 100644 index 0000000..8338690 --- /dev/null +++ b/nginx-proxy-manager/docker-compose.yaml @@ -0,0 +1,13 @@ +version: "3.8" +services: + nginx-proxy-manager: + image: "jc21/nginx-proxy-manager:2.12.3" + container_name: "nginx-proxy-manager" + volumes: + - "${DATA_PATH}:/data" + - "${LETSENCRYPT_PATH}:/etc/letsencrypt" + ports: + - "${PORT1}:80" + - "${PORT2}:81" + - "${PORT3}:443" + restart: "unless-stopped" diff --git a/nginx-reverse-proxy/docker-compose.yaml b/nginx-reverse-proxy/docker-compose.yaml new file mode 100644 index 0000000..0de04ab --- /dev/null +++ b/nginx-reverse-proxy/docker-compose.yaml @@ -0,0 +1,15 @@ +version: "3.8" +services: + nginx-reverse-proxy: + image: "nginx:1.28.0" + container_name: "nginx-reverse-proxy" + volumes: + - "${CONF_PATH}:/etc/nginx/nginx.conf" + - "${PROXY_PATH}:/etc/nginx/conf.d" + - "${LOG_PATH}:/var/log/nginx" + - "${LETSENCRYPT_PATH}:/letsencrypt" + + ports: + - "${HTTP}:80" + - "${HTTPS}:443" + restart: "unless-stopped" diff --git a/paperless-ngx/docker-compose.yaml b/paperless-ngx/docker-compose.yaml new file mode 100644 index 0000000..e73c1a2 --- /dev/null +++ b/paperless-ngx/docker-compose.yaml @@ -0,0 +1,38 @@ +version: "3.8" +services: + paperless-ngx-server: + image: "paperlessngx/paperless-ngx:2.16.2" + container_name: "paperless-ngx-server" + depends_on: + - "paperless-ngx-redis" + environment: + USERMAP_UID: ${PUID} + USERMAP_GID: ${PGID} + PAPERLESS_TIME_ZONE: ${TZ} + PAPERLESS_SECRET_KEY: ${PAPERLESS_SECRET_KEY} + PAPERLESS_URL: ${URL} + PAPERLESS_REDIS: redis://paperless-ngx-redis:6379 + PAPERLESS_FILENAME_FORMAT: "{correspondent}/{created_year}/{title}" + PAPERLESS_OCR_DESKEW: false + volumes: + - "${DATA_PATH}:/usr/src/paperless/data" + - "${MEDIA_PATH}:/usr/src/paperless/media" + - "${EXPORT_PATH}:/usr/src/paperless/export" + - "${CONSUME_PATH}:/usr/src/paperless/consume" + ports: + - "${SERVER_PORT}:8000" + restart: "unless-stopped" + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000"] + interval: 30s + timeout: 10s + retries: 5 + + paperless-ngx-redis: + image: "redis:8.0.2" + container_name: "paperless-ngx-redis" + volumes: + - "${REDIS_PATH}:/data" + ports: + - "${REDIS_PORT}:6379" + restart: "unless-stopped" diff --git a/picsur/docker-compose.yaml b/picsur/docker-compose.yaml new file mode 100644 index 0000000..712f177 --- /dev/null +++ b/picsur/docker-compose.yaml @@ -0,0 +1,33 @@ +version: "3.8" +services: + picsur_app: + image: "ghcr.io/caramelfur/picsur:0.5.6" + container_name: "picsur_app" + depends_on: + - "picsur_db" + environment: + PICSUR_DB_HOST: picsur_db + PICSUR_DB_DATABASE: ${POSTGRES_DB} + PICSUR_DB_USERNAME: ${POSTGRES_USER} + PICSUR_DB_PASSWORD: ${POSTGRES_PASSWORD} + PICSUR_ADMIN_PASSWORD: ${PICSUR_ADMIN_PASSWORD} + PICSUR_JWT_SECRET: ${PICSUR_JWT_SECRET} + PICSUR_JWT_EXPIRY: ${PICSUR_JWT_EXPIRY} + PICSUR_MAX_FILE_SIZE: ${PICSUR_MAX_FILE_SIZE} + PICSUR_VERBOSE: "${PICSUR_VERBOSE}" + ports: + - "${APP_PORT}:8080" + restart: "unless-stopped" + + picsur_db: + image: "postgres:17.5" + container_name: "picsur_db" + environment: + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + volumes: + - "${DB_CONFIG}:/var/lib/postgresql/data" + ports: + - "${DB_PORT}:5432" + restart: "unless-stopped" \ No newline at end of file diff --git a/pihole-unbound/docker-compose.yaml b/pihole-unbound/docker-compose.yaml new file mode 100644 index 0000000..2894340 --- /dev/null +++ b/pihole-unbound/docker-compose.yaml @@ -0,0 +1,17 @@ +version: "3.8" +services: + pihole-unbound: + container_name: "pihole-unbound" + image: "rlabinc/pihole-unbound:2024.02.2" + environment: + - "TZ=${TZ}" + - "WEBPASSWORD=${WEBPASSWORD}" + volumes: + - "${ETC_PIHOLE_PATH}:/etc/pihole" + - "${ETC_DNSMASQ_PATH}:/etc/dnsmasq.d" +# - "${UNBOUND_PATH}:/opt/unbound/etc/unbound" #For custom Unbound conf + ports: + - "53:53/tcp" + - "53:53/udp" + - "${PORT}:80/tcp" + restart: "unless-stopped" diff --git a/pihole/docker-compose.yaml b/pihole/docker-compose.yaml new file mode 100644 index 0000000..3570592 --- /dev/null +++ b/pihole/docker-compose.yaml @@ -0,0 +1,16 @@ +version: "3.8" +services: + pihole: + container_name: "pihole" + image: "pihole/pihole:2025.05.1" + environment: + - "TZ=${TZ}" + - "WEBPASSWORD=${WEBPASSWORD}" + volumes: + - "${ETC_PIHOLE_PATH}:/etc/pihole" + - "${ETC_DNSMASQ_PATH}:/etc/dnsmasq.d" + ports: + - "53:53/tcp" + - "53:53/udp" + - "80:80/tcp" + restart: "unless-stopped" diff --git a/portainer-agent/docker-compose.yaml b/portainer-agent/docker-compose.yaml new file mode 100644 index 0000000..1fc025d --- /dev/null +++ b/portainer-agent/docker-compose.yaml @@ -0,0 +1,11 @@ +version: "3.8" +services: + portainer-agent: + image: "portainer/agent:lts" + container_name: "portainer-agent" + volumes: + - "/var/run/docker.sock:/var/run/docker.sock" + - "/var/lib/docker/volumes:/var/lib/docker/volumes" + ports: + - "9001:9001" + restart: "unless-stopped" diff --git a/portainer/docker-compose.yaml b/portainer/docker-compose.yaml new file mode 100644 index 0000000..597b1cf --- /dev/null +++ b/portainer/docker-compose.yaml @@ -0,0 +1,13 @@ +version: "3.8" +services: + portainer: + image: "portainer/portainer-ee:lts" + container_name: "portainer" + volumes: + - "./data:/data" + - "/etc/localtime:/etc/localtime:ro" + - "/var/run/docker.sock:/var/run/docker.sock" + ports: + - "8000:8000" + - "9443:9443" + restart: "unless-stopped" diff --git a/qbittorrent/docker-compose.yaml b/qbittorrent/docker-compose.yaml new file mode 100644 index 0000000..38de403 --- /dev/null +++ b/qbittorrent/docker-compose.yaml @@ -0,0 +1,18 @@ +version: "3.8" +services: + qbittorrent: + image: "linuxserver/qbittorrent:latest" + container_name: "qbittorrent" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + - "WEBUI_PORT=${PORT}" + volumes: + - "${CONFIG_PATH}:/config" + - "${DOWNLOADS}:/downloads" + ports: + - "${PORT}:${PORT}" + - "6881:6881" + - "6881:6881/udp" + restart: "unless-stopped" diff --git a/radicale/docker-compose.yaml b/radicale/docker-compose.yaml new file mode 100644 index 0000000..7187421 --- /dev/null +++ b/radicale/docker-compose.yaml @@ -0,0 +1,27 @@ +version: "3.8" +services: + radicale: + image: "tomsquest/docker-radicale:3.5.4.0" + container_name: "radicale" + init: "true" + read_only: "true" + security_opt: + - "no-new-privileges:true" + cap_drop: + - "ALL" + cap_add: + - "SETUID" + - "SETGID" + - "CHOWN" + - "KILL" + volumes: + - "${CONFIG_PATH}:/config" + - "${DATA_PATH}:/data" + - "${USERS_PATH}:/users:ro" + ports: + - "${PORT}:5232" + restart: "unless-stopped" + healthcheck: + test: curl -f http://127.0.0.1:5232 || exit 1 + interval: 30s + retries: 3 diff --git a/stirling-pdf/docker-compose.yaml b/stirling-pdf/docker-compose.yaml new file mode 100644 index 0000000..c227715 --- /dev/null +++ b/stirling-pdf/docker-compose.yaml @@ -0,0 +1,18 @@ +version: "3.8" +services: + stirling-pdf: + image: "frooodle/s-pdf:0.46.2-fat" + container_name: "stirling-pdf" + environment: + - "DOCKER_ENABLE_SECURITY=${DOCKER_ENABLE_SECURITY}" + - "SECURITY_ENABLELOGIN=${SECURITY_ENABLELOGIN}" + - "LANGS=${LANGS}" + ports: + - "${PORT}:8080" + volumes: + - "${TRAINIG_DATA}:/usr/share/tessdata" #Required for extra OCR languages + - "${CONFIG_PATH}:/configs" + - "${CUSTOM_FILES}:/customFiles/" + - "${LOGS}:/logs/" + - "${PIPELINE}:/pipeline/" + restart: "unless-stopped" diff --git a/uptime-kuma/docker-compose.yaml b/uptime-kuma/docker-compose.yaml new file mode 100644 index 0000000..3d5511a --- /dev/null +++ b/uptime-kuma/docker-compose.yaml @@ -0,0 +1,10 @@ +version: "3.8" +services: + uptime-kuma: + image: "louislam/uptime-kuma:1.23.16" + container_name: "uptime-kuma" + volumes: + - "${CONFIG_PATH}:/app/data" + ports: + - "${PORT}:3001" + restart: "unless-stopped" diff --git a/vaultwarden/docker-compose.yaml b/vaultwarden/docker-compose.yaml new file mode 100644 index 0000000..a45bb9d --- /dev/null +++ b/vaultwarden/docker-compose.yaml @@ -0,0 +1,24 @@ +version: "3.8" +services: + vaultwarden: + image: "vaultwarden/server:1.34.1" + container_name: "vaultwarden" + environment: + - "PUID=${PUID}" + - "PGID=${PGID}" + - "TZ=${TZ}" + - "WEBSOCKET_ENABLED=${WEBSOCKET_ENABLED}" +# - "SIGNUPS_ALLOWED=${SIGNUPS_ALLOWED}" +# - "ADMIN_TOKEN=${ADMIN_TOKEN}" +# - "SMTP_HOST=${SMTP_HOST}" +# - "SMTP_FROM=${SMTP_FROM}" +# - "SMTP_PORT=${SMTP_PORT}" +# - "SMTP_SECURITY=starttls" +# - "SMTP_USERNAME=${SMTP_USERNAME}" +# - "SMTP_PASSWORD=${SMTP_PASSWORD}" + - "LOG_FILE=/data/vaultwarden.log" + volumes: + - "${DATA_PATH}:/data/" + ports: + - "${PORT}:80" + restart: "unless-stopped" diff --git a/wallos/docker-compose.yaml b/wallos/docker-compose.yaml new file mode 100644 index 0000000..e955cca --- /dev/null +++ b/wallos/docker-compose.yaml @@ -0,0 +1,13 @@ +version: "3.8" +services: + wallos: + image: "bellamy/wallos:3.1.1" + container_name: "wallos" + environment: + - "TZ=${TZ}" + volumes: + - "${DB_PATH}:/var/www/html/db" + - "${LOGOS_PATH}:/var/www/html/images/uploads/logos" + ports: + - "${PORT}:80/tcp" + restart: "unless-stopped"