mirror of
https://github.com/JG2401/HetznerDokployLab.git
synced 2026-10-28 21:00:47 +00:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4c524f53e1 |
+8
-22
@@ -5,6 +5,13 @@
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
#firefly
|
||||
- package-ecosystem: "docker-compose"
|
||||
directory: "/projects/firefly"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "firefly"
|
||||
#immich
|
||||
- package-ecosystem: "docker-compose"
|
||||
directory: "/projects/immich"
|
||||
@@ -88,25 +95,4 @@ updates:
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "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"
|
||||
- "audiobookshelf"
|
||||
@@ -1,24 +0,0 @@
|
||||
# [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.
|
||||
@@ -1,11 +0,0 @@
|
||||
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,6 +1,6 @@
|
||||
services:
|
||||
audiobookshelf:
|
||||
image: ghcr.io/advplyr/audiobookshelf:2.37.2
|
||||
image: ghcr.io/advplyr/audiobookshelf:2.37.1
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 80
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
services:
|
||||
bentopdf:
|
||||
image: ghcr.io/alam00000/bentopdf-simple:2.8.10
|
||||
image: ghcr.io/alam00000/bentopdf-simple:2.8.8
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 8080
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# [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
|
||||
@@ -0,0 +1,81 @@
|
||||
services:
|
||||
firefly:
|
||||
image: fireflyiii/core:version-6.6.2
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "1.0"
|
||||
memory: 1.5G
|
||||
hostname: app
|
||||
container_name: firefly_iii_core
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- rclone.storage=storagebox-crypt
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /opt/media/storagebox/firefly/upload
|
||||
target: /var/www/html/storage/upload
|
||||
bind:
|
||||
propagation: rslave
|
||||
create_host_path: false
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"timeout 10 ls /var/www/html/storage/upload >/dev/null 2>&1 || exit 1"
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 15s
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
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:
|
||||
gitea-mirror:
|
||||
image: ghcr.io/raylabshq/gitea-mirror:v3.45.0
|
||||
image: ghcr.io/raylabshq/gitea-mirror:v3.40.3
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=3", "--spider", "http://localhost:4321/api/health"]
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
services:
|
||||
immich-server:
|
||||
image: ghcr.io/immich-app/immich-server:v3.3.4
|
||||
image: ghcr.io/immich-app/immich-server:v3.2.2
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "1.25"
|
||||
memory: 2G
|
||||
labels:
|
||||
- rclone.storage=storagebox-crypt
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /opt/media/storagebox/immich/library
|
||||
@@ -38,7 +40,7 @@ services:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"curl -f http://localhost:2283/api/server/ping >/dev/null 2>&1"
|
||||
"curl -f http://localhost:2283/api/server/ping >/dev/null 2>&1 && timeout 10 ls /usr/src/app/upload >/dev/null 2>&1 || exit 1"
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 15s
|
||||
@@ -46,7 +48,7 @@ services:
|
||||
start_period: 60s
|
||||
|
||||
immich-machine-learning:
|
||||
image: ghcr.io/immich-app/immich-machine-learning:v3.3.5
|
||||
image: ghcr.io/immich-app/immich-machine-learning:v3.1.0
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
@@ -82,7 +84,7 @@ services:
|
||||
restart: unless-stopped
|
||||
|
||||
immich-database:
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
|
||||
image: ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
services:
|
||||
mealie:
|
||||
image: ghcr.io/mealie-recipes/mealie:v3.29.0
|
||||
image: ghcr.io/mealie-recipes/mealie:v3.25.1
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "1.0"
|
||||
memory: 1G
|
||||
labels:
|
||||
- rclone.storage=storagebox-crypt
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /opt/media/storagebox/mealie
|
||||
@@ -13,6 +15,16 @@ services:
|
||||
bind:
|
||||
propagation: rslave
|
||||
create_host_path: false
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"timeout 10 ls /app/data >/dev/null 2>&1 || exit 1"
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 15s
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
@@ -8,6 +8,7 @@ services:
|
||||
memory: 2G
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- rclone.storage=storagebox-crypt
|
||||
- traefik.http.middlewares.nextcloud-buffering.buffering.maxRequestBodyBytes=0
|
||||
- traefik.http.routers.nextcloud.middlewares=nextcloud-buffering
|
||||
volumes:
|
||||
@@ -18,6 +19,16 @@ services:
|
||||
bind:
|
||||
propagation: rslave
|
||||
create_host_path: false
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"timeout 10 ls /mnt/storagebox >/dev/null 2>&1 || exit 1"
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 15s
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
environment:
|
||||
- NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_DOMAIN}
|
||||
- MYSQL_HOST=nextcloud_db
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
# [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.
|
||||
@@ -1,35 +0,0 @@
|
||||
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:
|
||||
@@ -1,6 +1,6 @@
|
||||
services:
|
||||
paperless:
|
||||
image: ghcr.io/paperless-ngx/paperless-ngx:3.3.4
|
||||
image: ghcr.io/paperless-ngx/paperless-ngx:3.2.1
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
@@ -8,6 +8,8 @@ services:
|
||||
memory: 1.5G
|
||||
container_name: paperless
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- rclone.storage=storagebox-crypt
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /opt/media/storagebox/paperless/data
|
||||
@@ -51,7 +53,7 @@ services:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"curl -f http://localhost:8000 >/dev/null 2>&1"
|
||||
"curl -f http://localhost:8000 >/dev/null 2>&1 && timeout 10 ls /usr/src/paperless/consume >/dev/null 2>&1 || exit 1"
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 15s
|
||||
|
||||
@@ -101,3 +101,14 @@ services:
|
||||
- /opt/rclone/ssh:/root/.ssh:ro
|
||||
- /opt/media/storagebox:/data:rshared
|
||||
- ./logs/storagebox:/logs
|
||||
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"timeout 10 ls /data >/dev/null 2>&1 || exit 1"
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 15s
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
services:
|
||||
seerr:
|
||||
image: ghcr.io/seerr-team/seerr:v3.5.1
|
||||
image: ghcr.io/seerr-team/seerr:v3.5.0
|
||||
init: true
|
||||
container_name: seerr
|
||||
environment:
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# [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`
|
||||
@@ -1,15 +0,0 @@
|
||||
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