From 04083fb80d1a9b80406c5d673e44cf9ca7a4ec89 Mon Sep 17 00:00:00 2001 From: Bryan Joshua Pedini Date: Wed, 22 Nov 2023 11:48:25 +0100 Subject: [PATCH] added portainer-specific compose stack --- docker-compose.portainer.yml | 87 ++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 docker-compose.portainer.yml diff --git a/docker-compose.portainer.yml b/docker-compose.portainer.yml new file mode 100644 index 0000000..1ea8a73 --- /dev/null +++ b/docker-compose.portainer.yml @@ -0,0 +1,87 @@ +--- +services: + ferdium-server: + image: ferdium/ferdium-server:{{FERDIUM_VERSION}} + restart: unless-stopped + depends_on: + - mariadb + environment: + - NODE_ENV={{FERDIUM_NODEENV}} + - APP_URL={{FERDIUM_URL}} + - DB_CONNECTION={{FERDIUM_DATABASE}} + - DB_HOST={{FERDIUM_DBHOST}} + - DB_PORT={{FERDIUM_DBPORT}} + - DB_USER={{MARIADB_USER}} + - DB_PASSWORD={{MARIADB_PASSWORD}} + - DB_DATABASE={{MARIADB_DATABASE}} + - DB_SSL={{FERDIUM_DBSSL}} + - MAIL_CONNECTION={{FERDIUM_MAIL}} + - SMTP_HOST={{FERDIUM_MAILHOST}} + - SMTP_PORT={{FERDIUM_MAILPORT}} + - MAIL_SSL={{FERDIUM_MAILSSL}} + - MAIL_USERNAME={{FERDIUM_MAILUSER}} + - MAIL_PASSWORD={{FERDIUM_MAILPASS}} + - MAIL_SENDER={{FERDIUM_MAILSENDER}} + - IS_CREATION_ENABLED={{FERDIUM_RECIPESCREATION}} + - IS_DASHBOARD_ENABLED={{FERDIUM_DASHBOARD}} + - IS_REGISTRATION_ENABLED={{FERDIUM_REGISTRATION}} + - CONNECT_WITH_FRANZ={{FERDIUM_FRANZ}} + - DATA_DIR=/data + - JWT_USE_PEM=true + labels: + ### Section Træfik + - traefik.enable={{TRAEFIK_ENABLED}} + - traefik.docker.network={{TRAEFIK_NETWORK}} + ## HTTP + - traefik.http.routers.http-{{TRAEFIK_ROUTER}}.entrypoints=http + # redirect to HTTPS only + - traefik.http.routers.http-{{TRAEFIK_ROUTER}}.middlewares={{TRAEFIK_HTTP_MIDDLEWARES}} + - traefik.http.routers.http-{{TRAEFIK_ROUTER}}.rule={{TRAEFIK_MATCHRULE}} + ## HTTPS + - traefik.http.routers.https-{{TRAEFIK_ROUTER}}.entrypoints=https + # configure the exposed service + - traefik.http.routers.https-{{TRAEFIK_ROUTER}}.middlewares={{TRAEFIK_HTTPS_MIDDLEWARES}} + - traefik.http.routers.https-{{TRAEFIK_ROUTER}}.rule={{TRAEFIK_MATCHRULE}} + # enable TLS and its certificate provider + - traefik.http.routers.https-{{TRAEFIK_ROUTER}}.tls={{TRAEFIK_TLSENABLED}} + - traefik.http.routers.https-{{TRAEFIK_ROUTER}}.tls.certresolver={{TRAEFIK_CERTRESOLVER}} + # specify a service so a custom port can be used + - traefik.http.services.{{TRAEFIK_SERVICE}}.loadbalancer.server.port={{TRAEFIK_SERVICE_PORT}} + ### Section Diun + - diun.enable={{FERDIUM_DIUN_ENABLE}} + - diun.watch_repo={{FERDIUM_DIUN_WATCHREPO}} + - diun.sort_tags={{FERDIUM_DIUN_SORTALGO}} + - diun.include_tags={{FERDIUM_DIUN_INCLUDE}} + - diun.exclude_tags={{FERDIUM_DIUN_EXCLUDE}} + networks: + - internal + - traefik + volumes: + - {{FERDIUM_DATA}}:/data + - {{FERDIUM_RECIPES}}:/app/recipes + + mariadb: + image: mariadb:{{MARIADB_VERSION}} + restart: unless-stopped + environment: + - MARIADB_ROOT_PASSWORD={{MARIADB_ROOT_PASSWORD}} + - MARIADB_USER={{MARIADB_USER}} + - MARIADB_PASSWORD={{MARIADB_PASSWORD}} + - MARIADB_DATABASE={{MARIADB_DATABASE}} + labels: + ### Section Diun + - diun.enable={{MARIADB_DIUN_ENABLE}} + - diun.watch_repo={{MARIADB_DIUN_WATCHREPO}} + - diun.sort_tags={{MARIADB_DIUN_SORTALGO}} + - diun.include_tags={{MARIADB_DIUN_INCLUDE}} + - diun.exclude_tags={{MARIADB_DIUN_EXCLUDE}} + networks: + - internal + volumes: + - {{MARIADB_DATA}}:/var/lib/mysql + +networks: + internal: + traefik: + external: true + name: {{TRAEFIK_NETWORK}}