All templates

Formbricks

Surveys and forms with targeting, in-app or by link, and a drag-and-drop builder.

Added by LeafdTK, 28 Sept 2026 v1.0.0 AGPL-3.0-only forms #forms#surveys#feedback

Resources

Formbricks

LeafdTK1 deployment1 database1 domainv1.0.0

3
  • db

    postgres

    Ready

  • app

    ghcr.io/formbricks/formbricks:3

    Running

  • ingress

    forms.example.com

    Live

Parameters

YAML

formbricks.yaml v1.0.0
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

your own cloud, in one click.

Free and open source. Runs on any Linux box.

Install Orchard