Add Docker Compose file for Formbricks service
This commit is contained in:
		
							
								
								
									
										60
									
								
								templates/compose/formbricks.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								templates/compose/formbricks.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
# documentation: https://formbricks.com/docs/self-hosting/docker
 | 
			
		||||
# slogan: Open Source Experience Management
 | 
			
		||||
# tags: form, builder, forms, open source, experience, management, self-hosted, docker
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  formbricks:
 | 
			
		||||
    image: formbricks/formbricks:latest
 | 
			
		||||
    environment:
 | 
			
		||||
      - SERVICE_FQDN_FORMBRICKS
 | 
			
		||||
      - WEBAPP_URL=$SERVICE_FQDN_FORMBRICKS
 | 
			
		||||
      - DATABASE_URL=postgres://$SERVICE_USER_POSTGRESQL:$SERVICE_PASSWORD_POSTGRESQL@postgresql:5432/${POSTGRESQL_DATABASE:-formbricks}
 | 
			
		||||
      - NEXTAUTH_SECRET=$SERVICE_BASE64_64_NEXTAUTH
 | 
			
		||||
      - NEXTAUTH_URL=$SERVICE_FQDN_FORMBRICKS
 | 
			
		||||
      - ENCRYPTION_KEY=$SERVICE_BASE64_64_ENCRYPTION
 | 
			
		||||
      - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
 | 
			
		||||
      - MAIL_FROM=${MAIL_FROM:-test@example.com}
 | 
			
		||||
      - SMTP_HOST=${SMTP_HOST:-test.example.com}
 | 
			
		||||
      - SMTP_PORT=${SMTP_PORT:-587}
 | 
			
		||||
      - SMTP_USER=${SMTP_USER:-test}
 | 
			
		||||
      - SMTP_PASSWORD=${SMTP_PASSWORD:-test}
 | 
			
		||||
      - SMTP_SECURE_ENABLED=${SMTP_SECURE_ENABLED:-0}
 | 
			
		||||
      - SHORT_URL_BASE=${SHORT_URL_BASE}
 | 
			
		||||
      - EMAIL_VERIFICATION_DISABLED=${EMAIL_VERIFICATION_DISABLED:-1}
 | 
			
		||||
      - PASSWORD_RESET_DISABLED=${PASSWORD_RESET_DISABLED:-1}
 | 
			
		||||
      - SIGNUP_DISABLED=${SIGNUP_DISABLED:-0}
 | 
			
		||||
      - INVITE_DISABLED=${INVITE_DISABLED:-0}
 | 
			
		||||
      - PRIVACY_URL=${PRIVACY_URL}
 | 
			
		||||
      - TERMS_URL=${TERMS_URL}
 | 
			
		||||
      - IMPRINT_URL=${IMPRINT_URL}
 | 
			
		||||
      - GITHUB_AUTH_ENABLED=${GITHUB_AUTH_ENABLED:-0}
 | 
			
		||||
      - GITHUB_ID=${GITHUB_ID}
 | 
			
		||||
      - GITHUB_SECRET=${GITHUB_SECRET}
 | 
			
		||||
      - GOOGLE_AUTH_ENABLED=${GOOGLE_AUTH_ENABLED:-0}
 | 
			
		||||
      - GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
 | 
			
		||||
      - GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
 | 
			
		||||
      - ASSET_PREFIX_URL=${ASSET_PREFIX_URL}
 | 
			
		||||
    volumes:
 | 
			
		||||
      - formbricks-uploads:/apps/web/uploads/
 | 
			
		||||
    depends_on:
 | 
			
		||||
      postgresql:
 | 
			
		||||
        condition: service_healthy
 | 
			
		||||
    healthcheck:
 | 
			
		||||
      test: ["CMD", "curl", "-f", "http://localhost:3000"]
 | 
			
		||||
      interval: 2s
 | 
			
		||||
      timeout: 10s
 | 
			
		||||
      retries: 15
 | 
			
		||||
 | 
			
		||||
  postgresql:
 | 
			
		||||
    image: postgres:16-alpine
 | 
			
		||||
    volumes:
 | 
			
		||||
      - formbricks-postgresql-data:/var/lib/postgresql/data
 | 
			
		||||
    environment:
 | 
			
		||||
      - POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
 | 
			
		||||
      - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
 | 
			
		||||
      - POSTGRES_DB=${POSTGRESQL_DATABASE:-formbricks}
 | 
			
		||||
    healthcheck:
 | 
			
		||||
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
 | 
			
		||||
      interval: 5s
 | 
			
		||||
      timeout: 20s
 | 
			
		||||
      retries: 10
 | 
			
		||||
