app-store/apps/joplin/docker-compose.yml

65 lines
2.3 KiB
YAML

version: "3.7"
services:
joplin:
container_name: joplin
image: florider89/joplin-server:2.14.2
restart: unless-stopped
depends_on:
- db-joplin
ports:
- ${APP_PORT}:22300
dns:
- ${DNS_IP}
environment:
- APP_PORT=22300
- APP_BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}/
- DB_CLIENT=pg
- POSTGRES_PASSWORD=${JOPLIN_DB_PASSWORD}
- POSTGRES_USER=tipi
- POSTGRES_DATABASE=joplin
- POSTGRES_PORT=5432
- POSTGRES_HOST=db-joplin
- MAX_TIME_DRIFT=0
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.joplin-web-redirect.redirectscheme.scheme: https
traefik.http.services.joplin.loadbalancer.passhostheader: true
traefik.http.services.joplin.loadbalancer.server.port: 22300
# Web
traefik.http.routers.joplin-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.joplin-insecure.entrypoints: web
traefik.http.routers.joplin-insecure.service: joplin
traefik.http.routers.joplin-insecure.middlewares: joplin-web-redirect
# Websecure
traefik.http.routers.joplin.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.joplin.entrypoints: websecure
traefik.http.routers.joplin.service: joplin
traefik.http.routers.joplin.tls.certresolver: myresolver
# Local domain
traefik.http.routers.joplin-local-insecure.rule: Host(`joplin.${LOCAL_DOMAIN}`)
traefik.http.routers.joplin-local-insecure.entrypoints: web
traefik.http.routers.joplin-local-insecure.service: joplin
traefik.http.routers.joplin-local-insecure.middlewares: joplin-web-redirect
# Local domain secure
traefik.http.routers.joplin-local.rule: Host(`joplin.${LOCAL_DOMAIN}`)
traefik.http.routers.joplin-local.entrypoints: websecure
traefik.http.routers.joplin-local.service: joplin
traefik.http.routers.joplin-local.tls: true
db-joplin:
container_name: db-joplin
image: postgres:14.2
volumes:
- ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=${JOPLIN_DB_PASSWORD}
- POSTGRES_USER=tipi
- POSTGRES_DB=joplin
networks:
- tipi_main_network