96 lines
4.3 KiB
YAML
96 lines
4.3 KiB
YAML
# documentation: https://docs.hoppscotch.io
|
|
# slogan: The Open Source API Development Platform
|
|
# tags: api, development, platform
|
|
# logo: svgs/hoppscotch.png
|
|
# port: 80
|
|
|
|
services:
|
|
backend:
|
|
image: hoppscotch/hoppscotch:latest
|
|
environment:
|
|
- SERVICE_FQDN_HOPPSCOTCH_80
|
|
- 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:-user@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:
|
|
- postgres_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}
|