86 lines
2.9 KiB
YAML
86 lines
2.9 KiB
YAML
---
|
|
services:
|
|
traefik:
|
|
image: traefik:latest
|
|
restart: unless-stopped
|
|
container_name: traefik
|
|
command:
|
|
- --api.insecure=true # disable in prod
|
|
- --certificatesresolvers.letsencrypt.acme.email=infra@clps.ch
|
|
- --certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme.json
|
|
- --certificatesresolvers.letsencrypt.acme.tlschallenge=true
|
|
- --entrypoints.http.address=:80
|
|
- --entrypoints.http.http.redirections.entrypoint.to=https
|
|
- --entrypoints.https.address=:443
|
|
- --log.level=info
|
|
- --providers.docker.exposedbydefault=true
|
|
- --providers.docker=true
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
- "8069:8080"
|
|
volumes:
|
|
- ./traefik/acme.json:/etc/traefik/acme.json
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
|
|
grafana:
|
|
image: grafana/grafana:latest
|
|
restart: unless-stopped
|
|
container_name: grafana
|
|
environment:
|
|
- GF_SECURITY_ADMIN_USER=admin
|
|
- GF_SECURITY_ADMIN_PASSWORD=grafana
|
|
#labels:
|
|
# - traefik.enable=true
|
|
# - traefik.http.routers.grafana.entrypoints=https
|
|
# - traefik.http.routers.grafana.rule=Host(`grafana.clps.ch`)
|
|
# - traefik.http.routers.grafana.tls.certresolver=letsencrypt
|
|
# - traefik.http.services.grafana.loadbalancer.server.port=3000
|
|
volumes:
|
|
- ./grafana/:/etc/grafana/provisioning/datasources/
|
|
|
|
prometheus:
|
|
image: prom/prometheus:latest
|
|
restart: unless-stopped
|
|
container_name: prometheus
|
|
command:
|
|
- --config.file=/etc/prometheus/prometheus.yml
|
|
#labels:
|
|
# - traefik.enable=true
|
|
# - traefik.http.routers.prometheus.entrypoints=https
|
|
# - traefik.http.routers.prometheus.rule=Host(`prom.clps.ch`)
|
|
# - traefik.http.routers.prometheus.tls.certresolver=letsencrypt
|
|
# - traefik.http.services.prometheus.loadbalancer.server.port=9090
|
|
volumes:
|
|
- ./prometheus/:/etc/prometheus/:ro
|
|
- prom_data:/prometheus/
|
|
|
|
nextcloud:
|
|
image: nextcloud/all-in-one:latest
|
|
restart: unless-stopped
|
|
container_name: nextcloud-aio-mastercontainer
|
|
init: true
|
|
environment:
|
|
- APACHE_PORT=11000
|
|
# - SKIP_DOMAIN_VALIDATION=true
|
|
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.middlewares.nextcloud_headers.headers.hostsProxyHeaders=X-Forwarded-Host
|
|
- traefik.http.middlewares.nextcloud_headers.headers.referrerPolicy=same-origin
|
|
- traefik.http.routers.nextcloud.middlewares=nextcloud_headers
|
|
- traefik.http.routers.nextcloud.rule=Host(`cloud.clps.ch`)
|
|
- traefik.http.routers.nextcloud.entrypoints=https
|
|
- traefik.http.routers.nextcloud.tls.certresolver=letsencrypt
|
|
- traefik.http.services.nextcloud.loadbalancer.server.port=11000
|
|
ports:
|
|
- "8080:8080" # disable in prod
|
|
volumes:
|
|
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
|
|
volumes:
|
|
nextcloud_aio_mastercontainer:
|
|
name: nextcloud_aio_mastercontainer
|
|
prom_data:
|