Budibase on Ubuntu 24.04 (Docker Compose + CouchDB + Redis + SSL)

Budibase is an open-source low-code platform that allows developers and teams to quickly build internal tools, dashboards, and CRUD web apps without extensive frontend coding. With features like form builders, data connectors, authentication, and automation, Budibase is ideal for creating custom internal applications, admin panels, and process management systems — all self-hosted and fully customizable.

Running Budibase on Ubuntu 24.04 LTS (Noble Numbat) with Docker Compose ensures a fast, secure, and long-term supported environment. Ubuntu 24.04 provides systemd 255, OpenSSL 3, and the latest Docker stack, making it a reliable platform for hosting Budibase in production, complete with SSL and Nginx reverse proxy integration.


Architecture Overview

LayerComponentRole
OSUbuntu 24.04 LTSStable and secure Linux foundation with long-term support
Container RuntimeDocker Engine + ComposeOrchestrates Budibase and its dependent services
DatabaseCouchDB / PostgreSQL (optional)Stores app data, users, and configurations
Cache QueueRedisHandles caching, sessions, and background jobs
BackendBudibase ServerManages APIs, automation, and database logic
FrontendBudibase Web AppProvides the visual builder and admin interface
Reverse ProxyNginx (optional)TLS termination, routing, compression, and caching
TLSLet’s Encrypt / PKIEnables HTTPS for secure app access

Why Use Budibase?

  • Low-code development – build apps visually with minimal programming.
  • Open-source – free, self-hosted, and extensible for any business logic.
  • Rapid prototyping – create internal tools and admin panels in minutes.
  • Integrations – connect to external databases, APIs, and webhooks.
  • User management – built-in authentication, roles, and permissions.
  • Self-hosted control – keep sensitive data on your own infrastructure.

Budibase vs Other Low-Code Platforms

Feature/CapabilityBudibase (Self-hosted)Retool (Cloud)Appsmith (Self-hosted)ToolJet (Self-hosted)
HostingSelf-hosted (Docker)SaaS onlySelf-hostedSelf-hosted
CostFree, open-sourceSubscription-basedFree + enterprise tierFree + enterprise tier
Database optionsCouchDB / PostgreSQLExternal connectorsPostgreSQL / MongoDBPostgreSQL / MongoDB
AuthenticationBuilt-inExternal (SaaS)Built-inBuilt-in
ExtensibilityHigh (custom plugins)ModerateHighHigh

Budibase stands out for its ease of use, modular architecture, and strong self-hosted support, making it perfect for teams building internal tools securely and efficiently.


Security & Best Practices

  • Run Budibase behind Nginx with HTTPS enabled.
  • Store environment variables and credentials in .env securely.
  • Use Docker secrets for sensitive values like API keys and database passwords.
  • Restrict CouchDB/Redis access to internal Docker networks.
  • Keep Ubuntu, Docker, and Budibase images regularly updated.
  • Automate SSL renewal with Certbot or Traefik.
  • Use UFW or nftables to expose only ports 80 and 443.

Typical Use Cases

  • Internal tools for HR, operations, or finance teams.
  • CRUD dashboards for managing data from APIs or databases.
  • Client portals for sharing data securely.
  • Workflow automation integrated with webhooks and third-party APIs.
  • Prototyping business apps rapidly without full-stack development.

Deploying Budibase on Ubuntu 24.04 with Docker Compose gives you a self-hosted, low-code app platform that’s fast, secure, and enterprise-ready — empowering teams to build custom tools without depending on external SaaS services.


Step 1: Create a Server Instance on Shape.Host

To host Budibase securely, start by creating a server on Shape.Host:

Log into your Shape.Host account.

Click Create → Instance.

Shape.host Resources dashboard with Create > Instance highlighted.

Choose your preferred data center location.

Shape.host instance form with the data center location selector highlighted.

Select a plan with at least 2 CPUs, 4 GB RAM, and 20 GB SSD (recommended).

Choose Ubuntu 24.04 (64-bit) as your operating system.

Shape.host instance form with the operating system image selector highlighted.

