Compare commits

...

12 Commits

10 changed files with 137 additions and 7 deletions

1
.gitignore vendored
View File

@@ -4,4 +4,5 @@ data
db
# Files
.dashboardUsers
.env

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
hedgedoc/compose.yml Normal file
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

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:

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

View File

@@ -6,4 +6,11 @@ http:
entryPoints:
- https
rule: Host(`traefik.eliasfink.de`)
service: api@internal
middlewares:
- traefik-dashboard-auth
service: api@internal
middlewares:
traefik-dashboard-auth:
digestAuth:
usersFile: /etc/traefik/config/.dashboardUsers

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

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

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
uptime-kuma/compose.yml Normal file
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