mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
Merge pull request #836 from drudge/budibase-template
feat: add Budibase template
This commit is contained in:
13
apps/dokploy/public/templates/budibase.svg
Normal file
13
apps/dokploy/public/templates/budibase.svg
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<svg width="265" height="265" viewBox="0 0 265 265" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_1_1799)">
|
||||||
|
<path d="M158.2 8.6V116.6C158.2 121.3 162 125.2 166.8 125.2H213.8C218 125.2 222 123.2 224.6 119.8L262.9 68.9C265.7 65.2 265.7 60.1 262.9 56.4L224.6 5.4C222 2 218 0 213.8 0H166.8C162 0 158.2 3.8 158.2 8.6Z" fill="#FF4E4E"/>
|
||||||
|
<path d="M158.2 148.4V256.4C158.2 261.1 162 265 166.8 265H213.8C218 265 222 263 224.6 259.6L262.9 208.7C265.7 205 265.7 199.9 262.9 196.2L224.6 145.3C222.1 141.9 218.1 139.9 213.8 139.9H166.8C162 139.8 158.2 143.7 158.2 148.4Z" fill="#6E56FF"/>
|
||||||
|
<path d="M0 8.6V116.6C0 121.3 3.8 125.2 8.6 125.2H109.6C113.8 125.2 117.8 123.2 120.4 119.8L155.9 72.5C160.3 66.6 160.3 58.5 155.9 52.6L120.3 5.4C117.8 2 113.8 0 109.5 0H8.6C3.8 0 0 3.8 0 8.6Z" fill="#F97777"/>
|
||||||
|
<path d="M0 148.4V256.4C0 261.1 3.8 265 8.6 265H109.6C113.8 265 117.8 263 120.4 259.6L155.9 212.3C160.3 206.4 160.3 198.3 155.9 192.4L120.4 145.1C117.9 141.7 113.9 139.7 109.6 139.7H8.6C3.8 139.8 0 143.7 0 148.4Z" fill="#9F8FFF"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1_1799">
|
||||||
|
<rect width="265" height="265" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
199
apps/dokploy/templates/budibase/docker-compose.yml
Normal file
199
apps/dokploy/templates/budibase/docker-compose.yml
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
services:
|
||||||
|
apps:
|
||||||
|
image: budibase.docker.scarf.sh/budibase/apps:3.2.25
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- dokploy-network
|
||||||
|
environment:
|
||||||
|
SELF_HOSTED: 1
|
||||||
|
LOG_LEVEL: info
|
||||||
|
PORT: 4002
|
||||||
|
INTERNAL_API_KEY: ${BB_INTERNAL_API_KEY}
|
||||||
|
API_ENCRYPTION_KEY: ${BB_API_ENCRYPTION_KEY}
|
||||||
|
JWT_SECRET: ${BB_JWT_SECRET}
|
||||||
|
MINIO_ACCESS_KEY: ${BB_MINIO_ACCESS_KEY}
|
||||||
|
MINIO_SECRET_KEY: ${BB_MINIO_SECRET_KEY}
|
||||||
|
MINIO_URL: http://minio:9000
|
||||||
|
REDIS_URL: redis:6379
|
||||||
|
REDIS_PASSWORD: ${BB_REDIS_PASSWORD}
|
||||||
|
WORKER_URL: http://worker:4003
|
||||||
|
COUCH_DB_USERNAME: budibase
|
||||||
|
COUCH_DB_PASSWORD: ${BB_COUCHDB_PASSWORD}
|
||||||
|
COUCH_DB_URL: http://budibase:${BB_COUCHDB_PASSWORD}@couchdb:5984
|
||||||
|
BUDIBASE_ENVIRONMENT: ${BUDIBASE_ENVIRONMENT:-PRODUCTION}
|
||||||
|
ENABLE_ANALYTICS: ${ENABLE_ANALYTICS:-true}
|
||||||
|
BB_ADMIN_USER_EMAIL: ''
|
||||||
|
BB_ADMIN_USER_PASSWORD: ''
|
||||||
|
depends_on:
|
||||||
|
worker:
|
||||||
|
condition: service_healthy
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- '--spider'
|
||||||
|
- '-qO-'
|
||||||
|
- 'http://localhost:4002/health'
|
||||||
|
interval: 15s
|
||||||
|
timeout: 15s
|
||||||
|
retries: 5
|
||||||
|
start_period: 10s
|
||||||
|
worker:
|
||||||
|
image: budibase.docker.scarf.sh/budibase/worker:3.2.25
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- dokploy-network
|
||||||
|
environment:
|
||||||
|
SELF_HOSTED: 1
|
||||||
|
LOG_LEVEL: info
|
||||||
|
PORT: 4003
|
||||||
|
CLUSTER_PORT: 10000
|
||||||
|
INTERNAL_API_KEY: ${BB_INTERNAL_API_KEY}
|
||||||
|
API_ENCRYPTION_KEY: ${BB_API_ENCRYPTION_KEY}
|
||||||
|
JWT_SECRET: ${BB_JWT_SECRET}
|
||||||
|
MINIO_ACCESS_KEY: ${BB_MINIO_ACCESS_KEY}
|
||||||
|
MINIO_SECRET_KEY: ${BB_MINIO_SECRET_KEY}
|
||||||
|
APPS_URL: http://apps:4002
|
||||||
|
MINIO_URL: http://minio:9000
|
||||||
|
REDIS_URL: redis:6379
|
||||||
|
REDIS_PASSWORD: ${BB_REDIS_PASSWORD}
|
||||||
|
COUCH_DB_USERNAME: budibase
|
||||||
|
COUCH_DB_PASSWORD: ${BB_COUCHDB_PASSWORD}
|
||||||
|
COUCH_DB_URL: http://budibase:${BB_COUCHDB_PASSWORD}@couchdb:5984
|
||||||
|
BUDIBASE_ENVIRONMENT: ${BUDIBASE_ENVIRONMENT:-PRODUCTION}
|
||||||
|
ENABLE_ANALYTICS: ${ENABLE_ANALYTICS:-true}
|
||||||
|
depends_on:
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
|
minio:
|
||||||
|
condition: service_healthy
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- '--spider'
|
||||||
|
- '-qO-'
|
||||||
|
- 'http://localhost:4003/health'
|
||||||
|
interval: 15s
|
||||||
|
timeout: 15s
|
||||||
|
retries: 5
|
||||||
|
start_period: 10s
|
||||||
|
minio:
|
||||||
|
image: minio/minio:RELEASE.2024-11-07T00-52-20Z
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- dokploy-network
|
||||||
|
volumes:
|
||||||
|
- 'minio_data:/data'
|
||||||
|
environment:
|
||||||
|
MINIO_ROOT_USER: ${BB_MINIO_ACCESS_KEY}
|
||||||
|
MINIO_ROOT_PASSWORD: ${BB_MINIO_SECRET_KEY}
|
||||||
|
MINIO_BROWSER: off
|
||||||
|
command: 'server /data --console-address ":9001"'
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- curl
|
||||||
|
- '-f'
|
||||||
|
- 'http://localhost:9000/minio/health/live'
|
||||||
|
interval: 30s
|
||||||
|
timeout: 20s
|
||||||
|
retries: 3
|
||||||
|
proxy:
|
||||||
|
image: budibase/proxy:3.2.25
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- dokploy-network
|
||||||
|
environment:
|
||||||
|
PROXY_RATE_LIMIT_WEBHOOKS_PER_SECOND: 10
|
||||||
|
PROXY_RATE_LIMIT_API_PER_SECOND: 20
|
||||||
|
APPS_UPSTREAM_URL: http://apps:4002
|
||||||
|
WORKER_UPSTREAM_URL: http://worker:4003
|
||||||
|
MINIO_UPSTREAM_URL: http://minio:9000
|
||||||
|
COUCHDB_UPSTREAM_URL: http://couchdb:5984
|
||||||
|
WATCHTOWER_UPSTREAM_URL: http://watchtower:8080
|
||||||
|
RESOLVER: 127.0.0.11
|
||||||
|
depends_on:
|
||||||
|
minio:
|
||||||
|
condition: service_healthy
|
||||||
|
worker:
|
||||||
|
condition: service_healthy
|
||||||
|
apps:
|
||||||
|
condition: service_healthy
|
||||||
|
couchdb:
|
||||||
|
condition: service_healthy
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- curl
|
||||||
|
- '-f'
|
||||||
|
- 'http://localhost:10000/'
|
||||||
|
interval: 15s
|
||||||
|
timeout: 15s
|
||||||
|
retries: 5
|
||||||
|
start_period: 10s
|
||||||
|
couchdb:
|
||||||
|
image: budibase/couchdb:v3.3.3
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- dokploy-network
|
||||||
|
environment:
|
||||||
|
COUCHDB_USER: budibase
|
||||||
|
COUCHDB_PASSWORD: ${BB_COUCHDB_PASSWORD}
|
||||||
|
TARGETBUILD: docker-compose
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- curl
|
||||||
|
- '-f'
|
||||||
|
- 'http://localhost:5984/'
|
||||||
|
interval: 15s
|
||||||
|
timeout: 15s
|
||||||
|
retries: 5
|
||||||
|
start_period: 10s
|
||||||
|
volumes:
|
||||||
|
- 'couchdb3_data:/opt/couchdb/data'
|
||||||
|
redis:
|
||||||
|
image: redis:7.2-alpine
|
||||||
|
networks:
|
||||||
|
- dokploy-network
|
||||||
|
restart: unless-stopped
|
||||||
|
command: 'redis-server --requirepass "${BB_REDIS_PASSWORD}"'
|
||||||
|
volumes:
|
||||||
|
- 'redis_data:/data'
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- redis-cli
|
||||||
|
- '-a'
|
||||||
|
- ${BB_REDIS_PASSWORD}
|
||||||
|
- ping
|
||||||
|
interval: 15s
|
||||||
|
timeout: 15s
|
||||||
|
retries: 5
|
||||||
|
start_period: 10s
|
||||||
|
watchtower:
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- dokploy-network
|
||||||
|
image: containrrr/watchtower:1.7.1
|
||||||
|
volumes:
|
||||||
|
- '/var/run/docker.sock:/var/run/docker.sock'
|
||||||
|
command: '--debug --http-api-update bbapps bbworker bbproxy'
|
||||||
|
environment:
|
||||||
|
WATCHTOWER_HTTP_API: true
|
||||||
|
WATCHTOWER_HTTP_API_TOKEN: ${BB_WATCHTOWER_PASSWORD}
|
||||||
|
WATCHTOWER_CLEANUP: true
|
||||||
|
labels:
|
||||||
|
- com.centurylinklabs.watchtower.enable=false
|
||||||
|
|
||||||
|
networks:
|
||||||
|
dokploy-network:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
minio_data:
|
||||||
|
couchdb3_data:
|
||||||
|
redis_data:
|
||||||
45
apps/dokploy/templates/budibase/index.ts
Normal file
45
apps/dokploy/templates/budibase/index.ts
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
import {
|
||||||
|
type DomainSchema,
|
||||||
|
type Schema,
|
||||||
|
type Template,
|
||||||
|
generatePassword,
|
||||||
|
generateRandomDomain,
|
||||||
|
} from "../utils";
|
||||||
|
|
||||||
|
export function generate(schema: Schema): Template {
|
||||||
|
const mainDomain = generateRandomDomain(schema);
|
||||||
|
|
||||||
|
const apiKey = generatePassword(32);
|
||||||
|
const encryptionKey = generatePassword(32);
|
||||||
|
const jwtSecret = generatePassword(32);
|
||||||
|
const couchDbPassword = generatePassword(32);
|
||||||
|
const redisPassword = generatePassword(32);
|
||||||
|
const minioAccessKey = generatePassword(32);
|
||||||
|
const minioSecretKey = generatePassword(32);
|
||||||
|
const watchtowerPassword = generatePassword(32);
|
||||||
|
|
||||||
|
const domains: DomainSchema[] = [
|
||||||
|
{
|
||||||
|
host: mainDomain,
|
||||||
|
port: 10000,
|
||||||
|
serviceName: "proxy",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const envs = [
|
||||||
|
`BB_HOST=${mainDomain}`,
|
||||||
|
`BB_INTERNAL_API_KEY=${apiKey}`,
|
||||||
|
`BB_API_ENCRYPTION_KEY=${encryptionKey}`,
|
||||||
|
`BB_JWT_SECRET=${jwtSecret}`,
|
||||||
|
`BB_COUCHDB_PASSWORD=${couchDbPassword}`,
|
||||||
|
`BB_REDIS_PASSWORD=${redisPassword}`,
|
||||||
|
`BB_WATCHTOWER_PASSWORD=${watchtowerPassword}`,
|
||||||
|
`BB_MINIO_ACCESS_KEY=${minioAccessKey}`,
|
||||||
|
`BB_MINIO_SECRET_KEY=${minioSecretKey}`,
|
||||||
|
];
|
||||||
|
|
||||||
|
return {
|
||||||
|
domains,
|
||||||
|
envs,
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -107,6 +107,21 @@ export const templates: TemplateData[] = [
|
|||||||
tags: ["database"],
|
tags: ["database"],
|
||||||
load: () => import("./baserow/index").then((m) => m.generate),
|
load: () => import("./baserow/index").then((m) => m.generate),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: "budibase",
|
||||||
|
name: "Budibase",
|
||||||
|
version: "3.2.25",
|
||||||
|
description:
|
||||||
|
"Budibase is an open-source low-code platform that saves engineers 100s of hours building forms, portals, and approval apps, securely.",
|
||||||
|
logo: "budibase.svg",
|
||||||
|
links: {
|
||||||
|
github: "https://github.com/Budibase/budibase",
|
||||||
|
website: "https://budibase.com/",
|
||||||
|
docs: "https://docs.budibase.com/docs/",
|
||||||
|
},
|
||||||
|
tags: ["database", "low-code", "nocode", "applications"],
|
||||||
|
load: () => import("./budibase/index").then((m) => m.generate),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "ghost",
|
id: "ghost",
|
||||||
name: "Ghost",
|
name: "Ghost",
|
||||||
|
|||||||
Reference in New Issue
Block a user