# DOMAIN=example.com docker stack deploy -c hedgedoc.yml hedgedoc services: app: image: linuxserver/hedgedoc:${VERSION:-1.10.0} volumes: - ${VOLUME_PATH}uploads:/home/hackmd/app/public/uploads environment: - CMD_URL_ADDPORT=${CMD_URL_ADDPORT:-false} - CMD_ALLOW_FREEURL=${CMD_ALLOW_FREEURL:-true} - CMD_PROTOCOL_USESSL=${CMD_PROTOCOL_USESSL:-true} - CMD_ALLOW_EMAIL_REGISTER=${CMD_ALLOW_EMAIL_REGISTER:-true} - CMD_DEFAULT_PERMISSION=${CMD_DEFAULT_PERMISSION:-editable} - CMD_SESSION_SECRET=${CMD_SESSION_SECRET:-myhedgedocs3cr3t} - CMD_DB_URL=postgres://hedgedoc:myp@ssw0rd@postgres:5432/hedgedoc deploy: labels: - traefik.enable=true - traefik.http.routers.hedgedoc-${NUMBER:-1}.rule=Host(`${DOMAIN:-hedgedoc.localhost}`) - traefik.http.routers.hedgedoc-${NUMBER:-1}.entrypoints=${SCHEME:-https} - traefik.http.routers.hedgedoc-${NUMBER:-1}.service=hedgedoc-${NUMBER:-1} - traefik.http.routers.hedgedoc-${NUMBER:-1}.tls.certresolver=letsencrypt - traefik.http.services.hedgedoc-${NUMBER:-1}.loadbalancer.server.port=3000 networks: - internal - traefik postgres: image: postgres:12-alpine environment: - POSTGRES_DB=hedgedoc - POSTGRES_USER=hedgedoc - POSTGRES_PASSWORD=myp@ssw0rd volumes: - ${VOLUME_PATH}postgres:/var/lib/postgresql/data networks: - internal volumes: postgres: uploads: networks: internal: driver: overlay attachable: true traefik: external: true name: traefik-net