@@ -152,6 +152,21 @@
 | 
			
		||||
            "administration-tool"
 | 
			
		||||
        ]
 | 
			
		||||
    },
 | 
			
		||||
    "formbricks": {
 | 
			
		||||
        "documentation": "https:\/\/formbricks.com\/docs\/self-hosting\/docker",
 | 
			
		||||
        "slogan": "Open Source Experience Management",
 | 
			
		||||
        "compose": "c2VydmljZXM6CiAgZm9ybWJyaWNrczoKICAgIGltYWdlOiAnZm9ybWJyaWNrcy9mb3JtYnJpY2tzOmxhdGVzdCcKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JNQlJJQ0tTCiAgICAgIC0gV0VCQVBQX1VSTD0kU0VSVklDRV9GUUROX0ZPUk1CUklDS1MKICAgICAgLSAnREFUQUJBU0VfVVJMPXBvc3RncmVzOi8vJFNFUlZJQ0VfVVNFUl9QT1NUR1JFU1FMOiRTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTUUxAcG9zdGdyZXNxbDo1NDMyLyR7UE9TVEdSRVNRTF9EQVRBQkFTRTotZm9ybWJyaWNrc30nCiAgICAgIC0gTkVYVEFVVEhfU0VDUkVUPSRTRVJWSUNFX0JBU0U2NF82NF9ORVhUQVVUSAogICAgICAtIE5FWFRBVVRIX1VSTD0kU0VSVklDRV9GUUROX0ZPUk1CUklDS1MKICAgICAgLSBFTkNSWVBUSU9OX0tFWT0kU0VSVklDRV9CQVNFNjRfNjRfRU5DUllQVElPTgogICAgICAtICdQT1NUR1JFU19QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVNRTH0nCiAgICAgIC0gJ01BSUxfRlJPTT0ke01BSUxfRlJPTTotdGVzdEBleGFtcGxlLmNvbX0nCiAgICAgIC0gJ1NNVFBfSE9TVD0ke1NNVFBfSE9TVDotdGVzdC5leGFtcGxlLmNvbX0nCiAgICAgIC0gJ1NNVFBfUE9SVD0ke1NNVFBfUE9SVDotNTg3fScKICAgICAgLSAnU01UUF9VU0VSPSR7U01UUF9VU0VSOi10ZXN0fScKICAgICAgLSAnU01UUF9QQVNTV09SRD0ke1NNVFBfUEFTU1dPUkQ6LXRlc3R9JwogICAgICAtICdTTVRQX1NFQ1VSRV9FTkFCTEVEPSR7U01UUF9TRUNVUkVfRU5BQkxFRDotMH0nCiAgICAgIC0gJ1NIT1JUX1VSTF9CQVNFPSR7U0hPUlRfVVJMX0JBU0V9JwogICAgICAtICdFTUFJTF9WRVJJRklDQVRJT05fRElTQUJMRUQ9JHtFTUFJTF9WRVJJRklDQVRJT05fRElTQUJMRUQ6LTF9JwogICAgICAtICdQQVNTV09SRF9SRVNFVF9ESVNBQkxFRD0ke1BBU1NXT1JEX1JFU0VUX0RJU0FCTEVEOi0xfScKICAgICAgLSAnU0lHTlVQX0RJU0FCTEVEPSR7U0lHTlVQX0RJU0FCTEVEOi0wfScKICAgICAgLSAnSU5WSVRFX0RJU0FCTEVEPSR7SU5WSVRFX0RJU0FCTEVEOi0wfScKICAgICAgLSAnUFJJVkFDWV9VUkw9JHtQUklWQUNZX1VSTH0nCiAgICAgIC0gJ1RFUk1TX1VSTD0ke1RFUk1TX1VSTH0nCiAgICAgIC0gJ0lNUFJJTlRfVVJMPSR7SU1QUklOVF9VUkx9JwogICAgICAtICdHSVRIVUJfQVVUSF9FTkFCTEVEPSR7R0lUSFVCX0FVVEhfRU5BQkxFRDotMH0nCiAgICAgIC0gJ0dJVEhVQl9JRD0ke0dJVEhVQl9JRH0nCiAgICAgIC0gJ0dJVEhVQl9TRUNSRVQ9JHtHSVRIVUJfU0VDUkVUfScKICAgICAgLSAnR09PR0xFX0FVVEhfRU5BQkxFRD0ke0dPT0dMRV9BVVRIX0VOQUJMRUQ6LTB9JwogICAgICAtICdHT09HTEVfQ0xJRU5UX0lEPSR7R09PR0xFX0NMSUVOVF9JRH0nCiAgICAgIC0gJ0dPT0dMRV9DTElFTlRfU0VDUkVUPSR7R09PR0xFX0NMSUVOVF9TRUNSRVR9JwogICAgICAtICdBU1NFVF9QUkVGSVhfVVJMPSR7QVNTRVRfUFJFRklYX1VSTH0nCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JtYnJpY2tzLXVwbG9hZHM6L2FwcHMvd2ViL3VwbG9hZHMvJwogICAgZGVwZW5kc19vbjoKICAgICAgcG9zdGdyZXNxbDoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjMwMDAnCiAgICAgIGludGVydmFsOiAycwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMTUKICBwb3N0Z3Jlc3FsOgogICAgaW1hZ2U6ICdwb3N0Z3JlczoxNi1hbHBpbmUnCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JtYnJpY2tzLXBvc3RncmVzcWwtZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnUE9TVEdSRVNfVVNFUj0ke1NFUlZJQ0VfVVNFUl9QT1NUR1JFU1FMfScKICAgICAgLSAnUE9TVEdSRVNfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTUUx9JwogICAgICAtICdQT1NUR1JFU19EQj0ke1BPU1RHUkVTUUxfREFUQUJBU0U6LWZvcm1icmlja3N9JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAo=",
 | 
			
		||||
        "tags": [
 | 
			
		||||
            "form",
 | 
			
		||||
            "builder",
 | 
			
		||||
            "forms",
 | 
			
		||||
            "open source",
 | 
			
		||||
            "experience",
 | 
			
		||||
            "management",
 | 
			
		||||
            "self-hosted",
 | 
			
		||||
            "docker"
 | 
			
		||||
        ]
 | 
			
		||||
    },
 | 
			
		||||
    "ghost": {
 | 
			
		||||
        "documentation": "https:\/\/ghost.org\/docs",
 | 
			
		||||
        "slogan": "Ghost is a popular open-source content management system (CMS) and blogging platform, known for its simplicity and focus on content creation.",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user