Merge pull request #1237 from bernabedev/canary

feat(template): add Formbricks template with Docker Compose and environment setup
This commit is contained in:
Mauricio Siu
2025-01-30 23:32:32 -06:00
committed by GitHub
4 changed files with 92 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -0,0 +1,38 @@
x-environment: &environment
environment:
WEBAPP_URL: ${WEBAPP_URL}
NEXTAUTH_URL: ${NEXTAUTH_URL}
DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/formbricks?schema=public"
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
ENCRYPTION_KEY: ${ENCRYPTION_KEY}
CRON_SECRET: ${CRON_SECRET}
EMAIL_VERIFICATION_DISABLED: 1
PASSWORD_RESET_DISABLED: 1
S3_FORCE_PATH_STYLE: 0
services:
postgres:
restart: always
image: pgvector/pgvector:pg17
volumes:
- postgres:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
networks:
- dokploy-network
formbricks:
restart: always
image: ghcr.io/formbricks/formbricks:v3.1.3
depends_on:
- postgres
ports:
- 3000
volumes:
- ../files/uploads:/home/nextjs/apps/web/uploads/
<<: *environment
volumes:
postgres:
driver: local
uploads:

View File

@@ -0,0 +1,39 @@
import {
type DomainSchema,
type Schema,
type Template,
generateBase64,
generateRandomDomain,
} from "../utils";
export function generate(schema: Schema): Template {
const mainDomain = generateRandomDomain(schema);
const secretBase = generateBase64(64);
const encryptionKey = generateBase64(48);
const cronSecret = generateBase64(32);
const domains: DomainSchema[] = [
{
host: mainDomain,
port: 3000,
serviceName: "formbricks",
},
];
const envs = [
`WEBAPP_URL=http://${mainDomain}`,
`NEXTAUTH_URL=http://${mainDomain}`,
`NEXTAUTH_SECRET=${secretBase}`,
`ENCRYPTION_KEY=${encryptionKey}`,
`CRON_SECRET=${cronSecret}`,
];
const mounts: Template["mounts"] = [];
return {
envs,
mounts,
domains,
};
}

View File

@@ -1453,4 +1453,19 @@ export const templates: TemplateData[] = [
tags: ["sharing", "shortener", "url"],
load: () => import("./shlink/index").then((m) => m.generate),
},
{
id: "formbricks",
name: "Formbricks",
version: "v3.1.3",
description:
"Formbricks is an open-source survey and form platform for collecting user data.",
logo: "formbricks.png",
links: {
github: "https://github.com/formbricks/formbricks",
website: "https://formbricks.com/",
docs: "https://formbricks.com/docs",
},
tags: ["forms", "analytics"],
load: () => import("./formbricks/index").then((m) => m.generate),
},
];