Resources
Formbricks
-
db
postgres
Ready
-
app
ghcr.io/formbricks/formbricks:3
Running
-
ingress
forms.example.com
Live
Parameters
Deploy Formbricks
App Name required
formbricks
Domain required
forms.example.com
Auth secret
•••••••••••••••• generated
Generated if left empty
Encryption key
•••••••••••••••• generated
Generated if left empty. Keep it, or stored integrations become unreadable.
Cron secret
•••••••••••••••• generated
Generated if left empty
Require email verification
Off
Invite only
Off
Blocks open sign-ups
Telemetry
Off
SMTP host
smtp.example.com
Outgoing mail for invites and verification. Optional.
SMTP port
587
SMTP username
SMTP password
app password
From address
Storage
5Gi
Volume for uploads
Enable HTTPS
On
Cancel Deploy
YAML
apiVersion: leaf/v1
kind: Template
metadata:
name: formbricks
displayName: 'Formbricks'
description: 'Surveys and forms with targeting, in-app or by link, and a drag-and-drop builder.'
icon: https://github.com/formbricks.png?size=256
version: '1.0.0'
category: forms
tags: ['forms', 'surveys', 'feedback']
keywords: ['typeform', 'google forms', 'nps', 'questionnaire', 'user research']
homepage: https://formbricks.com
license: AGPL-3.0-only
parameters:
- name: appName
displayName: 'App Name'
type: string
default: 'formbricks'
required: true
validation:
pattern: '^[a-z][a-z0-9-]{1,58}[a-z0-9]$'
message: 'Must be lowercase alphanumeric with hyphens, 3-60 chars'
- name: domain
displayName: 'Domain'
type: string
required: true
placeholder: 'forms.example.com'
- name: nextauthSecret
displayName: 'Auth secret'
description: 'Generated if left empty'
type: secret
validation:
min: 32
- name: encryptionKey
displayName: 'Encryption key'
description: 'Generated if left empty. Keep it, or stored integrations become unreadable.'
type: secret
validation:
min: 64
- name: cronSecret
displayName: 'Cron secret'
description: 'Generated if left empty'
type: secret
validation:
min: 32
- name: emailVerification
displayName: 'Require email verification'
type: boolean
default: false
- name: inviteOnly
displayName: 'Invite only'
description: 'Blocks open sign-ups'
type: boolean
default: false
- name: telemetry
displayName: 'Telemetry'
type: boolean
default: false
- name: smtpHost
displayName: 'SMTP host'
description: 'Outgoing mail for invites and verification. Optional.'
type: string
default: ''
placeholder: 'smtp.example.com'
- name: smtpPort
displayName: 'SMTP port'
type: number
default: 587
- name: smtpUser
displayName: 'SMTP username'
type: string
default: ''
placeholder: '[email protected]'
- name: smtpPassword
displayName: 'SMTP password'
type: string
default: ''
placeholder: 'app password'
- name: mailFrom
displayName: 'From address'
type: string
default: ''
placeholder: '[email protected]'
- name: storage
displayName: 'Storage'
description: 'Volume for uploads'
type: string
default: '5Gi'
- name: enableTls
displayName: 'Enable HTTPS'
type: boolean
default: true
resources:
- name: db
type: database
config:
name: '{{ params.appName }}-db'
- name: app
type: deployment
config:
name: '{{ params.appName }}'
image: ghcr.io/formbricks/formbricks:3
replicas: 1
ports:
- name: http
containerPort: 3000
servicePort: 3000
protocol: TCP
volumes:
- name: uploads
type: pvc
mountPath: /home/nextjs/apps/web/uploads
storageSize: '{{ params.storage }}'
env:
- key: WEBAPP_URL
value: 'https://{{ params.domain }}'
- key: NEXTAUTH_URL
value: 'https://{{ params.domain }}'
- key: DATABASE_URL
value: '{{ resources.db.connectionString }}'
secret: true
- key: NEXTAUTH_SECRET
value: '{{ params.nextauthSecret }}'
secret: true
- key: ENCRYPTION_KEY
value: '{{ params.encryptionKey }}'
secret: true
- key: CRON_SECRET
value: '{{ params.cronSecret }}'
secret: true
- key: EMAIL_VERIFICATION_DISABLED
value: '{{ params.emailVerification }}'
- key: INVITE_DISABLED
value: '{{ params.inviteOnly }}'
- key: TELEMETRY_DISABLED
value: '{{ params.telemetry }}'
- key: SMTP_SECURE_ENABLED
value: '0'
- key: SMTP_HOST
value: '{{ params.smtpHost }}'
- key: SMTP_PORT
value: '{{ params.smtpPort }}'
- key: SMTP_USER
value: '{{ params.smtpUser }}'
- key: SMTP_PASSWORD
value: '{{ params.smtpPassword }}'
secret: true
- key: MAIL_FROM
value: '{{ params.mailFrom }}'
- name: ingress
type: ingress
config:
host: '{{ params.domain }}'
tlsEnabled: '{{ params.enableTls }}'
routes:
- path: /
serviceName: '{{ resources.app.serviceName }}'
servicePort: 3000