115 lines
3.8 KiB
YAML
115 lines
3.8 KiB
YAML
# Budibase - Low-code platform for building internal tools
|
|
# https://github.com/Budibase/budibase
|
|
#
|
|
# Budibase is an all-in-one low-code platform for building modern internal tools and
|
|
# dashboards. It allows you to build apps quickly with a spreadsheet-like database,
|
|
# drag-and-drop UI, and pre-built components.
|
|
#
|
|
# Key Features:
|
|
# - Visual app builder with drag-and-drop interface
|
|
# - Built-in database or connect to external data sources
|
|
# - Multi-tenant support with user management
|
|
# - REST API, GraphQL, and webhooks support
|
|
# - Custom plugins and automation support
|
|
#
|
|
# Default Credentials:
|
|
# - Access UI at http://localhost:10000
|
|
# - Default admin email: admin@budibase.com
|
|
# - Default password: changeme
|
|
#
|
|
# Security Notes:
|
|
# - Change default admin credentials immediately
|
|
# - Use strong INTERNAL_API_KEY and JWT_SECRET in production
|
|
# - Store sensitive data in .env file
|
|
# - Enable SSL/TLS in production environments
|
|
#
|
|
# License: GPL-3.0 (https://github.com/Budibase/budibase/blob/master/LICENSE)
|
|
|
|
x-defaults: &defaults
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: 100m
|
|
max-file: "3"
|
|
|
|
services:
|
|
budibase:
|
|
<<: *defaults
|
|
image: ${GLOBAL_REGISTRY:-}budibase/budibase:${BUDIBASE_VERSION:-3.23.0}
|
|
container_name: budibase
|
|
ports:
|
|
- "${BUDIBASE_PORT_OVERRIDE:-10000}:80"
|
|
environment:
|
|
# Core settings
|
|
- APP_PORT=${BUDIBASE_APP_PORT:-4002}
|
|
- WORKER_PORT=${BUDIBASE_WORKER_PORT:-4003}
|
|
- MINIO_PORT=${BUDIBASE_MINIO_PORT:-4004}
|
|
- COUCH_DB_PORT=${BUDIBASE_COUCH_DB_PORT:-4005}
|
|
- REDIS_PORT=${BUDIBASE_REDIS_PORT:-6379}
|
|
- BUDIBASE_ENVIRONMENT=${BUDIBASE_ENVIRONMENT:-PRODUCTION}
|
|
|
|
# Security - REQUIRED: Override these in .env file
|
|
- INTERNAL_API_KEY=${BUDIBASE_INTERNAL_API_KEY:-changeme_internal_api_key_minimum_32_chars}
|
|
- JWT_SECRET=${BUDIBASE_JWT_SECRET:-changeme_jwt_secret_minimum_32_chars}
|
|
- MINIO_ACCESS_KEY=${BUDIBASE_MINIO_ACCESS_KEY:-budibase}
|
|
- MINIO_SECRET_KEY=${BUDIBASE_MINIO_SECRET_KEY:-budibase}
|
|
- COUCHDB_USER=${BUDIBASE_COUCHDB_USER:-admin}
|
|
- COUCHDB_PASSWORD=${BUDIBASE_COUCHDB_PASSWORD:-admin}
|
|
|
|
# Admin user - REQUIRED: Override these in .env file
|
|
- BB_ADMIN_USER_EMAIL=${BUDIBASE_ADMIN_EMAIL:-admin@budibase.com}
|
|
- BB_ADMIN_USER_PASSWORD=${BUDIBASE_ADMIN_PASSWORD:-changeme}
|
|
|
|
# Optional settings
|
|
- DEPLOYMENT_ENVIRONMENT=${BUDIBASE_DEPLOYMENT_ENVIRONMENT:-docker}
|
|
- POSTHOG_TOKEN=${BUDIBASE_POSTHOG_TOKEN:-}
|
|
- ACCOUNT_PORTAL_URL=${BUDIBASE_ACCOUNT_PORTAL_URL:-https://account.budibase.app}
|
|
- REDIS_URL=redis://redis:6379
|
|
- TZ=${TZ:-UTC}
|
|
|
|
volumes:
|
|
- budibase_data:/data
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: "${BUDIBASE_CPU_LIMIT:-2.0}"
|
|
memory: "${BUDIBASE_MEMORY_LIMIT:-2G}"
|
|
reservations:
|
|
cpus: "${BUDIBASE_CPU_RESERVATION:-0.5}"
|
|
memory: "${BUDIBASE_MEMORY_RESERVATION:-512M}"
|
|
|
|
redis:
|
|
<<: *defaults
|
|
image: ${GLOBAL_REGISTRY:-}redis:${REDIS_VERSION:-7-alpine}
|
|
container_name: budibase-redis
|
|
command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
|
|
volumes:
|
|
- redis_data:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: "${REDIS_CPU_LIMIT:-0.5}"
|
|
memory: "${REDIS_MEMORY_LIMIT:-512M}"
|
|
reservations:
|
|
cpus: "${REDIS_CPU_RESERVATION:-0.1}"
|
|
memory: "${REDIS_MEMORY_RESERVATION:-128M}"
|
|
|
|
volumes:
|
|
budibase_data:
|
|
redis_data:
|