mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
feat(template): add Formbricks template with Docker Compose and environment setup
This commit is contained in:
BIN
apps/dokploy/public/templates/formbricks.png
Normal file
BIN
apps/dokploy/public/templates/formbricks.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
38
apps/dokploy/templates/formbricks/docker-compose.yml
Normal file
38
apps/dokploy/templates/formbricks/docker-compose.yml
Normal 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:
|
||||||
39
apps/dokploy/templates/formbricks/index.ts
Normal file
39
apps/dokploy/templates/formbricks/index.ts
Normal 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,
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1438,4 +1438,19 @@ export const templates: TemplateData[] = [
|
|||||||
tags: ["sharing", "shortener", "url"],
|
tags: ["sharing", "shortener", "url"],
|
||||||
load: () => import("./shlink/index").then((m) => m.generate),
|
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),
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user