Compare commits

...

12 Commits

Author SHA1 Message Date
Elias 5ded0bcec9 Expose traefik's port 8080 so Uptime Kuma can reach /ping 2025-07-03 10:15:55 +02:00
Elias 1df4988d38 Added hedgedoc on pad.eliasfink.de 2025-07-02 16:18:33 +02:00
Elias ae568f0ba7 Revert "Add portainer healthcheck"
This reverts commit 29b35c2a22.
2025-07-01 18:46:30 +02:00
Elias f5bbe2b949 Add traefik healthcheck 2025-07-01 18:45:35 +02:00
Elias 696ee86d78 Revert "Add traefik healthcheck"
This reverts commit 44803f11b7.
2025-07-01 18:43:09 +02:00
Elias a4238128b3 Introduced uptime kuma 2025-07-01 18:40:10 +02:00
Elias 29b35c2a22 Add portainer healthcheck 2025-07-01 18:39:34 +02:00
Elias d89da82b69 Added digestAuth for traefik dashboard with seperate users file 2025-07-01 18:12:48 +02:00
Elias 6c5986d894 Exclude .dashboardUsers file from git 2025-07-01 18:11:46 +02:00
Elias 44803f11b7 Add traefik healthcheck 2025-07-01 17:31:13 +02:00
Elias aa9f80dbdf Add nextcloud healthchecks 2025-07-01 17:30:17 +02:00
Elias ad9885542c Add gitea healthchecks 2025-07-01 17:30:08 +02:00
10 changed files with 137 additions and 7 deletions
+1
View File
@@ -4,4 +4,5 @@ data
db
# Files
.dashboardUsers
.env
+12 -1
View File
@@ -6,13 +6,19 @@ services:
container_name: gitea
restart: always
depends_on:
- gitea_db
gitea_db:
condition: service_healthy
environment:
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=gitea_db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=${DB_PASSWORD}
healthcheck:
test: curl -f http://localhost:3000/api/healthz || exit 1
interval: 30s
timeout: 10s
retries: 3
networks:
- default
- traefik
@@ -29,6 +35,11 @@ services:
- POSTGRES_DB=gitea
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=${DB_PASSWORD}
healthcheck:
test: pg_isready
interval: 30s
timeout: 10s
retries: 3
networks:
- default
volumes:
+41
View File
@@ -0,0 +1,41 @@
# /services/hedgedoc/compose.yml
services:
hedgedoc:
image: quay.io/hedgedoc/hedgedoc:1.10.3
container_name: hedgedoc
restart: always
depends_on:
hedgedoc_db:
condition: service_healthy
environment:
- CMD_DB_URL=postgres://hedgedoc:${DB_PASSWORD}@hedgedoc_db:5432/hedgedoc
- CMD_DOMAIN=pad.eliasfink.de
- CMD_PROTOCOL_USESSL=true
networks:
- default
- traefik
volumes:
- ./uploads:/hedgedoc/public/uploads
hedgedoc_db:
image: postgres:17
container_name: hedgedoc_db
restart: always
environment:
- POSTGRES_DB=hedgedoc
- POSTGRES_USER=hedgedoc
- POSTGRES_PASSWORD=${DB_PASSWORD}
healthcheck:
test: pg_isready
interval: 30s
timeout: 10s
retries: 3
networks:
- default
volumes:
- ./db:/var/lib/postgresql/data
networks:
traefik:
external: true
+19 -2
View File
@@ -6,14 +6,21 @@ services:
container_name: nextcloud
restart: always
depends_on:
- nextcloud_db
- nextcloud_redis
nextcloud_db:
condition: service_healthy
nextcloud_redis:
condition: service_healthy
environment:
- POSTGRES_HOST=nextcloud_db
- POSTGRES_DB=nextcloud
- POSTGRES_USER=nextcloud
- POSTGRES_PASSWORD=${DB_PASSWORD}
- REDIS_HOST=nextcloud_redis
healthcheck:
test: curl -f http://localhost/status.php || exit 1
interval: 30s
timeout: 10s
retries: 3
networks:
- default
- traefik
@@ -29,6 +36,11 @@ services:
- POSTGRES_DB=nextcloud
- POSTGRES_USER=nextcloud
- POSTGRES_PASSWORD=${DB_PASSWORD}
healthcheck:
test: pg_isready
interval: 30s
timeout: 10s
retries: 3
networks:
- default
volumes:
@@ -38,6 +50,11 @@ services:
image: redis:8
container_name: nextcloud_redis
restart: always
healthcheck:
test: redis-cli ping
interval: 30s
timeout: 10s
retries: 3
networks:
- default
volumes:
+6
View File
@@ -5,11 +5,17 @@ services:
image: traefik:3
container_name: traefik
restart: always
healthcheck:
test: traefik healthcheck
interval: 30s
timeout: 10s
retries: 3
networks:
- traefik
ports:
- 80:80
- 443:443
- 8080:8080
volumes:
- ./:/etc/traefik
+7
View File
@@ -6,4 +6,11 @@ http:
entryPoints:
- https
rule: Host(`traefik.eliasfink.de`)
middlewares:
- traefik-dashboard-auth
service: api@internal
middlewares:
traefik-dashboard-auth:
digestAuth:
usersFile: /etc/traefik/config/.dashboardUsers
+15
View File
@@ -0,0 +1,15 @@
# /services/traefik/config/hedgedoc.yml
http:
routers:
pad:
entryPoints:
- https
rule: Host(`pad.eliasfink.de`)
service: hedgedoc
services:
hedgedoc:
loadBalancer:
servers:
- url: http://hedgedoc:3000
+15
View File
@@ -0,0 +1,15 @@
# /services/traefik/config/uptime-kuma.yml
http:
routers:
status:
entryPoints:
- https
rule: Host(`status.eliasfink.de`)
service: uptime-kuma
services:
uptime-kuma:
loadBalancer:
servers:
- url: http://uptime-kuma:3001
+4 -3
View File
@@ -1,9 +1,12 @@
# /services/traefik/traefik.yml
global:
checkNewVersion: true
sendAnonymousUsage: false
api: {}
ping: {}
entryPoints:
http:
address: :80
@@ -19,8 +22,6 @@ entryPoints:
tls:
certResolver: letsencrypt
api: {}
providers:
file:
directory: /etc/traefik/config
+16
View File
@@ -0,0 +1,16 @@
# /services/uptime-kuma/compose.yml
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: always
networks:
- traefik
volumes:
- ./data:/app/data
- /var/run/docker.sock:/var/run/docker.sock
networks:
traefik:
external: true