Click Create Instance.

Shape.host instance form with the Create Instance button highlighted.

Once the instance is ready, copy the public IP address from the Resources section.

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to Your Server

  • Linux/macOS: ssh root@your_server_ip
  • Windows (PuTTY):
    1. Enter your Shape.Host IP address.
    2. Choose SSH connection type.
    3. Click Open and log in using your credentials.

Step 3: Install Docker and Docker Compose

Update your system packages:

apt update
Terminal showing APT package management commands and output.

Install dependencies required for Docker:

apt install ca-certificates curl gnupg lsb-release
Terminal showing APT package management commands and output.

Create a directory for Docker’s GPG key:

mkdir -p /etc/apt/keyrings

Add Docker’s official GPG key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Add Docker’s stable repository to your system:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list

Update the package list again:

apt update
Terminal showing APT package management commands and output.

Install Docker Engine and Compose plugin:

apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Terminal showing APT package management commands and output.

Enable and start the Docker service:

systemctl enable --now docker

Verify that Docker Compose is installed correctly:

docker compose version

If you see the version number, everything is ready.

Terminal showing systemd service management commands or output.

Step 4: Create a Directory for Budibase

Make a directory where Budibase will live:

mkdir /opt/budibase

Change into that directory:

cd /opt/budibase

Step 5: Create the Docker Compose File

Open the Docker Compose configuration file:

nano docker-compose.yml

Paste the following content:

services:
  couchdb:
    image: couchdb:3
    restart: always
    environment:
      COUCHDB_USER: admin
      COUCHDB_PASSWORD: change_this_password
    volumes:
      - couchdb:/opt/couchdb/data

  minio:
    image: minio/minio
    restart: always
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: change_this_password
    command: server /data
    volumes:
      - minio-data:/data

  redis:
    image: redis:7
    restart: always

  budibase:
    image: budibase/budibase:latest
    restart: always
    depends_on:
      - couchdb
      - redis
      - minio
    ports:
      - "80:80"
    environment:
      BB_ADMIN_USER: admin@admin.com
      BB_ADMIN_PASSWORD: admin
      COUCHDB_URL: http://admin:change_this_password@couchdb:5984
      REDIS_URL: redis://redis:6379
      MINIO_ENDPOINT: minio
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: change_this_password
      MINIO_USE_SSL: "false"

volumes:
  couchdb:
  minio-data:

Explanation:

  • CouchDB — stores app data and configuration.
  • MinIO — object storage used for file uploads.
  • Redis — caching and session handling.
  • Budibase — main application container.

Use strong, unique passwords for all fields marked change_this_password.

Save and close with CTRL + O, then CTRL + X.

Terminal showing the GNU nano editor and configuration text.

Step 6: Pull and Start Budibase

Download the latest Docker images:

docker compose pull
Terminal showing container image download progress.
Terminal showing container image download progress.

Start all services in detached mode:

docker compose up -d
Terminal showing docker commands or output during Pull and Start Budibase.

Check the status of containers:

docker compose ps

If all containers show as “Up,” your installation is successful.


Step 7: Access the Budibase Web Interface

Open your browser and visit:

http://YOUR_SERVER_IP

Log in using:

  • Email: admin@admin.com
  • Password: admin

After logging in, you can change your admin credentials and start creating internal tools.

Budibase account creation form.
Budibase Create your workspace dialog.
Budibase workspace showing app and data source creation options.

Step 8 (Optional): Enable SSL with Certbot

If you have a domain (e.g., apps.example.com), you can secure Budibase with HTTPS:

apt install python3-certbot-nginx
certbot --nginx -d yourdomain.com

Certbot will automatically configure SSL certificates from Let’s Encrypt.


You’ve successfully installed Budibase on Ubuntu 24.04 using Docker Compose.
Your setup includes CouchDB, Redis, and MinIO, providing a full-featured environment for rapid internal app development.

For better scalability and reliability, deploy your Budibase instance on a Shape.Host Linux SSD VPS, optimized for container-based workloads with guaranteed performance and uptime.