Create hoppscotch.yaml

https://github.com/hoppscotch/hoppscotch
Open source API development ecosystem - https://hoppscotch.io (open-source alternative to Postman, Insomnia)
Healthchecks works too
This commit is contained in:
che0one
2024-11-02 23:14:02 +04:00
committed by GitHub
parent 9eb0a27af5
commit 35b9c36035

View File

@@ -0,0 +1,88 @@
services:
backend:
image: 'hoppscotch/hoppscotch:latest'
environment:
- SERVICE_FQDN_HOPPSCOTCH_80
- SERVICE_URL_HOPPSCOTCH
- 'VITE_ALLOWED_AUTH_PROVIDERS=${VITE_ALLOWED_AUTH_PROVIDERS:-GOOGLE,GITHUB,MICROSOFT,EMAIL}'
- 'DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@hoppscotch-db:5432/${POSTGRES_DB}'
- 'JWT_SECRET=${SERVICE_PASSWORD_JWT}'
- 'TOKEN_SALT_COMPLEXITY=${TOKEN_SALT_COMPLEXITY:-10}'
- 'MAGIC_LINK_TOKEN_VALIDITY=${MAGIC_LINK_TOKEN_VALIDITY:-3}'
- 'REFRESH_TOKEN_VALIDITY=${REFRESH_TOKEN_VALIDITY:-604800000}'
- 'ACCESS_TOKEN_VALIDITY=${ACCESS_TOKEN_VALIDITY:-86400000}'
- 'SESSION_SECRET=${SERVICE_PASSWORD_SECRET}'
- 'ALLOW_SECURE_COOKIES=${ALLOW_SECURE_COOKIES:-true}'
- 'DATA_ENCRYPTION_KEY=${DATA_ENCRYPTION_KEY:-mustbeexactry32characterlikethat}'
- 'REDIRECT_URL=${SERVICE_FQDN_HOPPSCOTCH}'
- 'WHITELISTED_ORIGINS=${SERVICE_FQDN_HOPPSCOTCH}/backend,${SERVICE_FQDN_HOPPSCOTCH},${SERVICE_FQDN_HOPPSCOTCH}/admin'
- 'GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID:-*****}'
- 'GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET:-*****}'
- 'GOOGLE_CALLBACK_URL=${SERVICE_FQDN_HOPPSCOTCH}/backend/v1/auth/google/callback'
- 'GOOGLE_SCOPE=email,profile'
- 'GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID:-*****}'
- 'GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET:-*****}'
- 'GITHUB_CALLBACK_URL=${SERVICE_FQDN_HOPPSCOTCH}/backend/v1/auth/github/callback'
- 'GITHUB_SCOPE=user:email'
- 'MICROSOFT_CLIENT_ID=${MICROSOFT_CLIENT_ID:-*****}'
- 'MICROSOFT_CLIENT_SECRET=${MICROSOFT_CLIENT_SECRET:-*****}'
- 'MICROSOFT_CALLBACK_URL=${SERVICE_FQDN_HOPPSCOTCH}/backend/v1/auth/microsoft/callback'
- 'MICROSOFT_SCOPE=user.read'
- 'MICROSOFT_TENANT=common'
- 'MAILER_SMTP_ENABLE=${MAILER_SMTP_ENABLE:-false}'
- 'MAILER_USE_CUSTOM_CONFIGS=${MAILER_USE_CUSTOM_CONFIGS:-true}'
- 'MAILER_ADDRESS_FROM=${MAILER_ADDRESS_FROM:-samirqlvdev@example.com}'
- 'MAILER_SMTP_URL=${MAILER_SMTP_URL:-smtps_url}'
- 'MAILER_SMTP_HOST=${MAILER_SMTP_HOST:-smtp.example.com}'
- 'MAILER_SMTP_PORT=${MAILER_SMTP_PORT:-465}'
- 'MAILER_SMTP_SECURE=${MAILER_SMTP_SECURE:-true}'
- 'MAILER_SMTP_USER=${MAILER_SMTP_USER:-user@example.com}'
- 'MAILER_SMTP_PASSWORD=${MAILER_SMTP_PASSWORD:-mailpass}'
- 'MAILER_TLS_REJECT_UNAUTHORIZED=${MAILER_TLS_REJECT_UNAUTHORIZED:-false}'
- 'RATE_LIMIT_TTL=${RATE_LIMIT_TTL:-60}'
- 'RATE_LIMIT_MAX=${RATE_LIMIT_MAX:-100}'
- 'VITE_BASE_URL=${SERVICE_FQDN_HOPPSCOTCH}'
- 'VITE_SHORTCODE_BASE_URL=${SERVICE_FQDN_HOPPSCOTCH}'
- 'VITE_ADMIN_URL=${SERVICE_FQDN_HOPPSCOTCH}/admin'
- 'VITE_BACKEND_GQL_URL=${SERVICE_FQDN_HOPPSCOTCH}/backend/graphql'
- 'VITE_BACKEND_WS_URL=wss://${SERVICE_URL_HOPPSCOTCH}/backend/graphql'
- 'VITE_BACKEND_API_URL=${SERVICE_FQDN_HOPPSCOTCH}/backend/v1'
- 'VITE_APP_TOS_LINK=https://docs.hoppscotch.io/support/terms'
- 'VITE_APP_PRIVACY_POLICY_LINK=https://docs.hoppscotch.io/support/privacy'
- ENABLE_SUBPATH_BASED_ACCESS=true
depends_on:
db-migration:
condition: service_completed_successfully
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:80/"]
interval: 5s
timeout: 20s
retries: 10
hoppscotch-db:
image: 'postgres:latest'
volumes:
- 'pg_data:/var/lib/postgresql/data'
environment:
- 'POSTGRES_USER=${SERVICE_USER_POSTGRES}'
- 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}'
- 'POSTGRES_DB=${POSTGRES_DB:-hoppscotch}'
healthcheck:
test:
- CMD-SHELL
- 'pg_isready -h localhost -U $${POSTGRES_USER} -d $${POSTGRES_DB}'
interval: 5s
timeout: 10s
retries: 10
db-migration:
exclude_from_hc: true
image: 'hoppscotch/hoppscotch:latest'
depends_on:
hoppscotch-db:
condition: service_healthy
command: 'pnpx prisma migrate deploy'
restart: on-failure
environment:
- 'POSTGRES_USER=${SERVICE_USER_POSTGRES}'
- 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}'
- 'POSTGRES_DB=${POSTGRES_DB:-hoppscotch}'
- 'DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@hoppscotch-db:5432/${POSTGRES_DB:-hoppscotch}'