mirror of
https://github.com/JG2401/HetznerDokployLab.git
synced 2026-10-28 21:00:47 +00:00
Compare commits
74
Commits
8dc879fce7
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ae64e96a62 | ||
|
|
790e9ea9f5 | ||
|
|
d2f66c6818 | ||
|
|
c337aad4fa | ||
|
|
82248e6856 | ||
|
|
ea6551ce39 | ||
|
|
891e6b2f15 | ||
|
|
f47e6fda3c | ||
|
|
4d3d9a01f3 | ||
|
|
afb2e12239 | ||
|
|
27cf49f696 | ||
|
|
4bd61d4968 | ||
|
|
4b297f33d3 | ||
|
|
a5ead7f883 | ||
|
|
6a57f9c7be | ||
|
|
45192a7549 | ||
|
|
5d98464265 | ||
|
|
d7b46acf0f | ||
|
|
26679ba759 | ||
|
|
88b972b589 | ||
|
|
3b603f1536 | ||
|
|
ab9dba0944 | ||
|
|
29446ca18c | ||
|
|
4f4c5dba85 | ||
|
|
128bc7fd2e | ||
|
|
c65b484704 | ||
|
|
0e352dd896 | ||
|
|
d678acadf6 | ||
|
|
534caca3df | ||
|
|
2bec890334 | ||
|
|
d9e3faa9dc | ||
|
|
8309cf448c | ||
|
|
6c15bd9d86 | ||
|
|
04ec733589 | ||
|
|
17b246ba97 | ||
|
|
dbae1ea647 | ||
|
|
d98c4dafb4 | ||
|
|
411660a724 | ||
|
|
e198e32986 | ||
|
|
e35a03f7f2 | ||
|
|
2096a99e84 | ||
|
|
6cbd404054 | ||
|
|
c1450a10db | ||
|
|
7fc7270893 | ||
|
|
365f86ce1b | ||
|
|
91446d45e2 | ||
|
|
723bbb620d | ||
|
|
e779440ef7 | ||
|
|
afdd810fc6 | ||
|
|
fc62202221 | ||
|
|
01bb697087 | ||
|
|
1537b9873b | ||
|
|
de934d057a | ||
|
|
7b19367f07 | ||
|
|
82d21a439e | ||
|
|
8dae0e73f7 | ||
|
|
75ec1821cd | ||
|
|
06c0c357de | ||
|
|
faa55f9192 | ||
|
|
fb4abd12be | ||
|
|
aa673f8f42 | ||
|
|
344f7b19e7 | ||
|
|
da71c90de7 | ||
|
|
fcd038f8be | ||
|
|
cd82cc4ce1 | ||
|
|
6ed871979a | ||
|
|
1e3dd52483 | ||
|
|
b68cf32a54 | ||
|
|
af3cff60ff | ||
|
|
ddb3f178eb | ||
|
|
405abd2bbf | ||
|
|
4009840604 | ||
|
|
5ccafbbc5f | ||
|
|
1a0f697dd0 |
+31
-24
@@ -5,13 +5,6 @@
|
|||||||
|
|
||||||
version: 2
|
version: 2
|
||||||
updates:
|
updates:
|
||||||
#firefly
|
|
||||||
- package-ecosystem: "docker-compose"
|
|
||||||
directory: "/projects/firefly"
|
|
||||||
schedule:
|
|
||||||
interval: "weekly"
|
|
||||||
labels:
|
|
||||||
- "firefly"
|
|
||||||
#immich
|
#immich
|
||||||
- package-ecosystem: "docker-compose"
|
- package-ecosystem: "docker-compose"
|
||||||
directory: "/projects/immich"
|
directory: "/projects/immich"
|
||||||
@@ -19,13 +12,6 @@ updates:
|
|||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
labels:
|
labels:
|
||||||
- "immich"
|
- "immich"
|
||||||
#n8n
|
|
||||||
- package-ecosystem: "docker-compose"
|
|
||||||
directory: "/projects/n8n"
|
|
||||||
schedule:
|
|
||||||
interval: "weekly"
|
|
||||||
labels:
|
|
||||||
- "n8n"
|
|
||||||
#paperless
|
#paperless
|
||||||
- package-ecosystem: "docker-compose"
|
- package-ecosystem: "docker-compose"
|
||||||
directory: "/projects/paperless"
|
directory: "/projects/paperless"
|
||||||
@@ -33,20 +19,13 @@ updates:
|
|||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
labels:
|
labels:
|
||||||
- "paperless"
|
- "paperless"
|
||||||
#tandoor
|
#seer
|
||||||
- package-ecosystem: "docker-compose"
|
- package-ecosystem: "docker-compose"
|
||||||
directory: "/projects/tandoor"
|
directory: "/projects/seer"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
labels:
|
labels:
|
||||||
- "tandoor"
|
- "seer"
|
||||||
#jellyseer
|
|
||||||
- package-ecosystem: "docker-compose"
|
|
||||||
directory: "/projects/jellyseer"
|
|
||||||
schedule:
|
|
||||||
interval: "weekly"
|
|
||||||
labels:
|
|
||||||
- "jellyseer"
|
|
||||||
#jellyfin
|
#jellyfin
|
||||||
- package-ecosystem: "docker-compose"
|
- package-ecosystem: "docker-compose"
|
||||||
directory: "/projects/jellyfin"
|
directory: "/projects/jellyfin"
|
||||||
@@ -110,3 +89,31 @@ updates:
|
|||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
labels:
|
labels:
|
||||||
- "audiobookshelf"
|
- "audiobookshelf"
|
||||||
|
#wallos
|
||||||
|
- package-ecosystem: "docker-compose"
|
||||||
|
directory: "/projects/wallos"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
labels:
|
||||||
|
- "wallos"
|
||||||
|
#ntfy
|
||||||
|
- package-ecosystem: "docker-compose"
|
||||||
|
directory: "/projects/ntfy"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
labels:
|
||||||
|
- "ntfy"
|
||||||
|
#anytype
|
||||||
|
- package-ecosystem: "docker-compose"
|
||||||
|
directory: "/projects/anytype"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
labels:
|
||||||
|
- "anytype"
|
||||||
|
#uptime-kuma
|
||||||
|
- package-ecosystem: "docker-compose"
|
||||||
|
directory: "/projects/uptime-kuma"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
labels:
|
||||||
|
- "uptime-kuma"
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# [Anytype](https://anytype.io)
|
||||||
|
|
||||||
|
## anytype
|
||||||
|
|
||||||
|
### General
|
||||||
|
|
||||||
|
- Compose Path: `./projects/anytype/docker-compose.yml`
|
||||||
|
|
||||||
|
### Environment
|
||||||
|
|
||||||
|
- SERVER_IP: `123.123.123.123`
|
||||||
|
|
||||||
|
### Domains
|
||||||
|
|
||||||
|
- Service Name: `anytype`
|
||||||
|
- Container Port: `8443`
|
||||||
|
- HTTPS: `true`
|
||||||
|
- Certificate Provider: `Let's Encrypt`
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
- The container stores its data in the `anytype_data` volume.
|
||||||
|
- Expose your service through Dokploy with the configured host and port.
|
||||||
|
- Adjust the environment values to match your deployment and public URL.
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
services:
|
||||||
|
any-sync-bundle:
|
||||||
|
image: ghcr.io/grishy/any-sync-bundle:1.7.0-2026-10-12
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "33010:33010"
|
||||||
|
- "33020:33020/udp"
|
||||||
|
volumes:
|
||||||
|
- /opt/media/storagebox/anytype:/data
|
||||||
|
environment:
|
||||||
|
ANY_SYNC_BUNDLE_INIT_EXTERNAL_ADDRS: ${SERVER_IP}
|
||||||
@@ -1,10 +1,19 @@
|
|||||||
version: "3.8"
|
|
||||||
services:
|
services:
|
||||||
audiobookshelf:
|
audiobookshelf:
|
||||||
image: ghcr.io/advplyr/audiobookshelf:2.36.1
|
image: ghcr.io/advplyr/audiobookshelf:2.37.2
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
expose:
|
||||||
- 80
|
- 80
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"timeout 10 ls /audiobooks >/dev/null 2>&1 || exit 1"
|
||||||
|
]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 15s
|
||||||
|
retries: 3
|
||||||
|
start_period: 60s
|
||||||
environment:
|
environment:
|
||||||
- TZ=Europe/Berlin
|
- TZ=Europe/Berlin
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
version: "3.8"
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
bentopdf:
|
bentopdf:
|
||||||
image: ghcr.io/alam00000/bentopdf-simple:2.8.8
|
image: ghcr.io/alam00000/bentopdf-simple:2.8.10
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
expose:
|
expose:
|
||||||
- 8080
|
- 8080
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
# [firefly](https://www.firefly-iii.org)
|
|
||||||
|
|
||||||
## firefly
|
|
||||||
|
|
||||||
### General
|
|
||||||
|
|
||||||
- Compose Path: `./projects/firefly/docker-compose.yml`
|
|
||||||
|
|
||||||
### Environment
|
|
||||||
|
|
||||||
- SITE_OWNER: #site owner email-address
|
|
||||||
- DB_CONNECTION: #db connection type like `mysql` or `postgres`
|
|
||||||
- DB_HOST: #db hostname
|
|
||||||
- DB_PORT: #database port - default: `3306`
|
|
||||||
- DB_DATABASE: #database name
|
|
||||||
- DB_USERNAME: #database user-name
|
|
||||||
- DB_PASSWORD: #database password
|
|
||||||
- STATIC_CRON_TOKEN: #32 digits token - use [it-tools token-generator](https://it-tools.tech/token-generator?length=32) to get one
|
|
||||||
- APP_ENV: #default: `production`
|
|
||||||
- APP_KEY: #a base64 php app key - use [Generate Laravel APP_KEY](https://generate-random.org/laravel-key) to get one
|
|
||||||
- APP_URL: #default: `http://app:8080`
|
|
||||||
- TRUSTED_PROXIES: default: `"*"`
|
|
||||||
|
|
||||||
### Domains
|
|
||||||
|
|
||||||
- Service Name: `firefly`
|
|
||||||
- Container Port: `8080`
|
|
||||||
- HTTPS: `true`
|
|
||||||
- Certificate Provider: `Let's Encrypt`
|
|
||||||
|
|
||||||
### Volume Backups
|
|
||||||
|
|
||||||
- Task Name: `db`
|
|
||||||
- Schedule `0 0 * * *`
|
|
||||||
- Service Name: `db`
|
|
||||||
- Volume: `firefly-firefly-xxx`
|
|
||||||
- Keep Latest Backups: `7`
|
|
||||||
- Enabled: true
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
version: '3.8'
|
|
||||||
|
|
||||||
services:
|
|
||||||
firefly:
|
|
||||||
image: fireflyiii/core:latest
|
|
||||||
hostname: app
|
|
||||||
container_name: firefly_iii_core
|
|
||||||
restart: unless-stopped
|
|
||||||
labels:
|
|
||||||
- rclone.storage=storagebox-crypt
|
|
||||||
volumes:
|
|
||||||
- /media/storagebox-crypt/firefly/upload:/var/www/html/storage/upload
|
|
||||||
environment:
|
|
||||||
SITE_OWNER: ${SITE_OWNER}
|
|
||||||
DB_CONNECTION: ${DB_CONNECTION}
|
|
||||||
DB_HOST: ${DB_HOST}
|
|
||||||
DB_PORT: ${DB_PORT}
|
|
||||||
DB_DATABASE: ${DB_DATABASE}
|
|
||||||
DB_USERNAME: ${DB_USERNAME}
|
|
||||||
DB_PASSWORD: ${DB_PASSWORD}
|
|
||||||
STATIC_CRON_TOKEN: ${STATIC_CRON_TOKEN}
|
|
||||||
APP_ENV: ${APP_ENV}
|
|
||||||
APP_KEY: ${APP_KEY}
|
|
||||||
APP_URL: ${APP_URL}
|
|
||||||
TRUSTED_PROXIES: ${TRUSTED_PROXIES}
|
|
||||||
networks:
|
|
||||||
- dokploy-network
|
|
||||||
|
|
||||||
cron:
|
|
||||||
image: alpine:3.24.2
|
|
||||||
restart: unless-stopped
|
|
||||||
container_name: firefly_iii_cron
|
|
||||||
environment:
|
|
||||||
STATIC_CRON_TOKEN: ${STATIC_CRON_TOKEN}
|
|
||||||
command: sh -c "
|
|
||||||
apk add tzdata && \
|
|
||||||
(ln -s /usr/share/zoneinfo/$$TZ /etc/localtime || true) && \
|
|
||||||
echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/$$STATIC_CRON_TOKEN;echo\" | crontab - && \
|
|
||||||
crond -f -L /dev/stdout"
|
|
||||||
networks:
|
|
||||||
- dokploy-network
|
|
||||||
|
|
||||||
db:
|
|
||||||
image: mariadb:13.0
|
|
||||||
hostname: db
|
|
||||||
container_name: firefly_iii_db
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
MYSQL_RANDOM_ROOT_PASSWORD: ${MYSQL_RANDOM_ROOT_PASSWORD}
|
|
||||||
MYSQL_USER: ${DB_USERNAME}
|
|
||||||
MYSQL_PASSWORD: ${DB_PASSWORD}
|
|
||||||
MYSQL_DATABASE: ${DB_DATABASE}
|
|
||||||
volumes:
|
|
||||||
- firefly_iii_db:/var/lib/mysql
|
|
||||||
networks:
|
|
||||||
- dokploy-network
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
firefly_iii_db:
|
|
||||||
|
|
||||||
networks:
|
|
||||||
dokploy-network:
|
|
||||||
external: true
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
gitea-mirror:
|
gitea-mirror:
|
||||||
image: ghcr.io/raylabshq/gitea-mirror:v3.40.1
|
image: ghcr.io/raylabshq/gitea-mirror:v3.46.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "wget", "--no-verbose", "--tries=3", "--spider", "http://localhost:4321/api/health"]
|
test: ["CMD", "wget", "--no-verbose", "--tries=3", "--spider", "http://localhost:4321/api/health"]
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
version: "3.8"
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
gitea:
|
gitea:
|
||||||
image: docker.gitea.com/gitea:1.27.3
|
image: docker.gitea.com/gitea:1.27.3
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
version: "3.9"
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
immich-server:
|
immich-server:
|
||||||
image: ghcr.io/immich-app/immich-server:v3.1.0
|
image: ghcr.io/immich-app/immich-server:v3.3.5
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpus: "1.25"
|
cpus: "1.25"
|
||||||
memory: 2G
|
memory: 2G
|
||||||
labels:
|
|
||||||
- rclone.storage=storagebox-crypt
|
|
||||||
volumes:
|
volumes:
|
||||||
- /opt/media/storagebox/immich/library:/usr/src/app/upload
|
- type: bind
|
||||||
|
source: /opt/media/storagebox/immich/library
|
||||||
|
target: /usr/src/app/upload
|
||||||
|
bind:
|
||||||
|
propagation: rslave
|
||||||
|
create_host_path: false
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
depends_on:
|
depends_on:
|
||||||
immich-redis:
|
immich-redis:
|
||||||
@@ -32,15 +33,20 @@ services:
|
|||||||
REDIS_DBINDEX: ${REDIS_DBINDEX}
|
REDIS_DBINDEX: ${REDIS_DBINDEX}
|
||||||
TZ: ${TZ}
|
TZ: ${TZ}
|
||||||
UPLOAD_LOCATION: ${UPLOAD_LOCATION}
|
UPLOAD_LOCATION: ${UPLOAD_LOCATION}
|
||||||
restart: always
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:2283/server-info/ping"]
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"curl -f http://localhost:2283/api/server/ping >/dev/null 2>&1"
|
||||||
|
]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 15s
|
||||||
retries: 3
|
retries: 3
|
||||||
|
start_period: 60s
|
||||||
|
|
||||||
immich-machine-learning:
|
immich-machine-learning:
|
||||||
image: ghcr.io/immich-app/immich-machine-learning:v3.1.0
|
image: ghcr.io/immich-app/immich-machine-learning:v3.3.1
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
@@ -52,7 +58,7 @@ services:
|
|||||||
REDIS_HOSTNAME: ${REDIS_HOSTNAME}
|
REDIS_HOSTNAME: ${REDIS_HOSTNAME}
|
||||||
REDIS_PORT: ${REDIS_PORT}
|
REDIS_PORT: ${REDIS_PORT}
|
||||||
REDIS_DBINDEX: ${REDIS_DBINDEX}
|
REDIS_DBINDEX: ${REDIS_DBINDEX}
|
||||||
restart: always
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:3003/ping"]
|
test: ["CMD", "curl", "-f", "http://localhost:3003/ping"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
@@ -73,11 +79,15 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
restart: always
|
restart: unless-stopped
|
||||||
|
|
||||||
immich-database:
|
immich-database:
|
||||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
|
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: "1.0"
|
||||||
|
memory: 2G
|
||||||
volumes:
|
volumes:
|
||||||
- immich-postgres:/var/lib/postgresql/data
|
- immich-postgres:/var/lib/postgresql/data
|
||||||
environment:
|
environment:
|
||||||
@@ -106,7 +116,7 @@ services:
|
|||||||
'-c',
|
'-c',
|
||||||
'wal_compression=on',
|
'wal_compression=on',
|
||||||
]
|
]
|
||||||
restart: always
|
restart: unless-stopped
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
dokploy-network:
|
dokploy-network:
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
version: "3.8"
|
|
||||||
services:
|
services:
|
||||||
jellyfin:
|
jellyfin:
|
||||||
image: jellyfin/jellyfin:12
|
image: jellyfin/jellyfin:12
|
||||||
@@ -29,4 +28,3 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
config:
|
config:
|
||||||
cache:
|
cache:
|
||||||
media:
|
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
# [jellyseer](https://docs.seerr.dev/)
|
|
||||||
|
|
||||||
## jellyseer
|
|
||||||
|
|
||||||
### General
|
|
||||||
|
|
||||||
- Compose Path: `./projects/jellyseer/docker-compose.yml`
|
|
||||||
|
|
||||||
### Environment
|
|
||||||
|
|
||||||
- TIMEZONE: #your time zone - for example `Europe/Berlin`
|
|
||||||
|
|
||||||
### Domains
|
|
||||||
|
|
||||||
- Service Name: `jellyseer`
|
|
||||||
- Container Port: `5055`
|
|
||||||
- HTTPS: `true`
|
|
||||||
- Certificate Provider: `Let's Encrypt`
|
|
||||||
|
|
||||||
### Volume Backups
|
|
||||||
|
|
||||||
- Task Name: `jellyseer`
|
|
||||||
- Schedule `0 0 * * *`
|
|
||||||
- Service Name: `jellyseer`
|
|
||||||
- Volume: `jellyseer-jellyseer-xxx`
|
|
||||||
- Keep Latest Backups: `1`
|
|
||||||
- Enabled: true
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
services:
|
|
||||||
jellyseerr:
|
|
||||||
image: ghcr.io/fallenbagel/jellyseerr:2.7.3
|
|
||||||
init: true
|
|
||||||
container_name: jellyseerr
|
|
||||||
environment:
|
|
||||||
- TZ=${TIMEZONE}
|
|
||||||
volumes:
|
|
||||||
- config:/app/config
|
|
||||||
healthcheck:
|
|
||||||
test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1
|
|
||||||
start_period: 20s
|
|
||||||
timeout: 3s
|
|
||||||
interval: 15s
|
|
||||||
retries: 3
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
config:
|
|
||||||
@@ -1,13 +1,18 @@
|
|||||||
services:
|
services:
|
||||||
mealie:
|
mealie:
|
||||||
image: ghcr.io/mealie-recipes/mealie:latest
|
image: ghcr.io/mealie-recipes/mealie:v3.29.0
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpus: "1.0"
|
cpus: "1.0"
|
||||||
memory: 1G
|
memory: 1G
|
||||||
volumes:
|
volumes:
|
||||||
- /opt/media/storagebox/mealie:/app/data/
|
- type: bind
|
||||||
|
source: /opt/media/storagebox/mealie
|
||||||
|
target: /app/data/
|
||||||
|
bind:
|
||||||
|
propagation: rslave
|
||||||
|
create_host_path: false
|
||||||
environment:
|
environment:
|
||||||
PUID: 1000
|
PUID: 1000
|
||||||
PGID: 1000
|
PGID: 1000
|
||||||
@@ -31,3 +36,4 @@ services:
|
|||||||
SMTP_FROM_EMAIL: ${SMTP_FROM_EMAIL}
|
SMTP_FROM_EMAIL: ${SMTP_FROM_EMAIL}
|
||||||
SMTP_USER: ${SMTP_USER}
|
SMTP_USER: ${SMTP_USER}
|
||||||
SMTP_PASSWORD: ${SMTP_PASSWORD}
|
SMTP_PASSWORD: ${SMTP_PASSWORD}
|
||||||
|
restart: unless-stopped
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
# [n8n](https://n8n.io)
|
|
||||||
|
|
||||||
## n8n
|
|
||||||
|
|
||||||
### General
|
|
||||||
|
|
||||||
- Compose Path: `./projects/n8n/n8n.yml`
|
|
||||||
|
|
||||||
### Environment
|
|
||||||
|
|
||||||
- N8N_HOST: same as host in #[domains](#domains)
|
|
||||||
- N8N_PORT: #default `5678`
|
|
||||||
- N8N_PROTOCOL: #default: `http`
|
|
||||||
- NODE_ENV: #default: `production`
|
|
||||||
- WEBHOOK_URL: #default: `https://${N8N_HOST}/`
|
|
||||||
- GENERIC_TIMEZONE: #local time zone - example: `Europe/Berlin`
|
|
||||||
- N8N_SECURE_COOKIE: #default `false`
|
|
||||||
|
|
||||||
### Domains
|
|
||||||
|
|
||||||
- Service Name: `n8n`
|
|
||||||
- Container Port: `5678`
|
|
||||||
- HTTPS: `true`
|
|
||||||
- Certificate Provider: `Let's Encrypt`
|
|
||||||
|
|
||||||
### Volume Backups
|
|
||||||
|
|
||||||
- Task Name: `n8n`
|
|
||||||
- Schedule `0 0 * * *`
|
|
||||||
- Service Name: `n8n`
|
|
||||||
- Volume: `n8n-n8n-xxx`
|
|
||||||
- Keep Latest Backups: `7`
|
|
||||||
- Enabled: true
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
services:
|
|
||||||
n8n:
|
|
||||||
image: docker.n8n.io/n8nio/n8n:2.29.10
|
|
||||||
restart: always
|
|
||||||
labels:
|
|
||||||
- rclone.storage=storagebox-crypt
|
|
||||||
environment:
|
|
||||||
- N8N_HOST=${N8N_HOST}
|
|
||||||
- N8N_PORT=${N8N_PORT}
|
|
||||||
- N8N_PROTOCOL=http
|
|
||||||
- NODE_ENV=production
|
|
||||||
- WEBHOOK_URL=https://${N8N_HOST}/
|
|
||||||
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
|
|
||||||
- N8N_SECURE_COOKIE=false
|
|
||||||
- N8N_RESTRICT_FILE_ACCESS_TO=/home/node
|
|
||||||
volumes:
|
|
||||||
- /opt/media/storagebox/paperless/consume:/home/node/paperless/consume:rw
|
|
||||||
- n8n_data:/home/node/.n8n
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
n8n_data:
|
|
||||||
@@ -1,14 +1,23 @@
|
|||||||
services:
|
services:
|
||||||
nextcloud:
|
nextcloud:
|
||||||
image: nextcloud:35.0.0
|
image: nextcloud:35.0.1
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: "1.0"
|
||||||
|
memory: 2G
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
labels:
|
labels:
|
||||||
- rclone.storage=storagebox-crypt
|
|
||||||
- traefik.http.middlewares.nextcloud-buffering.buffering.maxRequestBodyBytes=0
|
- traefik.http.middlewares.nextcloud-buffering.buffering.maxRequestBodyBytes=0
|
||||||
- traefik.http.routers.nextcloud.middlewares=nextcloud-buffering
|
- traefik.http.routers.nextcloud.middlewares=nextcloud-buffering
|
||||||
volumes:
|
volumes:
|
||||||
- nextcloud_data:/var/www/html
|
- nextcloud_data:/var/www/html
|
||||||
- /opt/media/storagebox/nextcloud:/mnt/storagebox
|
- type: bind
|
||||||
|
source: /opt/media/storagebox/nextcloud
|
||||||
|
target: /mnt/storagebox
|
||||||
|
bind:
|
||||||
|
propagation: rslave
|
||||||
|
create_host_path: false
|
||||||
environment:
|
environment:
|
||||||
- NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_DOMAIN}
|
- NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_DOMAIN}
|
||||||
- MYSQL_HOST=nextcloud_db
|
- MYSQL_HOST=nextcloud_db
|
||||||
@@ -21,6 +30,11 @@ services:
|
|||||||
|
|
||||||
nextcloud_db:
|
nextcloud_db:
|
||||||
image: mariadb
|
image: mariadb
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: "0.75"
|
||||||
|
memory: 1G
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- nextcloud_db_data:/var/lib/mysql
|
- nextcloud_db_data:/var/lib/mysql
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
# [ntfy](https://ntfy.sh)
|
||||||
|
|
||||||
|
## ntfy
|
||||||
|
|
||||||
|
### General
|
||||||
|
|
||||||
|
- Compose Path: `./projects/ntfy/docker-compose.yml`
|
||||||
|
|
||||||
|
### Environment
|
||||||
|
|
||||||
|
- NTFY_HOST: `https://ntfy.example.com`
|
||||||
|
- HTTP_PORT: `80`
|
||||||
|
- TZ: `Europe/Berlin`
|
||||||
|
|
||||||
|
### Domains
|
||||||
|
|
||||||
|
- Service Name: `ntfy`
|
||||||
|
- Container Port: `80`
|
||||||
|
- HTTPS: `true`
|
||||||
|
- Certificate Provider: `Let's Encrypt`
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
- ntfy stores persistent state in the `ntfy_data` volume.
|
||||||
|
- Set `NTFY_BASE_URL` to the public URL used by your reverse proxy.
|
||||||
|
- If you want authentication, configure the ntfy auth db or add a custom wrapper config.
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
services:
|
||||||
|
ntfy:
|
||||||
|
image: binwiederhier/ntfy:v2.34
|
||||||
|
restart: unless-stopped
|
||||||
|
command:
|
||||||
|
- serve
|
||||||
|
environment:
|
||||||
|
NTFY_BASE_URL: https://${NTFY_HOST}
|
||||||
|
NTFY_LISTEN_HTTP: ":${HTTP_PORT}"
|
||||||
|
NTFY_BEHIND_PROXY: "true"
|
||||||
|
NTFY_AUTH_FILE: /var/lib/ntfy/user.db
|
||||||
|
NTFY_AUTH_DEFAULT_ACCESS: deny-all
|
||||||
|
NTFY_ENABLE_LOGIN: "true"
|
||||||
|
NTFY_REQUIRE_LOGIN: "true"
|
||||||
|
NTFY_CACHE_FILE: /var/cache/ntfy/cache.db
|
||||||
|
NTFY_CACHE_DURATION: 24h
|
||||||
|
NTFY_UPSTREAM_BASE_URL: https://ntfy.sh
|
||||||
|
TZ: ${TZ}
|
||||||
|
expose:
|
||||||
|
- "${HTTP_PORT}"
|
||||||
|
volumes:
|
||||||
|
- ntfy-data:/var/lib/ntfy
|
||||||
|
- ntfy-cache:/var/cache/ntfy
|
||||||
|
- ../files/server.yml:/etc/ntfy/server.yml:ro
|
||||||
|
- ../files/templates:/etc/ntfy/templates:ro
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:${HTTP_PORT}/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"]
|
||||||
|
interval: 60s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
ntfy-data:
|
||||||
|
ntfy-cache:
|
||||||
@@ -16,10 +16,11 @@
|
|||||||
- PAPERLESS_URL: #same as [domains](#domains) host
|
- PAPERLESS_URL: #same as [domains](#domains) host
|
||||||
- PAPERLESS_ALLOWED_HOSTS:
|
- PAPERLESS_ALLOWED_HOSTS:
|
||||||
- PAPERLESS_DBHOST: #db container-name
|
- PAPERLESS_DBHOST: #db container-name
|
||||||
|
- PAPERLESS_DBNAME: #default: `paperless`
|
||||||
|
- PAPERLESS_DBUSER:
|
||||||
- PAPERLESS_DBPASS: #same as db POSTGRES_PASSWORD
|
- PAPERLESS_DBPASS: #same as db POSTGRES_PASSWORD
|
||||||
- POSTGRES_DB: #default: `paperless`
|
- PAPERLESS_OCR_OUTPUT_TYPE:
|
||||||
- POSTGRES_USER:
|
- PAPERLESS_SECRET_KEY:
|
||||||
- POSTGRES_PASSWORD: #database password - same as PAPERLESS_DBPASS
|
|
||||||
|
|
||||||
### Domains
|
### Domains
|
||||||
|
|
||||||
@@ -30,15 +31,6 @@
|
|||||||
|
|
||||||
### Volume Backups
|
### Volume Backups
|
||||||
|
|
||||||
#### redis
|
|
||||||
|
|
||||||
- Task Name: `redis`
|
|
||||||
- Schedule `0 0 * * *`
|
|
||||||
- Service Name: `redis`
|
|
||||||
- Volume: `paperless-paperless-xxx`
|
|
||||||
- Keep Latest Backups: `7`
|
|
||||||
- Enabled: true
|
|
||||||
|
|
||||||
#### db
|
#### db
|
||||||
|
|
||||||
- Task Name: `db`
|
- Task Name: `db`
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
version: '3.8'
|
|
||||||
services:
|
services:
|
||||||
paperless:
|
paperless:
|
||||||
image: ghcr.io/paperless-ngx/paperless-ngx:3.2.1
|
image: ghcr.io/paperless-ngx/paperless-ngx:3.3.4
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
@@ -9,13 +8,31 @@ services:
|
|||||||
memory: 1.5G
|
memory: 1.5G
|
||||||
container_name: paperless
|
container_name: paperless
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
labels:
|
|
||||||
- rclone.storage=storagebox-crypt
|
|
||||||
volumes:
|
volumes:
|
||||||
- /opt/media/storagebox/paperless/data:/usr/src/paperless/data
|
- type: bind
|
||||||
- /opt/media/storagebox/paperless/media:/usr/src/paperless/media
|
source: /opt/media/storagebox/paperless/data
|
||||||
- /opt/media/storagebox/paperless/export:/usr/src/paperless/export
|
target: /usr/src/paperless/data
|
||||||
- /opt/media/storagebox/paperless/consume:/usr/src/paperless/consume
|
bind:
|
||||||
|
propagation: rslave
|
||||||
|
create_host_path: false
|
||||||
|
- type: bind
|
||||||
|
source: /opt/media/storagebox/paperless/media
|
||||||
|
target: /usr/src/paperless/media
|
||||||
|
bind:
|
||||||
|
propagation: rslave
|
||||||
|
create_host_path: false
|
||||||
|
- type: bind
|
||||||
|
source: /opt/media/storagebox/paperless/export
|
||||||
|
target: /usr/src/paperless/export
|
||||||
|
bind:
|
||||||
|
propagation: rslave
|
||||||
|
create_host_path: false
|
||||||
|
- type: bind
|
||||||
|
source: /opt/media/storagebox/paperless/consume
|
||||||
|
target: /usr/src/paperless/consume
|
||||||
|
bind:
|
||||||
|
propagation: rslave
|
||||||
|
create_host_path: false
|
||||||
environment:
|
environment:
|
||||||
PAPERLESS_REDIS: ${PAPERLESS_REDIS}
|
PAPERLESS_REDIS: ${PAPERLESS_REDIS}
|
||||||
PAPERLESS_TIME_ZONE: ${PAPERLESS_TIME_ZONE}
|
PAPERLESS_TIME_ZONE: ${PAPERLESS_TIME_ZONE}
|
||||||
@@ -25,19 +42,26 @@ services:
|
|||||||
PAPERLESS_URL: https://${PAPERLESS_URL}
|
PAPERLESS_URL: https://${PAPERLESS_URL}
|
||||||
PAPERLESS_ALLOWED_HOSTS: ${PAPERLESS_ALLOWED_HOSTS}
|
PAPERLESS_ALLOWED_HOSTS: ${PAPERLESS_ALLOWED_HOSTS}
|
||||||
PAPERLESS_DBHOST: ${PAPERLESS_DBHOST}
|
PAPERLESS_DBHOST: ${PAPERLESS_DBHOST}
|
||||||
|
PAPERLESS_DBNAME: ${PAPERLESS_DBNAME}
|
||||||
|
PAPERLESS_DBUSER: ${PAPERLESS_DBUSER}
|
||||||
PAPERLESS_DBPASS: ${PAPERLESS_DBPASS}
|
PAPERLESS_DBPASS: ${PAPERLESS_DBPASS}
|
||||||
PAPERLESS_OCR_OUTPUT_TYPE: ${PAPERLESS_OCR_OUTPUT_TYPE}
|
PAPERLESS_OCR_OUTPUT_TYPE: ${PAPERLESS_OCR_OUTPUT_TYPE}
|
||||||
PAPERLESS_SECRET_KEY: ${PAPERLESS_SECRET_KEY}
|
PAPERLESS_SECRET_KEY: ${PAPERLESS_SECRET_KEY}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:8000"]
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"curl -f http://localhost:8000 >/dev/null 2>&1"
|
||||||
|
]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 15s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
start_period: 60s
|
||||||
networks:
|
networks:
|
||||||
- dokploy-network
|
- dokploy-network
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:8.10.1
|
image: redis:8.10.2
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
@@ -45,8 +69,6 @@ services:
|
|||||||
memory: 256M
|
memory: 256M
|
||||||
container_name: paperless-redis
|
container_name: paperless-redis
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
|
||||||
- paperlessredis:/user/local/etc/redis
|
|
||||||
networks:
|
networks:
|
||||||
- dokploy-network
|
- dokploy-network
|
||||||
|
|
||||||
@@ -70,7 +92,6 @@ services:
|
|||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
paperlessdb:
|
paperlessdb:
|
||||||
paperlessredis:
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
dokploy-network:
|
dokploy-network:
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
version: "3.9"
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
rclone-seedbox:
|
rclone-seedbox:
|
||||||
image: rclone/rclone:1.75.1
|
image: rclone/rclone:1.75.2
|
||||||
container_name: rclone-seedbox
|
container_name: rclone-seedbox
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
@@ -48,9 +46,19 @@ services:
|
|||||||
- /opt/media/seedbox:/data:rshared
|
- /opt/media/seedbox:/data:rshared
|
||||||
- ./logs/seedbox:/logs
|
- ./logs/seedbox:/logs
|
||||||
|
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"timeout 10 ls /data >/dev/null 2>&1 || exit 1"
|
||||||
|
]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 15s
|
||||||
|
retries: 3
|
||||||
|
start_period: 60s
|
||||||
|
|
||||||
rclone-storagebox-crypt:
|
rclone-storagebox-crypt:
|
||||||
image: rclone/rclone:1.75.1
|
image: rclone/rclone:1.75.2
|
||||||
container_name: rclone-storagebox-crypt
|
container_name: rclone-storagebox-crypt
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# [seer](https://docs.seerr.dev/)
|
||||||
|
|
||||||
|
## seer
|
||||||
|
|
||||||
|
### General
|
||||||
|
|
||||||
|
- Compose Path: `./projects/seer/docker-compose.yml`
|
||||||
|
|
||||||
|
### Domains
|
||||||
|
|
||||||
|
- Service Name: `seer`
|
||||||
|
- Container Port: `5055`
|
||||||
|
- HTTPS: `true`
|
||||||
|
- Certificate Provider: `Let's Encrypt`
|
||||||
|
|
||||||
|
### Volume Backups
|
||||||
|
|
||||||
|
- Task Name: `seer`
|
||||||
|
- Schedule `0 0 * * *`
|
||||||
|
- Service Name: `seer`
|
||||||
|
- Volume: `seer-seer-xxx`
|
||||||
|
- Keep Latest Backups: `1`
|
||||||
|
- Enabled: true
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
services:
|
||||||
|
seerr:
|
||||||
|
image: ghcr.io/seerr-team/seerr:v3.5.1
|
||||||
|
init: true
|
||||||
|
container_name: seerr
|
||||||
|
environment:
|
||||||
|
- LOG_LEVEL=debug
|
||||||
|
- TZ=Europe/Berlin
|
||||||
|
- PORT=5055 #optional
|
||||||
|
ports:
|
||||||
|
- 5055:5055
|
||||||
|
volumes:
|
||||||
|
- config:/app/config
|
||||||
|
healthcheck:
|
||||||
|
test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/settings/public || exit 1
|
||||||
|
start_period: 20s
|
||||||
|
timeout: 3s
|
||||||
|
interval: 15s
|
||||||
|
retries: 3
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
config:
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
# [Uptime Kuma](https://github.com/louislam/uptime-kuma)
|
||||||
|
|
||||||
|
## uptime-kuma
|
||||||
|
|
||||||
|
### General
|
||||||
|
|
||||||
|
- Compose Path: `./projects/uptime-kuma/docker-compose.yml`
|
||||||
|
|
||||||
|
### Domains
|
||||||
|
|
||||||
|
- Service Name: `uptime-kuma`
|
||||||
|
- Container Port: `3001`
|
||||||
|
- HTTPS: `true`
|
||||||
|
- Certificate Provider: `Let's Encrypt`
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
- The container persists its data in the `uptime_kuma_data` volume.
|
||||||
|
- Expose the service through Dokploy using the generated hostname.
|
||||||
|
- The default web UI is available on port `3001` inside the container.
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
services:
|
||||||
|
uptime-kuma:
|
||||||
|
image: louislam/uptime-kuma:2.5.7
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- uptime-kuma-data:/app/data
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
uptime-kuma-data:
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
vaultwarden:
|
vaultwarden:
|
||||||
image: vaultwarden/server:1.37.3
|
image: vaultwarden/server:1.37.4
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
DOMAIN: ${DOMAIN}
|
DOMAIN: ${DOMAIN}
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# [Wallos](https://github.com/ellite/Wallos)
|
||||||
|
|
||||||
|
## Wallos
|
||||||
|
|
||||||
|
### General
|
||||||
|
|
||||||
|
- Compose Path: `./projects/wallos/docker-compose.yml`
|
||||||
|
|
||||||
|
### Domains
|
||||||
|
|
||||||
|
- Service Name: `wallos`
|
||||||
|
- Container Port: `80`
|
||||||
|
- HTTPS: `true`
|
||||||
|
- Certificate Provider: `Let's Encrypt`
|
||||||
|
|
||||||
|
### Volume Backups
|
||||||
|
|
||||||
|
- Service Name: `wallos`
|
||||||
|
- Volumes: `wallos-wallos_db-xxx`, `wallos-wallos_logos-xxx`
|
||||||
|
- Keep Latest Backups: `7`
|
||||||
|
- Enabled: `true`
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
services:
|
||||||
|
wallos:
|
||||||
|
image: bellamy/wallos:5.10.1
|
||||||
|
expose:
|
||||||
|
- '80'
|
||||||
|
environment:
|
||||||
|
TZ: 'Europe/Berlin'
|
||||||
|
volumes:
|
||||||
|
- wallos_db:/var/www/html/db
|
||||||
|
- wallos_logos:/var/www/html/images/uploads/logos
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
wallos_db:
|
||||||
|
wallos_logos:
|
||||||
Reference in New Issue
Block a user