Add Files
This commit is contained in:
14
adguardhome-sync/docker-compose.yaml
Normal file
14
adguardhome-sync/docker-compose.yaml
Normal file
@@ -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"
|
26
adguardhome/docker-compose-sync.yaml
Normal file
26
adguardhome/docker-compose-sync.yaml
Normal file
@@ -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"
|
14
adguardhome/docker-compose.yaml
Normal file
14
adguardhome/docker-compose.yaml
Normal file
@@ -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"
|
20
airsonic-advanced/docker-compose.yaml
Normal file
20
airsonic-advanced/docker-compose.yaml
Normal file
@@ -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"
|
12
authelia/docker-compose.yaml
Normal file
12
authelia/docker-compose.yaml
Normal file
@@ -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"
|
38
bookstack/docker-compose.yaml
Normal file
38
bookstack/docker-compose.yaml
Normal file
@@ -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"
|
21
caddy-reverse-proxy/docker-compose-dns.yaml
Normal file
21
caddy-reverse-proxy/docker-compose-dns.yaml
Normal file
@@ -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"
|
17
caddy-reverse-proxy/docker-compose.yaml
Normal file
17
caddy-reverse-proxy/docker-compose.yaml
Normal file
@@ -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"
|
24
changedetection/docker-compose.yaml
Normal file
24
changedetection/docker-compose.yaml
Normal file
@@ -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"
|
20
cloudflare-ddns/docker-compose.yaml
Normal file
20
cloudflare-ddns/docker-compose.yaml
Normal file
@@ -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
|
15
dockerproxy/docker-compose.yaml
Normal file
15
dockerproxy/docker-compose.yaml
Normal file
@@ -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"
|
19
duplicati/docker-compose.yaml
Normal file
19
duplicati/docker-compose.yaml
Normal file
@@ -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"
|
6
duplicati/readme.md
Normal file
6
duplicati/readme.md
Normal file
@@ -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
|
10
duplicati/start-containers.sh
Normal file
10
duplicati/start-containers.sh
Normal file
@@ -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
|
10
duplicati/stop-containers.sh
Normal file
10
duplicati/stop-containers.sh
Normal file
@@ -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
|
28
ferdium-server/docker-compose.yaml
Normal file
28
ferdium-server/docker-compose.yaml
Normal file
@@ -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"
|
39
forgejo/docker-compose.yaml
Normal file
39
forgejo/docker-compose.yaml
Normal file
@@ -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"
|
15
glances/docker-compose-cosmoem.yaml
Normal file
15
glances/docker-compose-cosmoem.yaml
Normal file
@@ -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"
|
15
glances/docker-compose-rayquaza.yaml
Normal file
15
glances/docker-compose-rayquaza.yaml
Normal file
@@ -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"
|
15
glances/docker-compose.yaml
Normal file
15
glances/docker-compose.yaml
Normal file
@@ -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"
|
13
gotify/docker-compose-arm64.yaml
Normal file
13
gotify/docker-compose-arm64.yaml
Normal file
@@ -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"
|
30
healthchecks/docker-compose.yaml
Normal file
30
healthchecks/docker-compose.yaml
Normal file
@@ -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"
|
13
homeassistant/docker-compose-ls.yaml
Normal file
13
homeassistant/docker-compose-ls.yaml
Normal file
@@ -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"
|
11
homeassistant/docker-compose.yaml
Normal file
11
homeassistant/docker-compose.yaml
Normal file
@@ -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"
|
29
homepage/docker-compose.yaml
Normal file
29
homepage/docker-compose.yaml
Normal file
@@ -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"
|
64
immich/docker-compose.yaml
Normal file
64
immich/docker-compose.yaml
Normal file
@@ -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
|
32
joplin/docker-compose.yaml
Normal file
32
joplin/docker-compose.yaml
Normal file
@@ -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"
|
15
komga/docker-compose.yaml
Normal file
15
komga/docker-compose.yaml
Normal file
@@ -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"
|
20
letsencrypt-cloudflare/docker-compose-dry.yaml
Normal file
20
letsencrypt-cloudflare/docker-compose-dry.yaml
Normal file
@@ -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"
|
20
letsencrypt-cloudflare/docker-compose-issue.yaml
Normal file
20
letsencrypt-cloudflare/docker-compose-issue.yaml
Normal file
@@ -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"
|
20
letsencrypt-cloudflare/docker-compose-renew.yaml
Normal file
20
letsencrypt-cloudflare/docker-compose-renew.yaml
Normal file
@@ -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"
|
10
mailrise/docker-compose.yaml
Normal file
10
mailrise/docker-compose.yaml
Normal file
@@ -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"
|
17
minio/docker-compose.yaml
Normal file
17
minio/docker-compose.yaml
Normal file
@@ -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"
|
46
nextcloud/docker-compose-ls.yaml
Normal file
46
nextcloud/docker-compose-ls.yaml
Normal file
@@ -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"
|
74
nextcloud/docker-compose.yaml
Normal file
74
nextcloud/docker-compose.yaml
Normal file
@@ -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"
|
13
nginx-proxy-manager/docker-compose.yaml
Normal file
13
nginx-proxy-manager/docker-compose.yaml
Normal file
@@ -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"
|
15
nginx-reverse-proxy/docker-compose.yaml
Normal file
15
nginx-reverse-proxy/docker-compose.yaml
Normal file
@@ -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"
|
38
paperless-ngx/docker-compose.yaml
Normal file
38
paperless-ngx/docker-compose.yaml
Normal file
@@ -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"
|
33
picsur/docker-compose.yaml
Normal file
33
picsur/docker-compose.yaml
Normal file
@@ -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"
|
17
pihole-unbound/docker-compose.yaml
Normal file
17
pihole-unbound/docker-compose.yaml
Normal file
@@ -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"
|
16
pihole/docker-compose.yaml
Normal file
16
pihole/docker-compose.yaml
Normal file
@@ -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"
|
11
portainer-agent/docker-compose.yaml
Normal file
11
portainer-agent/docker-compose.yaml
Normal file
@@ -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"
|
13
portainer/docker-compose.yaml
Normal file
13
portainer/docker-compose.yaml
Normal file
@@ -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"
|
18
qbittorrent/docker-compose.yaml
Normal file
18
qbittorrent/docker-compose.yaml
Normal file
@@ -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"
|
27
radicale/docker-compose.yaml
Normal file
27
radicale/docker-compose.yaml
Normal file
@@ -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
|
18
stirling-pdf/docker-compose.yaml
Normal file
18
stirling-pdf/docker-compose.yaml
Normal file
@@ -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"
|
10
uptime-kuma/docker-compose.yaml
Normal file
10
uptime-kuma/docker-compose.yaml
Normal file
@@ -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"
|
24
vaultwarden/docker-compose.yaml
Normal file
24
vaultwarden/docker-compose.yaml
Normal file
@@ -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"
|
13
wallos/docker-compose.yaml
Normal file
13
wallos/docker-compose.yaml
Normal file
@@ -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"
|
Reference in New Issue
Block a user