Skip to main content

Installation

SuperToolMake is distributed as a single Docker image. This is the recommended way to self-host it.

Why SuperToolMake is lightweight

Other low-code platforms such as Appsmith and Tooljet recommend a minimum of 8GB of RAM when self-hosting. Budibase is a little better, but still recommends 6GB.

SuperToolMake takes a lightweight, modular approach, focusing on the core app builder and data interface experience, with the option to connect to external systems as needed. SuperToolMake has a total memory footprint under 0.5GB, and comfortably runs on a 1GB box.

Running via Docker

A single image is published under Packages. Pull down the latest image and run it:

docker run -d -t \
--name=supertoolmake \
-p 10000:80 \
-v /local/path/data:/data \
-v /local/path/data:/opt/couchdb/data \
--restart unless-stopped \
ghcr.io/supertoolmake/supertoolmake:latest

Once the container is running, open http://localhost:10000/builder and create an admin user.

Not using Docker Desktop?

You can use Colima as a Docker runtime. Run colima start to spin it up before running the commands above.

Running via Docker Swarm

For production deployments that need high availability and zero-downtime updates, run SuperToolMake as a Docker Swarm service. Swarm's built-in routing mesh manages traffic and rolling updates automatically.

Prerequisites

Ensure Docker Engine is installed and Swarm mode is initialised on your host. You can initialise a single-node swarm (which you can expand later) with:

docker swarm init

Creating the service

Instead of docker run, use docker service create. Named volumes are used here for persistent data; ensure the volume exists or let Docker create it automatically:

docker service create \
--name supertoolmake \
--replicas 1 \
--publish 10000:80 \
--mount type=volume,source=my-vol,target=/data \
--mount type=volume,source=my-vol,target=/opt/couchdb/data \
--update-delay 10s \
ghcr.io/supertoolmake/supertoolmake:latest

Performing rolling updates

To update to a new version without downtime, run:

docker service update \
--update-delay 45s \
--force \
--image ghcr.io/supertoolmake/supertoolmake:latest \
supertoolmake

Swarm will start the new container, verify it is healthy, and then stop the old one.

Managing environment variables

To pass environment variables, use the --env flag during creation (for example --env MY_VAR=value). To update them later, re-run docker service update --env ..., which triggers a rolling restart of the service. See Environment variables for the full list.

Data persistence

SuperToolMake stores its internal data in CouchDB. The volume mounts above (/data and /opt/couchdb/data) ensure your workspaces, apps and users survive container restarts and upgrades. Upgrading the image should not affect the data in these volumes, but it is recommended that you back them up before upgrading.