feat(template): add Formbricks template with Docker Compose and environment setup

This commit is contained in:
Freilyn Bernabe
2025-01-29 00:39:01 -04:00
parent d37bde00bc
commit de4d1c0911
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:
- ${PORT}: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: 8080,
serviceName: "formbricks",
},
];
const envs = [
`WEBAPP_URL=http://${mainDomain}`,
`NEXTAUTH_URL=http://${mainDomain}`,
`NEXTAUTH_SECRET=${secretBase}`,
`ENCRYPTION_KEY=${encryptionKey}`,
`CRON_SECRET=${cronSecret}`,
"PORT=8080",
];
const mounts: Template["mounts"] = [];
return {
envs,
mounts,
domains,
};
}

View File

@@ -1438,4 +1438,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 es una plataforma de encuestas y formularios open-source para recolectar datos de usuarios.",
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),
},
];