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:
88
templates/compose/hoppscotch.yaml
Normal file
88
templates/compose/hoppscotch.yaml
Normal 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}'
|
Reference in New Issue
Block a user