Coolify converts ${VAR}:/path bind mounts to named Docker volumes when
the variable is not resolved. Fixed per stack:
- adguard: -> named volumes (data already in Coolify-created volumes)
- authentik: -> named volumes (data already in Coolify-created volumes)
- gitea: -> /opt/gitea/{postgres,data,runner}
- mail-relay: -> /opt/mail-relay/{queue,opendkim,secrets/...}
- media-server: COMMON_PATH -> /opt/media (hardcoded)
- trilium: -> /opt/trilium/data
- wireguard: -> /opt/wg-easy + /lib/modules
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
33 lines
845 B
YAML
33 lines
845 B
YAML
services:
|
|
trilium:
|
|
image: ${TRILIUM_IMAGE}
|
|
container_name: trilium
|
|
pull_policy: always
|
|
restart: unless-stopped
|
|
hostname: ${TRILIUM_HOSTNAME}
|
|
|
|
environment:
|
|
TZ: ${TZ}
|
|
|
|
volumes:
|
|
- /opt/trilium/data:/home/node/trilium-data:Z
|
|
|
|
expose:
|
|
- "${TRILIUM_HTTP_PORT}"
|
|
|
|
networks:
|
|
- proxy
|
|
|
|
labels:
|
|
traefik.http.services.trilium.loadbalancer.server.port: "${TRILIUM_HTTP_PORT}"
|
|
|
|
traefik.http.middlewares.trilium-sec.headers.stsSeconds: "31536000"
|
|
traefik.http.middlewares.trilium-sec.headers.stsIncludeSubdomains: "true"
|
|
traefik.http.middlewares.trilium-sec.headers.stsPreload: "true"
|
|
traefik.http.middlewares.trilium-sec.headers.contentTypeNosniff: "true"
|
|
traefik.http.middlewares.trilium-sec.headers.frameDeny: "true"
|
|
|
|
networks:
|
|
proxy:
|
|
external: true
|