diff --git a/public/svgs/sequin.svg b/public/svgs/sequin.svg new file mode 100644 index 000000000..623bc1159 --- /dev/null +++ b/public/svgs/sequin.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/templates/compose/sequin.yaml b/templates/compose/sequin.yaml new file mode 100644 index 000000000..18f88fd89 --- /dev/null +++ b/templates/compose/sequin.yaml @@ -0,0 +1,68 @@ +# documentation: https://sequinstream.com/docs/ +# slogan: The fastest Postgres change data capture +# tags: postgres, sync, data +# logo: svgs/sequin.svg +# port: 7376 + +services: + sequin: + image: sequin/sequin:latest + environment: + - SERVICE_FQDN_SEQUIN_7376 + - SERVER_HOST=${SERVICE_FQDN_SEQUIN} + - PG_HOSTNAME=postgres + - PG_DATABASE=${POSTGRES_DB:-sequin-db} + - PG_PORT=5432 + - PG_USERNAME=${SERVICE_USER_POSTGRES} + - PG_PASSWORD=${SERVICE_PASSWORD_POSTGRES} + - PG_POOL_SIZE=20 + - SECRET_KEY_BASE=${SERVICE_REALBASE64_64_SECRETKEY} + - VAULT_KEY=${SERVICE_REALBASE64_VAULTKEY} + - REDIS_URL=redis://redis:6379 + - CONFIG_FILE_PATH=/config/playground.yml + - FEATURE_ACCOUNT_SELF_SIGNUP=${FEATURE_ACCOUNT_SELF_SIGNUP:-false} + - SEQUIN_TELEMETRY_DISABLED=${SEQUIN_TELEMETRY_DISABLED:-false} + - CRASH_REPORTING_DISABLED=${CRASH_REPORTING_DISABLED:-false} + depends_on: + redis: + condition: service_started + postgres: + condition: service_healthy + healthcheck: + test: ["CMD", "curl", "http://localhost:7376/health"] + + postgres: + image: 'postgres:16' + environment: + - POSTGRES_DB=${POSTGRES_DB:-sequin-db} + - POSTGRES_USER=${SERVICE_USER_POSTGRES} + - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES} + command: + - postgres + - '-c' + - wal_level=logical + healthcheck: + test: + - CMD-SHELL + - 'pg_isready -U ${SERVICE_USER_POSTGRES} -d sequin' + interval: 10s + timeout: 2s + retries: 5 + start_period: 2s + start_interval: 1s + volumes: + - 'postgres_data:/var/lib/postgresql/data' + + redis: + image: 'redis:7' + command: + - redis-server + - '--port' + - '6379' + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 20s + retries: 10 + volumes: + - 'redis_data:/data'