# This should be the same as below if you are running via docker compose up
x-webapp-url: &webapp_url http://localhost:3000

x-nextauth-url: &nextauth_url http://localhost:3000

# PostgreSQL DB for Formbricks to connect to
x-database-url: &database_url postgresql://postgres:postgres@postgres:5432/formbricks?schema=public

x-redis-url: &redis_url
  # NextJS Auth
  # @see: https://next-auth.js.org/configuration/options#nextauth_secret
  # You can use: `openssl rand -hex 32` to generate one


x-nextauth-secret: &nextauth_secret
  # Encryption key
  # You can use: `openssl rand -hex 32` to generate one

x-cron-secret: &cron_secret
  # Set the below to use it instead of API Key for the API & use as an auth for cronjobs
  # You can use: $(openssl rand -hex 32) to generate a secure one


x-encryption-key: &encryption_key

x-mail-from: &mail_from
x-smtp-host: &smtp_host
x-smtp-port: &smtp_port
x-smtp-secure-enabled: &smtp_secure_enabled # Enable SMTP_SECURE_ENABLED for TLS (port 465)


x-smtp-user: &smtp_user
x-smtp-password: &smtp_password

x-smtp-reject-unauthorized-tls: &smtp_reject_unauthorized_tls 1 # If set to 0, the server will accept connections without requiring authorization from the list of supplied CAs.

x-short-url-base:
  &short_url_base # Set the below value if you have and want to share a shorter base URL than the x-survey-base-url


x-email-verification-disabled: &email_verification_disabled 1

# Password Reset. If you enable Password Reset functionality you have to setup SMTP-Settings, too.
x-password-reset-disabled: &password_reset_disabled 1

# Signup. Disable the ability for new users to create an account.
x-signup-disabled: &signup_disabled 1

# Email login. Disable the ability for users to login with email.
x-auth-disabled: &email_auth_disabled 0

# Organization Invite. Disable the ability for invited users to create an account.
x-invite-disabled: &invite_disabled 0

# Set the below values to display privacy policy, imprint and terms of service links in the footer of signup & public pages.
x-privacy-url: &privacy_url
x-terms-url: &terms_url
x-imprint-url: &imprint_url

x-github-id: &github_id
x-github-secret: &github_secret

x-google-client-id: &google_client_id
x-google-client-secret: &google_client_secret

x-sentry-ignore-api-resolution-error: &sentry_ignore_api_resolution_error # Disable Sentry warning


x-next-public-sentry-dsn: &next_public_sentry_dsn # Enable Sentry Error Tracking


services:
  postgres:
    restart: always
    image: postgres:15-alpine
    volumes:
      - postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=postgres

  formbricks:
    restart: always
    build:
      context: .
      dockerfile: ./apps/web/Dockerfile
    depends_on:
      - postgres
    ports:
      - 3000:3000

    environment:
      WEBAPP_URL: *webapp_url
      DATABASE_URL: *database_url
      NEXTAUTH_SECRET: *nextauth_secret
      MAIL_FROM: *mail_from
      SMTP_HOST: *smtp_host
      SMTP_PORT: *smtp_port
      SMTP_SECURE_ENABLED: *smtp_secure_enabled
      SMTP_USER: *smtp_user
      SMTP_PASSWORD: *smtp_password
      SMTP_REJECT_UNAUTHORIZED_TLS: *smtp_reject_unauthorized_tls
      ENCRYPTION_KEY: *encryption_key
      SHORT_URL_BASE: *short_url_base
      PRIVACY_URL: *privacy_url
      TERMS_URL: *terms_url
      IMPRINT_URL: *imprint_url
      EMAIL_VERIFICATION_DISABLED: *email_verification_disabled
      PASSWORD_RESET_DISABLED: *password_reset_disabled
      EMAIL_AUTH_DISABLED: *email_auth_disabled
      SIGNUP_DISABLED: *signup_disabled
      INVITE_DISABLED: *invite_disabled
      SENTRY_IGNORE_API_RESOLUTION_ERROR: *sentry_ignore_api_resolution_error
      NEXT_PUBLIC_SENTRY_DSN: *next_public_sentry_dsn
      GITHUB_ID: *github_id
      GITHUB_SECRET: *github_secret
      GOOGLE_CLIENT_ID: *google_client_id
      GOOGLE_CLIENT_SECRET: *google_client_secret
      CRON_SECRET: *cron_secret
      REDIS_URL: *redis_url

    volumes:
      - uploads:/home/nextjs/apps/web/uploads/

volumes:
  postgres:
    driver: local
  uploads:
