From 65115108ce968f6a1b5e17ecbe8c768da07e6d4b Mon Sep 17 00:00:00 2001 From: trav Date: Tue, 26 Mar 2024 14:51:08 -0400 Subject: [PATCH] new grist recipe --- compose.yml | 82 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 62 insertions(+), 20 deletions(-) diff --git a/compose.yml b/compose.yml index a2c3805..81c1590 100644 --- a/compose.yml +++ b/compose.yml @@ -1,32 +1,74 @@ ---- -version: "3.8" - services: - app: - image: nginx:1.20.0 + grist: + image: gristlabs/grist:1.1.7 networks: - proxy + - internal + environment: + - GRIST_DATABASE_URL=postgresql://${STACK_NAME}_db:5432/grist + - GRIST_REDIS_URL=redis://${STACK_NAME}_redis:6379 + - GRIST_DATA_DIR=/var/grist-data + - GRIST_SUPPORT_ANON + - GRIST_SESSION_SECRET + - GRIST_SANDBOX_FLAVOR + - APP_HOME_URL=https://${DOMAIN} + - APP_DOC_URL=https://${DOMAIN} + - GRIST_SINGLE_ORG + - GRIST_ORG_IN_PATH + - COOKIE_MAX_AGE + - GRIST_FORCE_LOGIN + - GRIST_HIDE_UI_ELEMENTS + - GRIST_DEFAULT_EMAIL + volumes: + - grist_keys:/keys + - grist_data:/persist + depends_on: + - db + - redis deploy: - restart_policy: - condition: on-failure labels: - "traefik.enable=true" - - "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=80" - - "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})" + - "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=8484" + - "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)" - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - ## Redirect from EXTRA_DOMAINS to DOMAIN - #- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" - #- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true" - #- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" - - "coop-cloud.${STACK_NAME}.version=" - healthcheck: - test: ["CMD", "curl", "-f", "http://localhost"] - interval: 30s - timeout: 10s - retries: 10 - start_period: 1m + - "caddy=${DOMAIN}" + - "caddy.reverse_proxy={{upstreams 8484}}" + - "caddy.tls.on_demand=" + + db: + image: postgres:13 + networks: + - internal + secrets: + - db_password + volumes: + - 'postgresql_data:/var/lib/postgresql/data' + environment: + - POSTGRES_USER=grist + - POSTGRES_DB=grist + - POSTGRES_PASSWORD_FILE=/run/secrets/db_password + + redis: + image: redis:7.2-alpine + networks: + - internal + volumes: + - 'redis_data:/data' + +secrets: + db_password: + external: true + name: ${STACK_NAME}_db_password + +volumes: + postgresql_data: + redis_data: + grist_data: + grist_keys: + networks: proxy: external: true + internal: