This commit is contained in:
2026-04-03 10:44:26 +02:00
commit 736477cf57
19 changed files with 622 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
services:
adguard:
image: adguard/adguardhome:latest
container_name: adguard
restart: unless-stopped
ports:
- "53:53/tcp"
- "53:53/udp"
volumes:
- adguard_work:/opt/adguardhome/work
- adguard_conf:/opt/adguardhome/conf
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.adguard.rule=Host(`adguard.home.jens.pub`)"
- "traefik.http.routers.adguard.entrypoints=websecure"
- "traefik.http.services.adguard.loadbalancer.server.port=80"
volumes:
adguard_work:
adguard_conf:
networks:
proxy:
external: true

View File

@@ -0,0 +1 @@
BESZEL_KEY=

View File

@@ -0,0 +1,37 @@
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel
restart: unless-stopped
environment:
- APP_URL=https://beszel.home.jens.pub
volumes:
- beszel_data:/beszel_data
- beszel_socket:/beszel_socket
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.beszel.rule=Host(`beszel.home.jens.pub`)"
- "traefik.http.routers.beszel.entrypoints=websecure"
- "traefik.http.services.beszel.loadbalancer.server.port=8090"
beszel-agent:
image: henrygd/beszel-agent:latest
container_name: beszel-agent
restart: unless-stopped
network_mode: host
environment:
- LISTEN=/beszel_socket/beszel.sock
- KEY=${BESZEL_KEY}
volumes:
- beszel_socket:/beszel_socket
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes:
beszel_data:
beszel_socket:
networks:
proxy:
external: true

View File

@@ -0,0 +1,22 @@
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- dozzle_data:/data
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.dozzle.rule=Host(`logs.home.jens.pub`)"
- "traefik.http.routers.dozzle.entrypoints=websecure"
- "traefik.http.services.dozzle.loadbalancer.server.port=8080"
volumes:
dozzle_data:
networks:
proxy:
external: true

View File

@@ -0,0 +1,25 @@
services:
portainer:
image: portainer/portainer-ee:lts
container_name: portainer
restart: unless-stopped
ports:
- "9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.portainer.rule=Host(`portainer.home.jens.pub`)"
- "traefik.http.routers.portainer.entrypoints=websecure"
- "traefik.http.routers.portainer.tls.certresolver=letsencrypt"
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
volumes:
portainer_data:
networks:
proxy:
external: true

View File

@@ -0,0 +1,49 @@
services:
traefik:
image: traefik:v3.6
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
command:
- "--api.dashboard=true"
- "--api.insecure=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.websecure.http.tls.certresolver=letsencrypt"
- "--entrypoints.websecure.http.tls.domains[0].main=home.jens.pub"
- "--entrypoints.websecure.http.tls.domains[0].sans=*.home.jens.pub"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.endpoint=unix:///var/run/docker.sock"
- "--certificatesresolvers.letsencrypt.acme.email=mail@jens.pub"
- "--certificatesresolvers.letsencrypt.acme.storage=/acme.json"
- "--certificatesresolvers.letsencrypt.acme.dnschallenge=true"
- "--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=namecheap"
- "--certificatesresolvers.letsencrypt.acme.dnschallenge.resolvers=1.1.1.1:53,8.8.8.8:53"
ports:
- "80:80"
- "443:443"
environment:
- NAMECHEAP_API_USER=jsbeckr
- NAMECHEAP_API_KEY=a2d922b7d4e245dc9f146ab6448c7dd2
- NAMECHEAP_SOURCE_IP=79.219.109.215
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik_acme:/acme
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`traefik.home.jens.pub`)"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.service=api@internal"
volumes:
traefik_acme:
networks:
proxy:
external: true

View File

@@ -0,0 +1,2 @@
ADMIN_TOKEN=
SMTP_PASSWORD=

View File

@@ -0,0 +1,29 @@
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
- ADMIN_TOKEN=${ADMIN_TOKEN}
- SMTP_HOST=smtp.mailbox.org
- SMTP_PORT=587
- SMTP_SECURITY=starttls
- SMTP_FROM=mail@jens.pub
- SMTP_USERNAME=mail@jens.pub
- SMTP_PASSWORD=${SMTP_PASSWORD}
volumes:
- vaultwarden_data:/data
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.vaultwarden.rule=Host(`vault.home.jens.pub`)"
- "traefik.http.routers.vaultwarden.entrypoints=websecure"
- "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
volumes:
vaultwarden_data:
networks:
proxy:
external: true

View File

@@ -0,0 +1 @@
SMTP_PASSWORD=

View File

@@ -0,0 +1,23 @@
services:
watchtower:
image: nickfedor/watchtower:latest
container_name: watchtower
restart: unless-stopped
environment:
- WATCHTOWER_SCHEDULE=0 0 3 * * *
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_NOTIFICATIONS=email
- WATCHTOWER_NOTIFICATION_EMAIL_FROM=mail@jens.pub
- WATCHTOWER_NOTIFICATION_EMAIL_TO=mail@jens.pub
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.mailbox.org
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=mail@jens.pub
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=${SMTP_PASSWORD}
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- proxy
networks:
proxy:
external: true