pyinfra/templates/joplin/docker-compose.yml
2023-10-04 18:05:47 +02:00

66 lines
2.1 KiB
YAML

networks:
traefik-net:
name: traefik-net
volumes:
traefik-certs:
name: traefik-certs
services:
traefik:
image: traefik:v2.10
command:
- --providers.docker
- --providers.docker.network=traefik-net
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
- --entrypoints.web.http.redirections.entryPoint.to=websecure
- --entrypoints.web.http.redirections.entryPoint.scheme=https
- --entrypoints.web.http.redirections.entrypoint.permanent=true
- --entrypoints.websecure.address=:443
- --certificatesresolvers.le.acme.tlschallenge=true
- --certificatesresolvers.le.acme.email=${EMAIL}
- --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik-certs:/letsencrypt
db:
image: postgres:15
volumes:
- ./data/postgres:/var/lib/postgresql/data
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_DB=${POSTGRES_DATABASE}
joplin:
image: joplin/server:latest
depends_on:
- db
restart: unless-stopped
labels:
- traefik.enable=true
- traefik.http.routers.joplin.rule=Host(`${HOST}`)
- traefik.http.routers.joplin.entrypoints=websecure
- traefik.http.routers.joplin.tls.certresolver=le
- traefik.http.services.joplin.loadbalancer.server.port=22300
environment:
- APP_PORT=22300
- APP_BASE_URL=${HOST}
- DB_CLIENT=pg
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DATABASE=${POSTGRES_DATABASE}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_HOST=db
- MAILER_ENABLED=${MAILER_ENABLED}
- MAILER_HOST=${MAILER_HOST}
- MAILER_PORT=${MAILER_PORT}
- MAILER_SECURITY=${MAILER_SECURITY}
- MAILER_AUTH_USER=${MAILER_AUTH_USER}
- MAILER_AUTH_PASSWORD=${MAILER_AUTH_PASSWORD}
- MAILER_NOREPLY_NAME=${MAILER_NOREPLY_NAME}
- MAILER_NOREPLY_EMAIL=${MAILER_NOREPLY_EMAIL}