mirror of
https://gitlab.sectorq.eu/home/docker-compose.git
synced 2026-05-22 13:36:20 +02:00
Compare commits
93 Commits
2aa18f56f4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 6e02b093e5 | |||
| d58e0252b0 | |||
| 59b29b237b | |||
| 4b4aa165ab | |||
| 619da14708 | |||
| 5db50c4471 | |||
| 38796fd160 | |||
| 5f376927e9 | |||
| e8be1b5329 | |||
| 3c7126c903 | |||
| fd7efc3c5f | |||
| 3f219b58b1 | |||
| 3b3135de3b | |||
| 82d2a80797 | |||
| 23e343f8cc | |||
| 1a1c20e67f | |||
| bd2b504068 | |||
| 70b7f3b484 | |||
| 999fc4a8bc | |||
| eb22dd0d19 | |||
| a637b633f6 | |||
| 38528b7af6 | |||
| 63c695c3d8 | |||
| 23779483c1 | |||
| 636c736ae8 | |||
| e88114dc95 | |||
| 80231e2146 | |||
| e427490161 | |||
| 6166acc696 | |||
| 0711a2f598 | |||
| 7cd2eaa2d4 | |||
| 6af62c42d9 | |||
| 9322a6f66a | |||
| 2b8847ec1b | |||
| 4e67fc57d0 | |||
| dfb5ccb941 | |||
| f35a8beae8 | |||
| f88f73dfc3 | |||
| 32ad6533ac | |||
| 82b1374011 | |||
| 79edd40f99 | |||
| 7e418e919d | |||
| 6fa136fd71 | |||
| db579e8541 | |||
| 07f40c5f2a | |||
| 570d0c3af1 | |||
| 512248de89 | |||
| 22c97ed9aa | |||
| 70b6005ce5 | |||
| f9a3b34c42 | |||
| 961e3cd2e3 | |||
| fd2c1a2d3c | |||
| bdbefe4337 | |||
| 5192bf2ede | |||
| 07cfb3e148 | |||
| a59f01ff72 | |||
| 9623b115cd | |||
| 1b3977f65d | |||
| 4481d566af | |||
| e063d52953 | |||
| 1d9c174c7f | |||
| 9d33275ee7 | |||
| d92e571a65 | |||
| ccf3bbf577 | |||
| 9b57d8892d | |||
| 6dfd9666d4 | |||
| af6c689310 | |||
| abf7018ea1 | |||
| 1ddb748282 | |||
| 20c8f5d395 | |||
| 271fac90e6 | |||
| e5d181b621 | |||
| c9511cbe72 | |||
| a6e44cf924 | |||
| 023e8708b8 | |||
| 5fedf61d70 | |||
| 243e8ed07d | |||
| 22931d450b | |||
| ff081572dd | |||
| a845bb4aac | |||
| 313e470720 | |||
| 9e8ff680e6 | |||
| e63acb13d6 | |||
| 5c06ec4c85 | |||
| de6edff0a1 | |||
| a16aaecc1a | |||
| dd59cb2d40 | |||
| 8546627660 | |||
| b50e1abbbf | |||
| c07b30c83f | |||
| d087b48c19 | |||
| 6da45e797b | |||
| 463f8a3284 |
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
APPNAME=wordpress
|
||||||
|
DOCKER_REGISTRY=r.sectorq.eu/library/
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: ${DOCKER_REGISTRY:-}api-server:latest
|
||||||
|
secrets:
|
||||||
|
- vault_token
|
||||||
|
environment:
|
||||||
|
VAULT_TOKEN: /run/secrets/vault_token
|
||||||
|
API_TOKEN: mysecrettoken
|
||||||
|
ports:
|
||||||
|
- target: 8000
|
||||||
|
published: 8002
|
||||||
|
protocol: tcp
|
||||||
|
mode: ingress
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- node.role == manager
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
vault_token:
|
||||||
|
external: true
|
||||||
|
|
||||||
Executable
@@ -3,7 +3,7 @@ PG_USER=authentik
|
|||||||
PG_DB=authentik
|
PG_DB=authentik
|
||||||
AUTHENTIK_SECRET_KEY=ZKkVCxj8kKj5ZklvzxKG2IgYQOftDoLPRjc57yomr1qzbKEQVZ
|
AUTHENTIK_SECRET_KEY=ZKkVCxj8kKj5ZklvzxKG2IgYQOftDoLPRjc57yomr1qzbKEQVZ
|
||||||
AUTHENTIK_ERROR_REPORTING__ENABLED=true
|
AUTHENTIK_ERROR_REPORTING__ENABLED=true
|
||||||
AUTHENTIK_TAG=2025.10.2
|
AUTHENTIK_TAG=2026.2.1
|
||||||
POSTGRES_PASSWORD=499NU6Ze5HcJK4IwSShO8oDbj3j0i0CalyEzfgEp
|
POSTGRES_PASSWORD=499NU6Ze5HcJK4IwSShO8oDbj3j0i0CalyEzfgEp
|
||||||
POSTGRES_USER=authentik
|
POSTGRES_USER=authentik
|
||||||
POSTGRES_DB=authentik
|
POSTGRES_DB=authentik
|
||||||
|
|||||||
@@ -30,6 +30,11 @@ services:
|
|||||||
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
|
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
|
||||||
POSTGRES_USER: ${PG_USER:-authentik}
|
POSTGRES_USER: ${PG_USER:-authentik}
|
||||||
TZ: Europe/Bratislava
|
TZ: Europe/Bratislava
|
||||||
|
ports:
|
||||||
|
- target: 5432
|
||||||
|
published: 5433
|
||||||
|
protocol: tcp
|
||||||
|
mode: ingress
|
||||||
healthcheck:
|
healthcheck:
|
||||||
interval: 30s
|
interval: 30s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ PG_USER=authentik
|
|||||||
PG_DB=authentik
|
PG_DB=authentik
|
||||||
AUTHENTIK_SECRET_KEY=ZKkVCxj8kKj5ZklvzxKG2IgYQOftDoLPRjc57yomr1qzbKEQVZ
|
AUTHENTIK_SECRET_KEY=ZKkVCxj8kKj5ZklvzxKG2IgYQOftDoLPRjc57yomr1qzbKEQVZ
|
||||||
AUTHENTIK_ERROR_REPORTING__ENABLED=true
|
AUTHENTIK_ERROR_REPORTING__ENABLED=true
|
||||||
AUTHENTIK_TAG=2025.10.2
|
AUTHENTIK_TAG=2026.2.1
|
||||||
POSTGRES_PASSWORD=499NU6Ze5HcJK4IwSShO8oDbj3j0i0CalyEzfgEp
|
POSTGRES_PASSWORD=499NU6Ze5HcJK4IwSShO8oDbj3j0i0CalyEzfgEp
|
||||||
POSTGRES_USER=authentik
|
POSTGRES_USER=authentik
|
||||||
POSTGRES_DB=authentik
|
POSTGRES_DB=authentik
|
||||||
|
|||||||
@@ -1,3 +1,2 @@
|
|||||||
APPNAME=home-assistant
|
APPNAME=home-assistant
|
||||||
DOCKER_REGISTRY=r.sectorq.eu/library/
|
|
||||||
RESTART=always
|
RESTART=always
|
||||||
@@ -34,6 +34,7 @@ services:
|
|||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
dns:
|
dns:
|
||||||
- 192.168.77.101
|
- 192.168.77.101
|
||||||
|
- 192.168.77.238
|
||||||
# ollama:
|
# ollama:
|
||||||
# volumes:
|
# volumes:
|
||||||
# - /share/docker_data/ollama:/root/.ollama
|
# - /share/docker_data/ollama:/root/.ollama
|
||||||
|
|||||||
@@ -3,8 +3,9 @@ services:
|
|||||||
dns:
|
dns:
|
||||||
- 192.168.77.1
|
- 192.168.77.1
|
||||||
- 192.168.77.101
|
- 192.168.77.101
|
||||||
|
- 192.168.77.238
|
||||||
environment:
|
environment:
|
||||||
HOMEPAGE_ALLOWED_HOSTS: sectorq.eu,active.home.lan:3003,m-server.home.lan:3003,rpi5.home.lan:3003,nas.home.lan:3003,192.168.77.238:3003,rack.home.lan:3003,192.168.80.222:3003
|
HOMEPAGE_ALLOWED_HOSTS: "*"
|
||||||
TZ: Europe/Bratislava
|
TZ: Europe/Bratislava
|
||||||
image: ${DOCKER_REGISTRY:-}ghcr.io/gethomepage/homepage:latest
|
image: ${DOCKER_REGISTRY:-}ghcr.io/gethomepage/homepage:latest
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -1,2 +1 @@
|
|||||||
APPNAME=mosquitto
|
APPNAME=mosquitto
|
||||||
DOCKER_REGISTRY=r.sectorq.eu/library/
|
|
||||||
@@ -4,7 +4,7 @@ services:
|
|||||||
image: ${DOCKER_REGISTRY:-}n8nio/n8n:latest
|
image: ${DOCKER_REGISTRY:-}n8nio/n8n:latest
|
||||||
ports:
|
ports:
|
||||||
- target: 5678
|
- target: 5678
|
||||||
published: 5679
|
published: 5678
|
||||||
protocol: tcp
|
protocol: tcp
|
||||||
mode: ingress
|
mode: ingress
|
||||||
environment:
|
environment:
|
||||||
@@ -15,13 +15,18 @@ services:
|
|||||||
N8N_BASIC_AUTH_USER: sth
|
N8N_BASIC_AUTH_USER: sth
|
||||||
N8N_BASIC_AUTH_PASSWORD: pwd
|
N8N_BASIC_AUTH_PASSWORD: pwd
|
||||||
N8N_RUNNERS_ENABLED: 'true'
|
N8N_RUNNERS_ENABLED: 'true'
|
||||||
N8N_RUNNERS_MODE: internal
|
N8N_RUNNERS_MODE: external
|
||||||
|
N8N_RUNNERS_BROKER_LISTEN_ADDRESS: 0.0.0.0
|
||||||
|
N8N_RUNNERS_AUTH_TOKEN: l4c1j4yd33Du5lo
|
||||||
|
N8N_NATIVE_PYTHON_RUNNER: 'true'
|
||||||
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: 'true'
|
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: 'true'
|
||||||
N8N_SECURE_COOKIE: 'false'
|
N8N_SECURE_COOKIE: 'false'
|
||||||
|
N8N_GIT_NODE_ALLOW_LOCAL: 'true'
|
||||||
WEBHOOK_URL: https://n8n.sectorq.eu
|
WEBHOOK_URL: https://n8n.sectorq.eu
|
||||||
NODES_EXCLUDE: "[]"
|
NODES_EXCLUDE: "[]"
|
||||||
volumes:
|
volumes:
|
||||||
- data:/home/node/.n8n
|
- data:/home/node/.n8n
|
||||||
|
- files:/home/node/.n8n-files/
|
||||||
stop_grace_period: 60s
|
stop_grace_period: 60s
|
||||||
deploy:
|
deploy:
|
||||||
labels:
|
labels:
|
||||||
@@ -38,6 +43,16 @@ services:
|
|||||||
placement:
|
placement:
|
||||||
constraints:
|
constraints:
|
||||||
- node.role == manager
|
- node.role == manager
|
||||||
|
task-runners:
|
||||||
|
image: n8nio/runners:latest
|
||||||
|
environment:
|
||||||
|
N8N_RUNNERS_TASK_BROKER_URI: http://n8n-main:5679
|
||||||
|
N8N_RUNNERS_AUTH_TOKEN: l4c1j4yd33Du5lo
|
||||||
|
# etc.
|
||||||
|
depends_on:
|
||||||
|
- n8n
|
||||||
volumes:
|
volumes:
|
||||||
data:
|
data:
|
||||||
driver: local
|
driver: local
|
||||||
|
files:
|
||||||
|
driver: local
|
||||||
@@ -4,7 +4,7 @@ networks:
|
|||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
dns:
|
dns:
|
||||||
- 192.168.78.254
|
- 192.168.77.1
|
||||||
healthcheck:
|
healthcheck:
|
||||||
interval: 10s
|
interval: 10s
|
||||||
test:
|
test:
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ services:
|
|||||||
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
|
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
|
||||||
POSTGRES_USER: ${PG_USER:-authentik}
|
POSTGRES_USER: ${PG_USER:-authentik}
|
||||||
TZ: Europe/Bratislava
|
TZ: Europe/Bratislava
|
||||||
|
ports:
|
||||||
|
- 5433:5432
|
||||||
healthcheck:
|
healthcheck:
|
||||||
interval: 30s
|
interval: 30s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ PG_USER=authentik
|
|||||||
PG_DB=authentik
|
PG_DB=authentik
|
||||||
AUTHENTIK_SECRET_KEY=ZKkVCxj8kKj5ZklvzxKG2IgYQOftDoLPRjc57yomr1qzbKEQVZ
|
AUTHENTIK_SECRET_KEY=ZKkVCxj8kKj5ZklvzxKG2IgYQOftDoLPRjc57yomr1qzbKEQVZ
|
||||||
AUTHENTIK_ERROR_REPORTING__ENABLED=true
|
AUTHENTIK_ERROR_REPORTING__ENABLED=true
|
||||||
AUTHENTIK_TAG=2025.8.4
|
AUTHENTIK_TAG=2025.10.4
|
||||||
POSTGRES_PASSWORD=499NU6Ze5HcJK4IwSShO8oDbj3j0i0CalyEzfgEp
|
POSTGRES_PASSWORD=499NU6Ze5HcJK4IwSShO8oDbj3j0i0CalyEzfgEp
|
||||||
POSTGRES_USER=authentik
|
POSTGRES_USER=authentik
|
||||||
POSTGRES_DB=authentik
|
POSTGRES_DB=authentik
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
services:
|
||||||
|
databasus:
|
||||||
|
container_name: databasus
|
||||||
|
image: databasus/databasus:latest
|
||||||
|
ports:
|
||||||
|
- "4005:4005"
|
||||||
|
volumes:
|
||||||
|
- data:/databasus-data
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
data: null
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
services:
|
||||||
|
vault:
|
||||||
|
image: hashicorp/vault:latest
|
||||||
|
command: server -config=/vault/config/vault.hcl
|
||||||
|
volumes:
|
||||||
|
- data:/vault/data
|
||||||
|
configs:
|
||||||
|
- source: vault_hcl
|
||||||
|
target: /vault/config/vault.hcl
|
||||||
|
ports:
|
||||||
|
- "8200:8200"
|
||||||
|
environment:
|
||||||
|
VAULT_LOCAL_CONFIG: |
|
||||||
|
{
|
||||||
|
"backend": {
|
||||||
|
"file": {
|
||||||
|
"path": "/vault/file"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listener": {
|
||||||
|
"tcp": {
|
||||||
|
"address": "0.0.0.0:8200",
|
||||||
|
"tls_disable": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disable_mlock": true
|
||||||
|
}
|
||||||
|
VAULT_API_ADDR: "http://192.168.77.101:8200"
|
||||||
|
cap_add:
|
||||||
|
- IPC_LOCK
|
||||||
|
networks:
|
||||||
|
- vault-net
|
||||||
|
deploy:
|
||||||
|
mode: replicated
|
||||||
|
replicas: 1
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- node.role == manager
|
||||||
|
|
||||||
|
configs:
|
||||||
|
vault_hcl:
|
||||||
|
external: true
|
||||||
|
volumes:
|
||||||
|
data:
|
||||||
|
networks:
|
||||||
|
vault-net:
|
||||||
|
driver: overlay
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
services:
|
||||||
|
vault:
|
||||||
|
image: hashicorp/vault:latest
|
||||||
|
command: server -config=/vault/config/vault.hcl
|
||||||
|
volumes:
|
||||||
|
- data:/vault/data
|
||||||
|
configs:
|
||||||
|
- source: vault_hcl
|
||||||
|
target: /vault/config/vault.hcl
|
||||||
|
ports:
|
||||||
|
- "8200:8200"
|
||||||
|
environment:
|
||||||
|
VAULT_LOCAL_CONFIG: |
|
||||||
|
{
|
||||||
|
"backend": {
|
||||||
|
"file": {
|
||||||
|
"path": "/vault/file"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listener": {
|
||||||
|
"tcp": {
|
||||||
|
"address": "0.0.0.0:8200",
|
||||||
|
"tls_disable": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disable_mlock": true
|
||||||
|
}
|
||||||
|
VAULT_API_ADDR: "http://192.168.77.101:8200"
|
||||||
|
cap_add:
|
||||||
|
- IPC_LOCK
|
||||||
|
networks:
|
||||||
|
- vault-net
|
||||||
|
deploy:
|
||||||
|
mode: replicated
|
||||||
|
replicas: 1
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- node.role == manager
|
||||||
|
|
||||||
|
configs:
|
||||||
|
vault_hcl:
|
||||||
|
external: true
|
||||||
|
volumes:
|
||||||
|
data:
|
||||||
|
networks:
|
||||||
|
vault-net:
|
||||||
|
driver: overlay
|
||||||
@@ -1,4 +1,2 @@
|
|||||||
APPNAME=home-assistant
|
APPNAME=home-assistant
|
||||||
DOCKER_REGISTRY=r.sectorq.eu/library/
|
|
||||||
RESTART=always
|
RESTART=always
|
||||||
HA_VERSION=2025.12.4
|
|
||||||
@@ -38,7 +38,6 @@ services:
|
|||||||
server:
|
server:
|
||||||
cors:
|
cors:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
image: ${DOCKER_REGISTRY:-}kestra/kestra:${KESTRA_VERSION:-latest}
|
image: ${DOCKER_REGISTRY:-}kestra/kestra:${KESTRA_VERSION:-latest}
|
||||||
labels:
|
labels:
|
||||||
com.centurylinklabs.watchtower.enable: 'true'
|
com.centurylinklabs.watchtower.enable: 'true'
|
||||||
@@ -61,7 +60,7 @@ services:
|
|||||||
user: root
|
user: root
|
||||||
volumes:
|
volumes:
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
- /share/docker_data/kestra/kestra-data:/app/storage
|
- app:/app/storage
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- /tmp/kestra-wd:/tmp/kestra-wd
|
- /tmp/kestra-wd:/tmp/kestra-wd
|
||||||
postgres:
|
postgres:
|
||||||
@@ -81,9 +80,9 @@ services:
|
|||||||
wud.watch: false
|
wud.watch: false
|
||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/kestra/postgres-data:/var/lib/postgresql/data
|
- db:/var/lib/postgresql/data
|
||||||
volumes:
|
volumes:
|
||||||
kestra-data:
|
app:
|
||||||
driver: local
|
driver: local
|
||||||
postgres-data:
|
db:
|
||||||
driver: local
|
driver: local
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
APPNAME=kestra
|
APPNAME=kestra
|
||||||
|
KESTRA_VERSION=latest
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
services:
|
||||||
|
linkding:
|
||||||
|
container_name: "${LD_CONTAINER_NAME:-linkding}"
|
||||||
|
image: sissbruecker/linkding:latest
|
||||||
|
ports:
|
||||||
|
- "${LD_HOST_PORT:-9090}:9090"
|
||||||
|
volumes:
|
||||||
|
- "data:/etc/linkding/data"
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
data:
|
||||||
+473
@@ -0,0 +1,473 @@
|
|||||||
|
NEXTAUTH_URL=https://linkwarden.sectorq.eu/api/v1/auth
|
||||||
|
NEXTAUTH_SECRET=l4c1j4yd33Du5lo
|
||||||
|
DOCKER_REGISTRY=r.sectorq.eu/library/
|
||||||
|
# Manual installation database settings
|
||||||
|
# Example: DATABASE_URL=postgresql://user:password@localhost:5432/linkwarden
|
||||||
|
DATABASE_URL=
|
||||||
|
|
||||||
|
# Docker installation database settings
|
||||||
|
POSTGRES_PASSWORD=postgress
|
||||||
|
|
||||||
|
# Additional Optional Settings
|
||||||
|
PAGINATION_TAKE_COUNT=
|
||||||
|
STORAGE_FOLDER=
|
||||||
|
AUTOSCROLL_TIMEOUT=
|
||||||
|
NEXT_PUBLIC_DISABLE_REGISTRATION=
|
||||||
|
NEXT_PUBLIC_CREDENTIALS_ENABLED=
|
||||||
|
DISABLE_NEW_SSO_USERS=
|
||||||
|
MAX_LINKS_PER_USER=
|
||||||
|
ARCHIVE_TAKE_COUNT=
|
||||||
|
BROWSER_TIMEOUT=
|
||||||
|
IGNORE_UNAUTHORIZED_CA=
|
||||||
|
IGNORE_HTTPS_ERRORS=
|
||||||
|
IGNORE_URL_SIZE_LIMIT=
|
||||||
|
NEXT_PUBLIC_DEMO=
|
||||||
|
NEXT_PUBLIC_DEMO_USERNAME=
|
||||||
|
NEXT_PUBLIC_DEMO_PASSWORD=
|
||||||
|
NEXT_PUBLIC_ADMIN=
|
||||||
|
NEXT_PUBLIC_MAX_FILE_BUFFER=
|
||||||
|
PDF_MAX_BUFFER=
|
||||||
|
SCREENSHOT_MAX_BUFFER=
|
||||||
|
READABILITY_MAX_BUFFER=
|
||||||
|
PREVIEW_MAX_BUFFER=
|
||||||
|
MONOLITH_MAX_BUFFER=
|
||||||
|
MONOLITH_CUSTOM_OPTIONS=
|
||||||
|
IMPORT_LIMIT=
|
||||||
|
PLAYWRIGHT_LAUNCH_OPTIONS_EXECUTABLE_PATH=
|
||||||
|
PLAYWRIGHT_WS_URL=
|
||||||
|
MAX_WORKERS=
|
||||||
|
DISABLE_PRESERVATION=
|
||||||
|
NEXT_PUBLIC_RSS_POLLING_INTERVAL_MINUTES=
|
||||||
|
RSS_SUBSCRIPTION_LIMIT_PER_USER=
|
||||||
|
TEXT_CONTENT_LIMIT=
|
||||||
|
SEARCH_FILTER_LIMIT=
|
||||||
|
INDEX_TAKE_COUNT=
|
||||||
|
MEILI_TIMEOUT=
|
||||||
|
|
||||||
|
# AI Settings
|
||||||
|
NEXT_PUBLIC_OLLAMA_ENDPOINT_URL=
|
||||||
|
OLLAMA_MODEL=
|
||||||
|
|
||||||
|
# https://ai-sdk.dev/providers/openai-compatible-providers
|
||||||
|
OPENAI_API_KEY=
|
||||||
|
OPENAI_MODEL=
|
||||||
|
# Optional: Set a custom OpenAI base URL and name (for third-party providers)
|
||||||
|
CUSTOM_OPENAI_BASE_URL=
|
||||||
|
CUSTOM_OPENAI_NAME=
|
||||||
|
|
||||||
|
# https://sdk.vercel.ai/providers/ai-sdk-providers/azure
|
||||||
|
AZURE_API_KEY=
|
||||||
|
AZURE_RESOURCE_NAME=
|
||||||
|
AZURE_MODEL=
|
||||||
|
|
||||||
|
# https://sdk.vercel.ai/providers/ai-sdk-providers/anthropic
|
||||||
|
ANTHROPIC_API_KEY=
|
||||||
|
ANTHROPIC_MODEL=
|
||||||
|
|
||||||
|
# https://github.com/OpenRouterTeam/ai-sdk-provider
|
||||||
|
OPENROUTER_API_KEY=
|
||||||
|
OPENROUTER_MODEL=
|
||||||
|
|
||||||
|
# https://ai-sdk.dev/providers/ai-sdk-providers/perplexity
|
||||||
|
PERPLEXITY_API_KEY=
|
||||||
|
PERPLEXITY_MODEL=
|
||||||
|
|
||||||
|
# MeiliSearch Settings
|
||||||
|
MEILI_HOST=
|
||||||
|
MEILI_MASTER_KEY=
|
||||||
|
|
||||||
|
# AWS S3 Settings
|
||||||
|
SPACES_KEY=
|
||||||
|
SPACES_SECRET=
|
||||||
|
SPACES_ENDPOINT=
|
||||||
|
SPACES_BUCKET_NAME=
|
||||||
|
SPACES_REGION=
|
||||||
|
SPACES_FORCE_PATH_STYLE=
|
||||||
|
|
||||||
|
# SMTP Settings
|
||||||
|
NEXT_PUBLIC_EMAIL_PROVIDER=
|
||||||
|
EMAIL_FROM=
|
||||||
|
EMAIL_SERVER=
|
||||||
|
BASE_URL=
|
||||||
|
|
||||||
|
# Proxy settings
|
||||||
|
PROXY=
|
||||||
|
PROXY_USERNAME=
|
||||||
|
PROXY_PASSWORD=
|
||||||
|
PROXY_BYPASS=
|
||||||
|
|
||||||
|
# PDF archive settings
|
||||||
|
PDF_MARGIN_TOP=
|
||||||
|
PDF_MARGIN_BOTTOM=
|
||||||
|
|
||||||
|
#################
|
||||||
|
# SSO Providers #
|
||||||
|
#################
|
||||||
|
|
||||||
|
# 42 School
|
||||||
|
NEXT_PUBLIC_FORTYTWO_ENABLED=
|
||||||
|
FORTYTWO_CUSTOM_NAME=
|
||||||
|
FORTYTWO_CLIENT_ID=
|
||||||
|
FORTYTWO_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Apple
|
||||||
|
NEXT_PUBLIC_APPLE_ENABLED=
|
||||||
|
APPLE_CUSTOM_NAME=
|
||||||
|
APPLE_ID=
|
||||||
|
APPLE_SECRET=
|
||||||
|
|
||||||
|
# Atlassian
|
||||||
|
NEXT_PUBLIC_ATLASSIAN_ENABLED=
|
||||||
|
ATLASSIAN_CUSTOM_NAME=
|
||||||
|
ATLASSIAN_CLIENT_ID=
|
||||||
|
ATLASSIAN_CLIENT_SECRET=
|
||||||
|
ATLASSIAN_SCOPE=
|
||||||
|
|
||||||
|
# Auth0
|
||||||
|
NEXT_PUBLIC_AUTH0_ENABLED=
|
||||||
|
AUTH0_CUSTOM_NAME=
|
||||||
|
AUTH0_ISSUER=
|
||||||
|
AUTH0_CLIENT_SECRET=
|
||||||
|
AUTH0_CLIENT_ID=
|
||||||
|
|
||||||
|
# Authelia
|
||||||
|
NEXT_PUBLIC_AUTHELIA_ENABLED=
|
||||||
|
AUTHELIA_CLIENT_ID=
|
||||||
|
AUTHELIA_CLIENT_SECRET=
|
||||||
|
AUTHELIA_WELLKNOWN_URL=
|
||||||
|
|
||||||
|
# Authentik
|
||||||
|
NEXT_PUBLIC_AUTHENTIK_ENABLED=true
|
||||||
|
AUTHENTIK_CUSTOM_NAME=authentik
|
||||||
|
AUTHENTIK_ISSUER=https://auth.sectorq.eu/application/o/linkwarden
|
||||||
|
AUTHENTIK_CLIENT_ID=WCCDVYuXdj5LJeBflMi9ogSqsRAgugRht58gpFO0
|
||||||
|
AUTHENTIK_CLIENT_SECRET=FEmcxaOUREXzQSjq2rvtf7lNlgjg9vMBBSt4sWCGeZiirrmSrvZnX5O5UPfYTVEt4pwGugiiJG58yUVXWmRhFVPRK33hfOA5yHPJ31SxcTzYI4w7BoajZm37ibC7z4tf
|
||||||
|
|
||||||
|
# Azure AD B2C
|
||||||
|
NEXT_PUBLIC_AZURE_AD_B2C_ENABLED=
|
||||||
|
AZURE_AD_B2C_TENANT_NAME=
|
||||||
|
AZURE_AD_B2C_CLIENT_ID=
|
||||||
|
AZURE_AD_B2C_CLIENT_SECRET=
|
||||||
|
AZURE_AD_B2C_PRIMARY_USER_FLOW=
|
||||||
|
|
||||||
|
# Azure AD
|
||||||
|
NEXT_PUBLIC_AZURE_AD_ENABLED=
|
||||||
|
AZURE_AD_CLIENT_ID=
|
||||||
|
AZURE_AD_CLIENT_SECRET=
|
||||||
|
AZURE_AD_TENANT_ID=
|
||||||
|
|
||||||
|
# Battle.net
|
||||||
|
NEXT_PUBLIC_BATTLENET_ENABLED=
|
||||||
|
BATTLENET_CUSTOM_NAME=
|
||||||
|
BATTLENET_CLIENT_ID=
|
||||||
|
BATTLENET_CLIENT_SECRET=
|
||||||
|
BATTLENET_ISSUER=
|
||||||
|
|
||||||
|
# Box
|
||||||
|
NEXT_PUBLIC_BOX_ENABLED=
|
||||||
|
BOX_CUSTOM_NAME=
|
||||||
|
BOX_CLIENT_ID=
|
||||||
|
BOX_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Bungie
|
||||||
|
NEXT_PUBLIC_BUNGIE_ENABLED=
|
||||||
|
BUNGIE_CUSTOM_NAME=
|
||||||
|
BUNGIE_CLIENT_ID=
|
||||||
|
BUNGIE_CLIENT_SECRET=
|
||||||
|
BUNGIE_API_KEY=
|
||||||
|
|
||||||
|
# Cognito
|
||||||
|
NEXT_PUBLIC_COGNITO_ENABLED=
|
||||||
|
COGNITO_CUSTOM_NAME=
|
||||||
|
COGNITO_CLIENT_ID=
|
||||||
|
COGNITO_CLIENT_SECRET=
|
||||||
|
COGNITO_ISSUER=
|
||||||
|
|
||||||
|
# Coinbase
|
||||||
|
NEXT_PUBLIC_COINBASE_ENABLED=
|
||||||
|
COINBASE_CUSTOM_NAME=
|
||||||
|
COINBASE_CLIENT_ID=
|
||||||
|
COINBASE_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Discord
|
||||||
|
NEXT_PUBLIC_DISCORD_ENABLED=
|
||||||
|
DISCORD_CUSTOM_NAME=
|
||||||
|
DISCORD_CLIENT_ID=
|
||||||
|
DISCORD_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Dropbox
|
||||||
|
NEXT_PUBLIC_DROPBOX_ENABLED=
|
||||||
|
DROPBOX_CUSTOM_NAME=
|
||||||
|
DROPBOX_CLIENT_ID=
|
||||||
|
DROPBOX_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# DuendeIndentityServer6
|
||||||
|
NEXT_PUBLIC_DUENDE_IDS6_ENABLED=
|
||||||
|
DUENDE_IDS6_CUSTOM_NAME=
|
||||||
|
DUENDE_IDS6_CLIENT_ID=
|
||||||
|
DUENDE_IDS6_CLIENT_SECRET=
|
||||||
|
DUENDE_IDS6_ISSUER=
|
||||||
|
|
||||||
|
# EVE Online
|
||||||
|
NEXT_PUBLIC_EVEONLINE_ENABLED=
|
||||||
|
EVEONLINE_CUSTOM_NAME=
|
||||||
|
EVEONLINE_CLIENT_ID=
|
||||||
|
EVEONLINE_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Facebook
|
||||||
|
NEXT_PUBLIC_FACEBOOK_ENABLED=
|
||||||
|
FACEBOOK_CUSTOM_NAME=
|
||||||
|
FACEBOOK_CLIENT_ID=
|
||||||
|
FACEBOOK_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# FACEIT
|
||||||
|
NEXT_PUBLIC_FACEIT_ENABLED=
|
||||||
|
FACEIT_CUSTOM_NAME=
|
||||||
|
FACEIT_CLIENT_ID=
|
||||||
|
FACEIT_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Foursquare
|
||||||
|
NEXT_PUBLIC_FOURSQUARE_ENABLED=
|
||||||
|
FOURSQUARE_CUSTOM_NAME=
|
||||||
|
FOURSQUARE_CLIENT_ID=
|
||||||
|
FOURSQUARE_CLIENT_SECRET=
|
||||||
|
FOURSQUARE_APIVERSION=
|
||||||
|
|
||||||
|
# Freshbooks
|
||||||
|
NEXT_PUBLIC_FRESHBOOKS_ENABLED=
|
||||||
|
FRESHBOOKS_CUSTOM_NAME=
|
||||||
|
FRESHBOOKS_CLIENT_ID=
|
||||||
|
FRESHBOOKS_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# FusionAuth
|
||||||
|
NEXT_PUBLIC_FUSIONAUTH_ENABLED=
|
||||||
|
FUSIONAUTH_CUSTOM_NAME=
|
||||||
|
FUSIONAUTH_CLIENT_ID=
|
||||||
|
FUSIONAUTH_CLIENT_SECRET=
|
||||||
|
FUSIONAUTH_ISSUER=
|
||||||
|
FUSIONAUTH_TENANT_ID=
|
||||||
|
|
||||||
|
# GitHub
|
||||||
|
NEXT_PUBLIC_GITHUB_ENABLED=
|
||||||
|
GITHUB_CUSTOM_NAME=
|
||||||
|
GITHUB_ID=
|
||||||
|
GITHUB_SECRET=
|
||||||
|
|
||||||
|
# GitLab
|
||||||
|
NEXT_PUBLIC_GITLAB_ENABLED=
|
||||||
|
GITLAB_CUSTOM_NAME=
|
||||||
|
GITLAB_CLIENT_ID=
|
||||||
|
GITLAB_CLIENT_SECRET=
|
||||||
|
GITLAB_AUTH_URL=
|
||||||
|
|
||||||
|
# Google
|
||||||
|
NEXT_PUBLIC_GOOGLE_ENABLED=
|
||||||
|
GOOGLE_CUSTOM_NAME=
|
||||||
|
GOOGLE_CLIENT_ID=
|
||||||
|
GOOGLE_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# HubSpot
|
||||||
|
NEXT_PUBLIC_HUBSPOT_ENABLED=
|
||||||
|
HUBSPOT_CUSTOM_NAME=
|
||||||
|
HUBSPOT_CLIENT_ID=
|
||||||
|
HUBSPOT_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# IdentityServer4
|
||||||
|
NEXT_PUBLIC_IDS4_ENABLED=
|
||||||
|
IDS4_CUSTOM_NAME=
|
||||||
|
IDS4_CLIENT_ID=
|
||||||
|
IDS4_CLIENT_SECRET=
|
||||||
|
IDS4_ISSUER=
|
||||||
|
|
||||||
|
# Kakao
|
||||||
|
NEXT_PUBLIC_KAKAO_ENABLED=
|
||||||
|
KAKAO_CUSTOM_NAME=
|
||||||
|
KAKAO_CLIENT_ID=
|
||||||
|
KAKAO_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Keycloak
|
||||||
|
NEXT_PUBLIC_KEYCLOAK_ENABLED=
|
||||||
|
KEYCLOAK_CUSTOM_NAME=
|
||||||
|
KEYCLOAK_ISSUER=
|
||||||
|
KEYCLOAK_CLIENT_ID=
|
||||||
|
KEYCLOAK_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# LINE
|
||||||
|
NEXT_PUBLIC_LINE_ENABLED=
|
||||||
|
LINE_CUSTOM_NAME=
|
||||||
|
LINE_CLIENT_ID=
|
||||||
|
LINE_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# LinkedIn
|
||||||
|
NEXT_PUBLIC_LINKEDIN_ENABLED=
|
||||||
|
LINKEDIN_CUSTOM_NAME=
|
||||||
|
LINKEDIN_CLIENT_ID=
|
||||||
|
LINKEDIN_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Mailchimp
|
||||||
|
NEXT_PUBLIC_MAILCHIMP_ENABLED=
|
||||||
|
MAILCHIMP_CUSTOM_NAME=
|
||||||
|
MAILCHIMP_CLIENT_ID=
|
||||||
|
MAILCHIMP_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Mail.ru
|
||||||
|
NEXT_PUBLIC_MAILRU_ENABLED=
|
||||||
|
MAILRU_CUSTOM_NAME=
|
||||||
|
MAILRU_CLIENT_ID=
|
||||||
|
MAILRU_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Naver
|
||||||
|
NEXT_PUBLIC_NAVER_ENABLED=
|
||||||
|
NAVER_CUSTOM_NAME=
|
||||||
|
NAVER_CLIENT_ID=
|
||||||
|
NAVER_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Netlify
|
||||||
|
NEXT_PUBLIC_NETLIFY_ENABLED=
|
||||||
|
NETLIFY_CUSTOM_NAME=
|
||||||
|
NETLIFY_CLIENT_ID=
|
||||||
|
NETLIFY_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Okta
|
||||||
|
NEXT_PUBLIC_OKTA_ENABLED=
|
||||||
|
OKTA_CUSTOM_NAME=
|
||||||
|
OKTA_CLIENT_ID=
|
||||||
|
OKTA_CLIENT_SECRET=
|
||||||
|
OKTA_ISSUER=
|
||||||
|
|
||||||
|
# OneLogin
|
||||||
|
NEXT_PUBLIC_ONELOGIN_ENABLED=
|
||||||
|
ONELOGIN_CUSTOM_NAME=
|
||||||
|
ONELOGIN_CLIENT_ID=
|
||||||
|
ONELOGIN_CLIENT_SECRET=
|
||||||
|
ONELOGIN_ISSUER=
|
||||||
|
|
||||||
|
# Osso
|
||||||
|
NEXT_PUBLIC_OSSO_ENABLED=
|
||||||
|
OSSO_CUSTOM_NAME=
|
||||||
|
OSSO_CLIENT_ID=
|
||||||
|
OSSO_CLIENT_SECRET=
|
||||||
|
OSSO_ISSUER=
|
||||||
|
|
||||||
|
# osu!
|
||||||
|
NEXT_PUBLIC_OSU_ENABLED=
|
||||||
|
OSU_CUSTOM_NAME=
|
||||||
|
OSU_CLIENT_ID=
|
||||||
|
OSU_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Patreon
|
||||||
|
NEXT_PUBLIC_PATREON_ENABLED=
|
||||||
|
PATREON_CUSTOM_NAME=
|
||||||
|
PATREON_CLIENT_ID=
|
||||||
|
PATREON_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Pinterest
|
||||||
|
NEXT_PUBLIC_PINTEREST_ENABLED=
|
||||||
|
PINTEREST_CUSTOM_NAME=
|
||||||
|
PINTEREST_CLIENT_ID=
|
||||||
|
PINTEREST_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Pipedrive
|
||||||
|
NEXT_PUBLIC_PIPEDRIVE_ENABLED=
|
||||||
|
PIPEDRIVE_CUSTOM_NAME=
|
||||||
|
PIPEDRIVE_CLIENT_ID=
|
||||||
|
PIPEDRIVE_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Reddit
|
||||||
|
NEXT_PUBLIC_REDDIT_ENABLED=
|
||||||
|
REDDIT_CUSTOM_NAME=
|
||||||
|
REDDIT_CLIENT_ID=
|
||||||
|
REDDIT_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Salesforce
|
||||||
|
NEXT_PUBLIC_SALESFORCE_ENABLED=
|
||||||
|
SALESFORCE_CUSTOM_NAME=
|
||||||
|
SALESFORCE_CLIENT_ID=
|
||||||
|
SALESFORCE_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Slack
|
||||||
|
NEXT_PUBLIC_SLACK_ENABLED=
|
||||||
|
SLACK_CUSTOM_NAME=
|
||||||
|
SLACK_CLIENT_ID=
|
||||||
|
SLACK_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Spotify
|
||||||
|
NEXT_PUBLIC_SPOTIFY_ENABLED=
|
||||||
|
SPOTIFY_CUSTOM_NAME=
|
||||||
|
SPOTIFY_CLIENT_ID=
|
||||||
|
SPOTIFY_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Strava
|
||||||
|
NEXT_PUBLIC_STRAVA_ENABLED=
|
||||||
|
STRAVA_CUSTOM_NAME=
|
||||||
|
STRAVA_CLIENT_ID=
|
||||||
|
STRAVA_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Synology
|
||||||
|
NEXT_PUBLIC_SYNOLOGY_ENABLED=
|
||||||
|
SYNOLOGY_CUSTOM_NAME=
|
||||||
|
SYNOLOGY_CLIENT_ID=
|
||||||
|
SYNOLOGY_CLIENT_SECRET=
|
||||||
|
SYNOLOGY_WELLKNOWN_URL=
|
||||||
|
|
||||||
|
# Todoist
|
||||||
|
NEXT_PUBLIC_TODOIST_ENABLED=
|
||||||
|
TODOIST_CUSTOM_NAME=
|
||||||
|
TODOIST_CLIENT_ID=
|
||||||
|
TODOIST_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Twitch
|
||||||
|
NEXT_PUBLIC_TWITCH_ENABLED=
|
||||||
|
TWITCH_CUSTOM_NAME=
|
||||||
|
TWITCH_CLIENT_ID=
|
||||||
|
TWITCH_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# United Effects
|
||||||
|
NEXT_PUBLIC_UNITED_EFFECTS_ENABLED=
|
||||||
|
UNITED_EFFECTS_CUSTOM_NAME=
|
||||||
|
UNITED_EFFECTS_CLIENT_ID=
|
||||||
|
UNITED_EFFECTS_CLIENT_SECRET=
|
||||||
|
UNITED_EFFECTS_ISSUER=
|
||||||
|
|
||||||
|
# VK
|
||||||
|
NEXT_PUBLIC_VK_ENABLED=
|
||||||
|
VK_CUSTOM_NAME=
|
||||||
|
VK_CLIENT_ID=
|
||||||
|
VK_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Wikimedia
|
||||||
|
NEXT_PUBLIC_WIKIMEDIA_ENABLED=
|
||||||
|
WIKIMEDIA_CUSTOM_NAME=
|
||||||
|
WIKIMEDIA_CLIENT_ID=
|
||||||
|
WIKIMEDIA_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Wordpress.com
|
||||||
|
NEXT_PUBLIC_WORDPRESS_ENABLED=
|
||||||
|
WORDPRESS_CUSTOM_NAME=
|
||||||
|
WORDPRESS_CLIENT_ID=
|
||||||
|
WORDPRESS_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Yandex
|
||||||
|
NEXT_PUBLIC_YANDEX_ENABLED=
|
||||||
|
YANDEX_CUSTOM_NAME=
|
||||||
|
YANDEX_CLIENT_ID=
|
||||||
|
YANDEX_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Zitadel
|
||||||
|
NEXT_PUBLIC_ZITADEL_ENABLED=
|
||||||
|
ZITADEL_CUSTOM_NAME=
|
||||||
|
ZITADEL_CLIENT_ID=
|
||||||
|
ZITADEL_CLIENT_SECRET=
|
||||||
|
ZITADEL_ISSUER=
|
||||||
|
|
||||||
|
# Zoho
|
||||||
|
NEXT_PUBLIC_ZOHO_ENABLED=
|
||||||
|
ZOHO_CUSTOM_NAME=
|
||||||
|
ZOHO_CLIENT_ID=
|
||||||
|
ZOHO_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# Zoom
|
||||||
|
NEXT_PUBLIC_ZOOM_ENABLED=
|
||||||
|
ZOOM_CUSTOM_NAME=
|
||||||
|
ZOOM_CLIENT_ID=
|
||||||
|
ZOOM_CLIENT_SECRET=
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: ${DOCKER_REGISTRY:-}postgres:16-alpine
|
||||||
|
env_file: .env
|
||||||
|
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- pgdata:/var/lib/postgresql/data
|
||||||
|
linkwarden:
|
||||||
|
env_file: .env
|
||||||
|
environment:
|
||||||
|
- DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres
|
||||||
|
restart: always
|
||||||
|
# build: . # uncomment to build from source
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/linkwarden/linkwarden:latest # comment to build from source
|
||||||
|
ports:
|
||||||
|
- 3011:3000
|
||||||
|
volumes:
|
||||||
|
- data:/data/data
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
- meilisearch
|
||||||
|
labels:
|
||||||
|
com.centurylinklabs.watchtower.enable: true
|
||||||
|
homepage.container: linkwarden-linkwarden-1
|
||||||
|
homepage.description: Link Manager
|
||||||
|
homepage.group: Utilities
|
||||||
|
homepage.href: https://linkwarden.sectorq.eu
|
||||||
|
homepage.icon: linkwarden.png
|
||||||
|
homepage.name: Linkwarden
|
||||||
|
homepage.server: my-docker
|
||||||
|
homepage.weight: 1
|
||||||
|
homepage.widget.type: linkwarden
|
||||||
|
homepage.widget.url: https://linkwarden.sectorq.eu
|
||||||
|
homepage.widget.key: eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..yD9dHgIGR0BMXOs9.IM74UCsBShLgiDEKD78DRfFlunnwAI2S7FL0CUph-V4LuCrmmcRiiL-mpM3TLGQ_AaQZ2tKF9YQrBxZeZahKZ-JWK59hoijHznIu33EKIChoMGHhx54H.WPXJS-6CDYwfwox_0RpZkg
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
meilisearch:
|
||||||
|
image: ${DOCKER_REGISTRY:-}getmeili/meilisearch:v1.12.8
|
||||||
|
restart: always
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- meili_data:/meili_data
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pgdata:
|
||||||
|
data:
|
||||||
|
meili_data:
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
APPNAME=mailu
|
APPNAME=mailu
|
||||||
DOCKER_REGISTRY=r.sectorq.eu/library/
|
|
||||||
MAILU_VERSION=2024.06
|
MAILU_VERSION=2024.06
|
||||||
LOGGING=syslog
|
LOGGING=syslog
|
||||||
Executable
+251
@@ -0,0 +1,251 @@
|
|||||||
|
networks:
|
||||||
|
clamav:
|
||||||
|
driver: bridge
|
||||||
|
default:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 192.168.205.0/24
|
||||||
|
driver: default
|
||||||
|
fts_attachments:
|
||||||
|
driver: bridge
|
||||||
|
internal: true
|
||||||
|
oletools:
|
||||||
|
driver: bridge
|
||||||
|
internal: true
|
||||||
|
radicale:
|
||||||
|
driver: bridge
|
||||||
|
webmail:
|
||||||
|
driver: bridge
|
||||||
|
services:
|
||||||
|
admin:
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
- resolver
|
||||||
|
dns:
|
||||||
|
- 192.168.205.254
|
||||||
|
env_file: stack.env
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}admin:${MAILU_VERSION:-2024.06}
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- /share/docker_data/mailu3/data:/data
|
||||||
|
- /share/docker_data/mailu3/dkim:/dkim
|
||||||
|
antispam:
|
||||||
|
depends_on:
|
||||||
|
- front
|
||||||
|
- redis
|
||||||
|
- oletools
|
||||||
|
- antivirus
|
||||||
|
- resolver
|
||||||
|
dns:
|
||||||
|
- 192.168.205.254
|
||||||
|
env_file: stack.env
|
||||||
|
hostname: antispam
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-2024.06}
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
- oletools
|
||||||
|
- clamav
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- /share/docker_data/mailu3/filter:/var/lib/rspamd
|
||||||
|
- /share/docker_data/mailu3/overrides/rspamd:/overrides:ro
|
||||||
|
antivirus:
|
||||||
|
healthcheck:
|
||||||
|
interval: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 10s
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- "clamdcheck.sh"
|
||||||
|
timeout: 5s
|
||||||
|
image: ${DOCKER_REGISTRY:-}clamav/clamav-debian:1.4
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- clamav
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- /share/docker_data/mailu3/filter/clamav:/var/lib/clamav
|
||||||
|
fetchmail:
|
||||||
|
depends_on:
|
||||||
|
- admin
|
||||||
|
- smtp
|
||||||
|
- imap
|
||||||
|
- resolver
|
||||||
|
dns:
|
||||||
|
- 192.168.205.254
|
||||||
|
env_file: stack.env
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}fetchmail:${MAILU_VERSION:-2024.06}
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- /share/docker_data/mailu3/data/fetchmail:/data
|
||||||
|
front:
|
||||||
|
depends_on:
|
||||||
|
- resolver
|
||||||
|
dns:
|
||||||
|
- 192.168.205.254
|
||||||
|
env_file: stack.env
|
||||||
|
extends:
|
||||||
|
file: logging.yml
|
||||||
|
service: ${LOGGING:-syslog}
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-2024.06}
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
homepage.container: mailu3-front-1
|
||||||
|
homepage.description: eMail server
|
||||||
|
homepage.group: Utilities
|
||||||
|
homepage.href: https://mail.sectorq.eu
|
||||||
|
homepage.icon: ${APPNAME}.png
|
||||||
|
homepage.name: Mailu
|
||||||
|
homepage.server: my-docker
|
||||||
|
homepage.weight: 1
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
- webmail
|
||||||
|
- radicale
|
||||||
|
ports:
|
||||||
|
- 0.0.0.0:8880:80
|
||||||
|
- 0.0.0.0:8443:443
|
||||||
|
- 0.0.0.0:25:25
|
||||||
|
- 0.0.0.0:465:465
|
||||||
|
- 0.0.0.0:587:587
|
||||||
|
- 0.0.0.0:110:110
|
||||||
|
- 0.0.0.0:995:995
|
||||||
|
- 0.0.0.0:143:143
|
||||||
|
- 0.0.0.0:993:993
|
||||||
|
- 0.0.0.0:4190:4190
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- /share/docker_data/mailu3/certs:/certs
|
||||||
|
- /share/docker_data/mailu3/overrides/nginx:/overrides:ro
|
||||||
|
fts_attachments:
|
||||||
|
depends_on:
|
||||||
|
- resolver
|
||||||
|
dns:
|
||||||
|
- 192.168.205.254
|
||||||
|
healthcheck:
|
||||||
|
interval: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 10s
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- wget -nv -t1 -O /dev/null http://127.0.0.1:9998/tika || exit 1
|
||||||
|
timeout: 5s
|
||||||
|
hostname: tika
|
||||||
|
image: ${DOCKER_REGISTRY:-}apache/tika:2.9.2.1-full
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- fts_attachments
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
imap:
|
||||||
|
depends_on:
|
||||||
|
- front
|
||||||
|
- fts_attachments
|
||||||
|
- resolver
|
||||||
|
dns:
|
||||||
|
- 192.168.205.254
|
||||||
|
env_file: stack.env
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-2024.06}
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
- fts_attachments
|
||||||
|
ulimits:
|
||||||
|
nofile:
|
||||||
|
soft: 30000
|
||||||
|
hard: 30000
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- /share/docker_data/mailu3/mail:/mail
|
||||||
|
- /share/docker_data/mailu3/overrides/dovecot:/overrides:ro
|
||||||
|
oletools:
|
||||||
|
depends_on:
|
||||||
|
- resolver
|
||||||
|
dns:
|
||||||
|
- 192.168.205.254
|
||||||
|
hostname: oletools
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}oletools:${MAILU_VERSION:-2024.06}
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- oletools
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
redis:
|
||||||
|
depends_on:
|
||||||
|
- resolver
|
||||||
|
dns:
|
||||||
|
- 192.168.205.254
|
||||||
|
image: ${DOCKER_REGISTRY:-}redis:alpine
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- /share/docker_data/mailu3/redis:/data
|
||||||
|
resolver:
|
||||||
|
env_file: stack.env
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-2024.06}
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: 192.168.205.254
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
smtp:
|
||||||
|
depends_on:
|
||||||
|
- front
|
||||||
|
- resolver
|
||||||
|
dns:
|
||||||
|
- 192.168.205.254
|
||||||
|
env_file: stack.env
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}postfix:${MAILU_VERSION:-2024.06}
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- /share/docker_data/mailu3/mailqueue:/queue
|
||||||
|
- /share/docker_data/mailu3/overrides/postfix:/overrides:ro
|
||||||
|
webdav:
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}radicale:${MAILU_VERSION:-2024.06}
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- radicale
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- /share/docker_data/mailu3/dav:/data
|
||||||
|
webmail:
|
||||||
|
depends_on:
|
||||||
|
- front
|
||||||
|
env_file: stack.env
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}webmail:${MAILU_VERSION:-2024.06}
|
||||||
|
labels:
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- webmail
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- /share/docker_data/mailu3/webmail:/data
|
||||||
|
- /share/docker_data/mailu3/overrides/roundcube:/overrides:ro
|
||||||
+33
-16
@@ -31,8 +31,8 @@ services:
|
|||||||
wud.watch.digest: true
|
wud.watch.digest: true
|
||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/mailu3/data:/data
|
- mailu3_data:/data
|
||||||
- /share/docker_data/mailu3/dkim:/dkim
|
- mailu3_dkim:/dkim
|
||||||
antispam:
|
antispam:
|
||||||
depends_on:
|
depends_on:
|
||||||
- front
|
- front
|
||||||
@@ -54,8 +54,8 @@ services:
|
|||||||
- clamav
|
- clamav
|
||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/mailu3/filter:/var/lib/rspamd
|
- antispam_filter:/var/lib/rspamd
|
||||||
- /share/docker_data/mailu3/overrides/rspamd:/overrides:ro
|
- antispam_rspamd:/overrides:ro
|
||||||
antivirus:
|
antivirus:
|
||||||
healthcheck:
|
healthcheck:
|
||||||
interval: 10s
|
interval: 10s
|
||||||
@@ -73,7 +73,7 @@ services:
|
|||||||
- clamav
|
- clamav
|
||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/mailu3/filter/clamav:/var/lib/clamav
|
- antivirus_clamav:/var/lib/clamav
|
||||||
fetchmail:
|
fetchmail:
|
||||||
depends_on:
|
depends_on:
|
||||||
- admin
|
- admin
|
||||||
@@ -89,7 +89,7 @@ services:
|
|||||||
wud.watch.digest: true
|
wud.watch.digest: true
|
||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/mailu3/data/fetchmail:/data
|
- fetchmail:/data
|
||||||
front:
|
front:
|
||||||
depends_on:
|
depends_on:
|
||||||
- resolver
|
- resolver
|
||||||
@@ -129,8 +129,8 @@ services:
|
|||||||
- 0.0.0.0:4190:4190
|
- 0.0.0.0:4190:4190
|
||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/mailu3/certs:/certs
|
- nginx_certs:/certs
|
||||||
- /share/docker_data/mailu3/overrides/nginx:/overrides:ro
|
- nginx_overrides:/overrides:ro
|
||||||
fts_attachments:
|
fts_attachments:
|
||||||
depends_on:
|
depends_on:
|
||||||
- resolver
|
- resolver
|
||||||
@@ -173,8 +173,8 @@ services:
|
|||||||
hard: 30000
|
hard: 30000
|
||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/mailu3/mail:/mail
|
- imap_mail:/mail
|
||||||
- /share/docker_data/mailu3/overrides/dovecot:/overrides:ro
|
- imap_dovecot:/overrides:ro
|
||||||
oletools:
|
oletools:
|
||||||
depends_on:
|
depends_on:
|
||||||
- resolver
|
- resolver
|
||||||
@@ -199,7 +199,7 @@ services:
|
|||||||
wud.watch.digest: true
|
wud.watch.digest: true
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/mailu3/redis:/data
|
- redis:/data
|
||||||
resolver:
|
resolver:
|
||||||
env_file: stack.env
|
env_file: stack.env
|
||||||
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-2024.06}
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-2024.06}
|
||||||
@@ -223,8 +223,8 @@ services:
|
|||||||
wud.watch.digest: true
|
wud.watch.digest: true
|
||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/mailu3/mailqueue:/queue
|
- mailqueue:/queue
|
||||||
- /share/docker_data/mailu3/overrides/postfix:/overrides:ro
|
- postfix_overrides:/overrides:ro
|
||||||
webdav:
|
webdav:
|
||||||
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}radicale:${MAILU_VERSION:-2024.06}
|
image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}radicale:${MAILU_VERSION:-2024.06}
|
||||||
labels:
|
labels:
|
||||||
@@ -234,7 +234,7 @@ services:
|
|||||||
- radicale
|
- radicale
|
||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/mailu3/dav:/data
|
- webdav_data:/data
|
||||||
webmail:
|
webmail:
|
||||||
depends_on:
|
depends_on:
|
||||||
- front
|
- front
|
||||||
@@ -247,5 +247,22 @@ services:
|
|||||||
- webmail
|
- webmail
|
||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/mailu3/webmail:/data
|
- webmail:/data
|
||||||
- /share/docker_data/mailu3/overrides/roundcube:/overrides:ro
|
- roundcube:/overrides:ro
|
||||||
|
volumes:
|
||||||
|
antivirus_clamav:
|
||||||
|
antispam_filter:
|
||||||
|
antispam_rspamd:
|
||||||
|
fetchmail:
|
||||||
|
imap_mail:
|
||||||
|
imap_dovecot:
|
||||||
|
mailu3_data:
|
||||||
|
mailu3_dkim:
|
||||||
|
mailqueue:
|
||||||
|
nginx_certs:
|
||||||
|
nginx_overrides:
|
||||||
|
postfix_overrides:
|
||||||
|
webdav_data:
|
||||||
|
webmail:
|
||||||
|
roundcube:
|
||||||
|
redis:
|
||||||
+3
-3
@@ -141,10 +141,10 @@ COMPOSE_PROJECT_NAME=mailu
|
|||||||
CREDENTIAL_ROUNDS=12
|
CREDENTIAL_ROUNDS=12
|
||||||
|
|
||||||
# Header to take the real ip from
|
# Header to take the real ip from
|
||||||
REAL_IP_HEADER=X-Real-IP
|
# REAL_IP_HEADER=X-Real-IP
|
||||||
|
REAL_IP_HEADER=X-Forwarded-For
|
||||||
# IPs for nginx set_real_ip_from (CIDR list separated by commas)
|
# IPs for nginx set_real_ip_from (CIDR list separated by commas)
|
||||||
REAL_IP_FROM=192.168.77.101
|
REAL_IP_FROM=172.0.0.0/8
|
||||||
|
|
||||||
# choose wether mailu bounces (no) or rejects (yes) mail when recipient is unknown (value: yes, no)
|
# choose wether mailu bounces (no) or rejects (yes) mail when recipient is unknown (value: yes, no)
|
||||||
REJECT_UNLISTED_RECIPIENT=
|
REJECT_UNLISTED_RECIPIENT=
|
||||||
|
|||||||
@@ -0,0 +1,361 @@
|
|||||||
|
networks:
|
||||||
|
duplicati:
|
||||||
|
driver: bridge
|
||||||
|
mediarr:
|
||||||
|
driver: bridge
|
||||||
|
volumes:
|
||||||
|
homarr_configs:
|
||||||
|
homarr_icons:
|
||||||
|
homarr_data:
|
||||||
|
jackett_config:
|
||||||
|
jackett_downloads:
|
||||||
|
jellyfin_config:
|
||||||
|
jellyseerr_config:
|
||||||
|
lidarr_config:
|
||||||
|
qbittorrent_config:
|
||||||
|
radarr_config:
|
||||||
|
sonarr_config:
|
||||||
|
bazarr_config:
|
||||||
|
# m-server_music:
|
||||||
|
# driver: local
|
||||||
|
# driver_opts:
|
||||||
|
# type: nfs
|
||||||
|
# o: addr=192.168.77.101,rw,nfsvers=4.1,nolock,nofail
|
||||||
|
# device: "192.168.77.101:/music"
|
||||||
|
# m-server_movies:
|
||||||
|
# driver: local
|
||||||
|
# driver_opts:
|
||||||
|
# type: nfs
|
||||||
|
# o: addr=192.168.77.101,rw,nfsvers=4.1,nolock,nofail
|
||||||
|
# device: "192.168.77.101:/movies"
|
||||||
|
# m-server_shows:
|
||||||
|
# driver: local
|
||||||
|
# driver_opts:
|
||||||
|
# type: nfs
|
||||||
|
# o: addr=192.168.77.101,rw,nfsvers=4.1,nolock,nofail
|
||||||
|
# device: "192.168.77.101:/shows"
|
||||||
|
|
||||||
|
services:
|
||||||
|
bazarr:
|
||||||
|
container_name: bazarr
|
||||||
|
depends_on:
|
||||||
|
- sonarr
|
||||||
|
- radarr
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Europe/Bratislava
|
||||||
|
hostname: bazarr
|
||||||
|
image: ${DOCKER_REGISTRY:-}lscr.io/linuxserver/bazarr:latest
|
||||||
|
labels:
|
||||||
|
com.centurylinklabs.watchtower.enable: 'true'
|
||||||
|
homepage.container: bazarr
|
||||||
|
homepage.description: Subtitles
|
||||||
|
homepage.group: Media
|
||||||
|
homepage.href: https://bazarr.sectorq.eu
|
||||||
|
homepage.icon: bazarr.png
|
||||||
|
homepage.name: bazarr
|
||||||
|
homepage.server: my-docker
|
||||||
|
homepage.weight: '90'
|
||||||
|
homepage.widget.key: ${BAZARR_TOKEN}
|
||||||
|
homepage.widget.type: bazarr
|
||||||
|
homepage.widget.url: https://bazarr.sectorq.eu
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- mediarr
|
||||||
|
ports:
|
||||||
|
- 6767:6767
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- bazarr_config:/config
|
||||||
|
# - m-server_movies:/movies/m-server
|
||||||
|
# - m-server_shows:/tv/m-server
|
||||||
|
- /share/movies:/movies/nas
|
||||||
|
- /share/shows:/tv/nas
|
||||||
|
flaresolverr:
|
||||||
|
container_name: flaresolverr
|
||||||
|
environment:
|
||||||
|
- LOG_LEVEL=info
|
||||||
|
- TZ=Europe/Bratislava
|
||||||
|
hostname: flaresolverr
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/flaresolverr/flaresolverr:latest
|
||||||
|
labels:
|
||||||
|
com.centurylinklabs.watchtower.enable: true
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- mediarr
|
||||||
|
ports:
|
||||||
|
- 8191:8191
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
homarr:
|
||||||
|
container_name: homarr
|
||||||
|
hostname: homarr
|
||||||
|
image: ${DOCKER_REGISTRY:-}ghcr.io/ajnart/homarr:latest
|
||||||
|
labels:
|
||||||
|
com.centurylinklabs.watchtower.enable: true
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- mediarr
|
||||||
|
ports:
|
||||||
|
- 7575:7575
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- homarr_configs:/app/data/configs
|
||||||
|
- homarr_icons:/app/public/icons
|
||||||
|
- homarr_data:/data
|
||||||
|
jackett:
|
||||||
|
container_name: jackett
|
||||||
|
dns:
|
||||||
|
- 192.168.77.101
|
||||||
|
depends_on:
|
||||||
|
- sonarr
|
||||||
|
- radarr
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Europe/Bratislava
|
||||||
|
- AUTO_UPDATE=true
|
||||||
|
- RUN_OPTS=
|
||||||
|
hostname: jackett
|
||||||
|
image: ${DOCKER_REGISTRY:-}lscr.io/linuxserver/jackett:latest
|
||||||
|
labels:
|
||||||
|
com.centurylinklabs.watchtower.enable: 'true'
|
||||||
|
homepage.container: jackett
|
||||||
|
homepage.description: Subtitles
|
||||||
|
homepage.group: Media
|
||||||
|
homepage.href: https://jackett.sectorq.eu
|
||||||
|
homepage.icon: jackett.png
|
||||||
|
homepage.name: Jackett
|
||||||
|
homepage.server: my-docker
|
||||||
|
homepage.weight: '80'
|
||||||
|
homepage.widget.password: ${JACKET_TOKEN}
|
||||||
|
homepage.widget.type: jackett
|
||||||
|
homepage.widget.url: https://jackett.sectorq.eu
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- mediarr
|
||||||
|
ports:
|
||||||
|
- 9117:9117
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- jackett_config:/config
|
||||||
|
- jackett_downloads:/downloads
|
||||||
|
jellyfin:
|
||||||
|
container_name: jellyfin
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Europe/Bratislava
|
||||||
|
- JELLYFIN_PublishedServerUrl=https://jf.sectorq.eu
|
||||||
|
extends:
|
||||||
|
file: hwaccel.yml
|
||||||
|
service: ${HW_MODE:-cpu}
|
||||||
|
hostname: jellyfin
|
||||||
|
image: ${DOCKER_REGISTRY:-}lscr.io/linuxserver/jellyfin:latest
|
||||||
|
labels:
|
||||||
|
com.centurylinklabs.watchtower.enable: 'true'
|
||||||
|
homepage.container: jellyfin
|
||||||
|
homepage.description: Subtitles
|
||||||
|
homepage.group: Media
|
||||||
|
homepage.href: https://jf.sectorq.eu
|
||||||
|
homepage.icon: jellyfin.png
|
||||||
|
homepage.name: Jellyfin
|
||||||
|
homepage.server: my-docker
|
||||||
|
homepage.weight: '10'
|
||||||
|
homepage.widget.key: ${JELLYFIN_TOKEN}
|
||||||
|
homepage.widget.type: jellyfin
|
||||||
|
homepage.widget.url: https://jf.sectorq.eu
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
network_mode: host
|
||||||
|
ports:
|
||||||
|
- 8096:8096
|
||||||
|
- 8920:8920
|
||||||
|
- 7359:7359
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- jellyfin_config:/config
|
||||||
|
# - m-server_movies:/data/movies/m-server
|
||||||
|
# - m-server_music:/data/music/m-server
|
||||||
|
# - m-server_shows:/data/shows/m-server
|
||||||
|
- /share/movies:/data/movies/nas
|
||||||
|
- /share/music:/data/music/nas
|
||||||
|
- /share/shows:/data/shows/nas
|
||||||
|
- /share/live:/data/live/nas
|
||||||
|
- /share/xxx:/data/xxx/nas
|
||||||
|
jellyseerr:
|
||||||
|
container_name: jellyseerr
|
||||||
|
environment:
|
||||||
|
- LOG_LEVEL=debug
|
||||||
|
- TZ=Europe/Bratislava
|
||||||
|
hostname: jellyseerr
|
||||||
|
image: ${DOCKER_REGISTRY:-}fallenbagel/jellyseerr:latest
|
||||||
|
labels:
|
||||||
|
com.centurylinklabs.watchtower.enabl: 'true'
|
||||||
|
homepage.container: jellyseerr
|
||||||
|
homepage.description: Subtitles
|
||||||
|
homepage.group: Media
|
||||||
|
homepage.href: https://js.sectorq.eu
|
||||||
|
homepage.icon: jellyseerr.png
|
||||||
|
homepage.name: Jellyseerr
|
||||||
|
homepage.server: my-docker
|
||||||
|
homepage.weight: '20'
|
||||||
|
homepage.widget.key: ${JELLYSEER_TOKEN}
|
||||||
|
homepage.widget.type: jellyseerr
|
||||||
|
homepage.widget.url: https://js.sectorq.eu
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- mediarr
|
||||||
|
ports:
|
||||||
|
- 5055:5055
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- jellyseerr_config:/app/config
|
||||||
|
lidarr:
|
||||||
|
container_name: lidarr
|
||||||
|
dns:
|
||||||
|
- 8.8.8.8
|
||||||
|
- 192.168.77.101
|
||||||
|
environment:
|
||||||
|
# - PUID=1000
|
||||||
|
# - PGID=1000
|
||||||
|
- TZ=Europe/Bratislava
|
||||||
|
hostname: lidarr
|
||||||
|
image: ${DOCKER_REGISTRY:-}lscr.io/linuxserver/lidarr:latest
|
||||||
|
labels:
|
||||||
|
com.centurylinklabs.watchtower.enable: 'true'
|
||||||
|
homepage.container: lidarr
|
||||||
|
homepage.description: Subtitles
|
||||||
|
homepage.group: Media
|
||||||
|
homepage.href: https://lidarr.sectorq.eu
|
||||||
|
homepage.icon: lidarr.png
|
||||||
|
homepage.name: Lidarr
|
||||||
|
homepage.server: my-docker
|
||||||
|
homepage.weight: '60'
|
||||||
|
homepage.widget.key: ${LIDARR_TOKEN}
|
||||||
|
homepage.widget.type: lidarr
|
||||||
|
homepage.widget.url: https://lidarr.sectorq.eu
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- mediarr
|
||||||
|
ports:
|
||||||
|
- 8686:8686
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- lidarr_config:/config
|
||||||
|
# - m-server_music:/music
|
||||||
|
- /share/downloads:/downloads
|
||||||
|
qbittorrent:
|
||||||
|
container_name: qbittorrent
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Europe/Bratislava
|
||||||
|
- WEBUI_PORT=8085
|
||||||
|
- FILE__PASSWORD=/run/secrets/mysecretpassword
|
||||||
|
hostname: qbittorrent
|
||||||
|
image: ${DOCKER_REGISTRY:-}lscr.io/linuxserver/qbittorrent:latest
|
||||||
|
labels:
|
||||||
|
com.centurylinklabs.watchtower.enable: 'true'
|
||||||
|
homepage.container: qbittorrent
|
||||||
|
homepage.description: Subtitles
|
||||||
|
homepage.group: Utilities
|
||||||
|
homepage.href: https://qbit.sectorq.eu
|
||||||
|
homepage.icon: qbittorrent.png
|
||||||
|
homepage.name: Qbittorrent
|
||||||
|
homepage.server: my-docker
|
||||||
|
homepage.weight: '95'
|
||||||
|
homepage.widget.enableLeechProgress: 'false'
|
||||||
|
homepage.widget.password: ${QBIT_TOKEN}
|
||||||
|
homepage.widget.type: qbittorrent
|
||||||
|
homepage.widget.url: https://qbit.sectorq.eu
|
||||||
|
homepage.widget.username: admin
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- mediarr
|
||||||
|
ports:
|
||||||
|
- 8085:8085
|
||||||
|
- 6881:6881
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- qbittorrent_config:/config
|
||||||
|
- /share/downloads:/downloads
|
||||||
|
radarr:
|
||||||
|
container_name: radarr
|
||||||
|
dns:
|
||||||
|
- 192.168.77.101
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Europe/Bratislava
|
||||||
|
hostname: radarr
|
||||||
|
image: ${DOCKER_REGISTRY:-}lscr.io/linuxserver/radarr:latest
|
||||||
|
labels:
|
||||||
|
com.centurylinklabs.watchtower.enable: 'true'
|
||||||
|
homepage.container: radarr
|
||||||
|
homepage.description: Subtitles
|
||||||
|
homepage.group: Media
|
||||||
|
homepage.href: https://radarr.sectorq.eu
|
||||||
|
homepage.icon: radarr.png
|
||||||
|
homepage.name: Radarr
|
||||||
|
homepage.server: my-docker
|
||||||
|
homepage.weight: '20'
|
||||||
|
homepage.widget.key: ${RADARR_TOKEN}
|
||||||
|
homepage.widget.type: radarr
|
||||||
|
homepage.widget.url: https://radarr.sectorq.eu
|
||||||
|
wud.display.icon: mdi:radarr
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- mediarr
|
||||||
|
ports:
|
||||||
|
- 7878:7878
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- radarr_config:/config
|
||||||
|
# - m-server_movies:/movies-m-server
|
||||||
|
- /share/movies:/movies-nas
|
||||||
|
- /share/downloads:/downloads
|
||||||
|
sonarr:
|
||||||
|
container_name: sonarr
|
||||||
|
dns:
|
||||||
|
- 192.168.77.101
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Europe/Bratislava
|
||||||
|
hostname: sonarr
|
||||||
|
image: ${DOCKER_REGISTRY:-}lscr.io/linuxserver/sonarr:latest
|
||||||
|
labels:
|
||||||
|
com.centurylinklabs.watchtower.enable: 'true'
|
||||||
|
homepage.container: sonarr
|
||||||
|
homepage.description: Subtitles
|
||||||
|
homepage.group: Media
|
||||||
|
homepage.href: https://sonarr.sectorq.eu
|
||||||
|
homepage.icon: sonarr.png
|
||||||
|
homepage.name: Sonarr
|
||||||
|
homepage.server: my-docker
|
||||||
|
homepage.weight: '30'
|
||||||
|
homepage.widget.key: ${SONARR_TOKEN}
|
||||||
|
homepage.widget.type: sonarr
|
||||||
|
homepage.widget.url: https://sonarr.sectorq.eu
|
||||||
|
wud.watch: true
|
||||||
|
wud.watch.digest: true
|
||||||
|
networks:
|
||||||
|
- mediarr
|
||||||
|
ports:
|
||||||
|
- 8989:8989
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
|
volumes:
|
||||||
|
- sonarr_config:/config
|
||||||
|
# - m-server_shows:/tv-m-server
|
||||||
|
- /share/shows:/tv-nas
|
||||||
|
- /share/downloads:/downloads
|
||||||
@@ -1,2 +1 @@
|
|||||||
APPNAME=mosquitto
|
APPNAME=mosquitto
|
||||||
DOCKER_REGISTRY=r.sectorq.eu/library/
|
|
||||||
+25
-5
@@ -2,9 +2,9 @@ version: "3"
|
|||||||
services:
|
services:
|
||||||
n8n:
|
n8n:
|
||||||
image: ${DOCKER_REGISTRY:-}n8nio/n8n:latest
|
image: ${DOCKER_REGISTRY:-}n8nio/n8n:latest
|
||||||
container_name: n8n
|
container_name: n8n-main
|
||||||
ports:
|
ports:
|
||||||
- "5679:5678"
|
- "5678:5678"
|
||||||
environment:
|
environment:
|
||||||
- N8N_HOST=n8n.sectorq.eu
|
- N8N_HOST=n8n.sectorq.eu
|
||||||
- N8N_PORT=5678
|
- N8N_PORT=5678
|
||||||
@@ -13,13 +13,20 @@ services:
|
|||||||
- N8N_BASIC_AUTH_USER=sth
|
- N8N_BASIC_AUTH_USER=sth
|
||||||
- N8N_BASIC_AUTH_PASSWORD=pwd
|
- N8N_BASIC_AUTH_PASSWORD=pwd
|
||||||
- N8N_RUNNERS_ENABLED=true
|
- N8N_RUNNERS_ENABLED=true
|
||||||
- N8N_RUNNERS_MODE=internal
|
- N8N_RUNNERS_MODE=external
|
||||||
|
- N8N_RUNNERS_BROKER_LISTEN_ADDRESS=0.0.0.0
|
||||||
|
- N8N_RUNNERS_AUTH_TOKEN=l4c1j4yd33Du5lo
|
||||||
|
- N8N_NATIVE_PYTHON_RUNNER=true
|
||||||
|
- N8N_GIT_NODE_ALLOW_LOCAL=true
|
||||||
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
|
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
|
||||||
- N8N_SECURE_COOKIE=false
|
- N8N_SECURE_COOKIE=false
|
||||||
- WEBHOOK_URL=https://n8n.sectorq.eu
|
- WEBHOOK_URL=https://n8n.sectorq.eu
|
||||||
- NODES_EXCLUDE="[]"
|
- NODES_EXCLUDE="[]"
|
||||||
|
- NODE_FUNCTION_ALLOW_EXTERNAL=caldav
|
||||||
|
- NODE_FUNCTION_ALLOW_BUILTIN=datetime
|
||||||
volumes:
|
volumes:
|
||||||
- n8n-data:/home/node/.n8n
|
- data:/home/node/.n8n
|
||||||
|
- files:/home/node/.n8n-files/
|
||||||
restart: ${RESTART:-unless-stopped}
|
restart: ${RESTART:-unless-stopped}
|
||||||
stop_grace_period: 60s
|
stop_grace_period: 60s
|
||||||
labels:
|
labels:
|
||||||
@@ -32,6 +39,19 @@ services:
|
|||||||
homepage.server: my-docker
|
homepage.server: my-docker
|
||||||
wud.watch: true
|
wud.watch: true
|
||||||
wud.watch.digest: true
|
wud.watch.digest: true
|
||||||
|
task-runners:
|
||||||
|
image: n8nio/runners:latest
|
||||||
|
container_name: n8n-runners
|
||||||
|
environment:
|
||||||
|
N8N_RUNNERS_TASK_BROKER_URI: http://n8n-main:5679
|
||||||
|
N8N_RUNNERS_AUTH_TOKEN: l4c1j4yd33Du5lo
|
||||||
|
N8N_RUNNERS_STDLIB_ALLOW: "*"
|
||||||
|
N8N_RUNNERS_EXTERNAL_ALLOW: "*"
|
||||||
|
# etc.
|
||||||
|
depends_on:
|
||||||
|
- n8n
|
||||||
volumes:
|
volumes:
|
||||||
n8n-data:
|
data:
|
||||||
|
driver: local
|
||||||
|
files:
|
||||||
driver: local
|
driver: local
|
||||||
@@ -35,6 +35,8 @@ services:
|
|||||||
- 81:81
|
- 81:81
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- /share/docker_data/nginx/data:/data
|
- data:/data
|
||||||
- /share/docker_data/nginx/letsencrypt:/etc/letsencrypt
|
- letsencrypt:/etc/letsencrypt
|
||||||
version: '3.8'
|
volumes:
|
||||||
|
data:
|
||||||
|
letsencrypt:
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ services:
|
|||||||
# Disables user/password login form. Required when ENABLE_OAUTH_SIGNUP=true.
|
# Disables user/password login form. Required when ENABLE_OAUTH_SIGNUP=true.
|
||||||
- ENABLE_LOGIN_FORM=false
|
- ENABLE_LOGIN_FORM=false
|
||||||
- OAUTH_MERGE_ACCOUNTS_BY_EMAIL=true
|
- OAUTH_MERGE_ACCOUNTS_BY_EMAIL=true
|
||||||
|
restart: ${RESTART:-unless-stopped}
|
||||||
volumes:
|
volumes:
|
||||||
open-webui:
|
open-webui:
|
||||||
models:
|
models:
|
||||||
@@ -33,7 +33,7 @@ services:
|
|||||||
TZ: Europe/Bratislava
|
TZ: Europe/Bratislava
|
||||||
hostname: ${PIHOLE_HOSTNAME}
|
hostname: ${PIHOLE_HOSTNAME}
|
||||||
image: pihole/pihole:latest
|
image: pihole/pihole:latest
|
||||||
shm_size: '256mb'
|
shm_size: '512mb'
|
||||||
logging:
|
logging:
|
||||||
driver: loki
|
driver: loki
|
||||||
options:
|
options:
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
puppetserver:
|
||||||
|
image: puppet/puppetserver:latest
|
||||||
|
container_name: puppetserver
|
||||||
|
hostname: active.home.lan
|
||||||
|
ports:
|
||||||
|
- "8140:8140"
|
||||||
|
environment:
|
||||||
|
- PUPPETSERVER_HOSTNAME=active.home.lan
|
||||||
|
volumes:
|
||||||
|
# Main Puppet config
|
||||||
|
- puppet-puppet:/etc/puppetlabs/puppet
|
||||||
|
- puppet-server:/etc/puppetlabs/puppetserver
|
||||||
|
# Puppet code (manifests, modules)
|
||||||
|
- puppet-code:/etc/puppetlabs/code
|
||||||
|
|
||||||
|
networks:
|
||||||
|
puppetnet:
|
||||||
|
aliases:
|
||||||
|
- puppet
|
||||||
|
- puppetserver
|
||||||
|
- active.home.lan
|
||||||
|
|
||||||
|
networks:
|
||||||
|
puppetnet:
|
||||||
|
volumes:
|
||||||
|
puppet-code:
|
||||||
|
puppet-server:
|
||||||
|
puppet-puppet:
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
services:
|
||||||
|
puppet-agent:
|
||||||
|
image: puppet/puppet-agent:latest
|
||||||
|
container_name: puppet-agent
|
||||||
|
hostname: nas.home.lan
|
||||||
|
environment:
|
||||||
|
- PUPPET_SERVER=active.home.lan
|
||||||
|
volumes:
|
||||||
|
- data:/etc/puppetlabs/puppet
|
||||||
|
command: ["agent", "-t"]
|
||||||
|
volumes:
|
||||||
|
data:
|
||||||
Executable
+24
@@ -0,0 +1,24 @@
|
|||||||
|
name: registry
|
||||||
|
services:
|
||||||
|
registry:
|
||||||
|
container_name: registry
|
||||||
|
environment:
|
||||||
|
- REGISTRY_STORAGE_DELETE_ENABLED=true
|
||||||
|
- REGISTRY_AUTH=htpasswd
|
||||||
|
- REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm
|
||||||
|
- REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
|
||||||
|
image: registry:2
|
||||||
|
labels:
|
||||||
|
wud.watch: false
|
||||||
|
wud.watch.digest: false
|
||||||
|
logging:
|
||||||
|
driver: loki
|
||||||
|
options:
|
||||||
|
loki-url: http://192.168.77.101:3100/loki/api/v1/push
|
||||||
|
ports:
|
||||||
|
- 5000:5000
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- /share/docker_data/registry/auth:/auth
|
||||||
|
- /share/docker_registry/data:/var/lib/registry
|
||||||
|
- /share/docker_data/registry/config:/etc/docker/registry/
|
||||||
@@ -1,46 +1,46 @@
|
|||||||
version: "3.9"
|
version: "3.9"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
# Rocky Linux 9 mirror
|
# # Rocky Linux 9 mirror
|
||||||
rocky9-sync:
|
# rocky9-sync:
|
||||||
image: rockylinux:9
|
# image: rockylinux:9
|
||||||
container_name: rocky9-sync
|
# container_name: rocky9-sync
|
||||||
user: root
|
# user: root
|
||||||
volumes:
|
# volumes:
|
||||||
- /share/docker_data/repo_mirror/data/rocky/9:/repos # mirror storage
|
# - /media/nas/qda_1/repos/rocky/9:/repos # mirror storage
|
||||||
- /share/docker_data/repo_mirror/scripts/rocky9.sh:/rocky9.sh
|
# - /share/docker_data/repo_mirror/scripts/rocky9.sh:/rocky9.sh
|
||||||
command: /rocky9.sh
|
# command: /rocky9.sh
|
||||||
restart: "no"
|
# restart: "no"
|
||||||
|
|
||||||
# Debian mirror
|
# # Debian mirror
|
||||||
debian-sync:
|
# debian-sync:
|
||||||
image: ubuntu:24.04
|
# image: ubuntu:24.04
|
||||||
container_name: debian-sync
|
# container_name: debian-sync
|
||||||
user: root
|
# user: root
|
||||||
volumes:
|
# volumes:
|
||||||
- /share/docker_data/repo_mirror/data/debian:/mirror
|
# - /media/nas/qda_1/repos/debian:/mirror
|
||||||
- /share/docker_data/repo_mirror/scripts/debian13.sh:/debian13.sh
|
# - /share/docker_data/repo_mirror/scripts/debian.sh:/debian.sh
|
||||||
command: /debian13.sh
|
# command: /debian.sh
|
||||||
restart: "no"
|
# restart: "no"
|
||||||
# Ubuntu mirror
|
# # Ubuntu mirror
|
||||||
ubuntu-sync:
|
# ubuntu-sync:
|
||||||
image: ubuntu:24.04
|
# image: ubuntu:24.04
|
||||||
container_name: ubuntu-sync
|
# container_name: ubuntu-sync
|
||||||
user: root
|
# user: root
|
||||||
volumes:
|
# volumes:
|
||||||
- /share/docker_data/repo_mirror/data/ubuntu:/mirror
|
# - /media/nas/qda_1/repos/ubuntu:/mirror
|
||||||
- /share/docker_data/repo_mirror/scripts/ubuntu.sh:/ubuntu.sh
|
# - /share/docker_data/repo_mirror/scripts/ubuntu.sh:/ubuntu.sh
|
||||||
command: /ubuntu.sh
|
# command: /ubuntu.sh
|
||||||
restart: "no"
|
# restart: "no"
|
||||||
# Optional: Nginx to serve both mirrors
|
# # Optional: Nginx to serve both mirrors
|
||||||
nginx:
|
nginx:
|
||||||
image: nginx:1.28
|
image: nginx:1.28
|
||||||
container_name: mirror-nginx
|
container_name: mirror-nginx
|
||||||
ports:
|
ports:
|
||||||
- "8383:80"
|
- "8383:80"
|
||||||
volumes:
|
volumes:
|
||||||
- /media/m-server/repos/ubuntu/:/usr/share/nginx/html/ubuntu
|
- /media/nas/qda_1/repos/docker/:/usr/share/nginx/html/docker
|
||||||
- /share/docker_data/repo_mirror/data/rocky:/usr/share/nginx/html/rocky
|
- /media/nas/qda_1/repos/ubuntu/:/usr/share/nginx/html/ubuntu
|
||||||
- /share/docker_data/repo_mirror/data/debian:/usr/share/nginx/html/debian
|
- /media/nas/qda_1/repos/rocky/:/usr/share/nginx/html/rocky
|
||||||
- /share/docker_data/repo_mirror/config/nginx.conf:/etc/nginx/nginx.conf:ro
|
- /share/docker_data/repo_mirror/config/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
Reference in New Issue
Block a user