# 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: