Skip to main content

What is drim?

drim is a CLI tool for deploying Kaneo. It generates your docker-compose.yml, Caddyfile and .env, installs Docker if it is missing, and brings the stack up, so a fresh server goes from nothing to a running instance in one command. It suits straightforward deployments. If you need a custom topology, extra services, or your own reverse proxy, Docker Compose gives you more control.

Installation

Install Docker and Docker Compose using your operating system’s signed packages before running setup. Then install the fixed drim v0.1.15 release using the release-asset SHA-256 checksums below. The download is saved to a temporary file and verified before it is made executable; it does not run an installation script.
Add ~/.local/bin to your shell’s PATH, or use ~/.local/bin/drim in place of drim below. WSL uses the Linux asset matching its architecture. Stop on a checksum mismatch; do not replace the expected checksum with one supplied by the failed download. These fixed digests pin the published bytes, not a claim that the release was independently audited. When updating drim, select a release and update its expected digest together.

Quick start

Interactive

You are asked whether to use the bundled Caddy reverse proxy, and for a domain. Leave the domain empty for a local deployment, reachable at http://localhost, or http://localhost:5173 when you skip the reverse proxy.

Non-interactive

Pass the configuration as flags to skip the prompts, which is what you want in a script or over SSH without a terminal:
Point your domain’s DNS A record at the server before running setup. Caddy requests a certificate immediately, and that only succeeds once the record resolves.

Commands

Run these from the directory holding your docker-compose.yml. drim tells you when it cannot find a deployment there. drim restart restarts the containers. Because services read configuration through env_file, a plain restart reuses the environment a container was created with, so use drim restart --recreate to recreate containers and pick up .env changes. drim configure already does this for you.

What gets installed

  • PostgreSQL 16, the database
  • Kaneo, the API and web app in a single container
  • Caddy, the reverse proxy with automatic HTTPS, unless you pass --no-reverse-proxy
Services run with health checks and restart automatically unless explicitly stopped. PostgreSQL is only reachable on the internal Docker network, never published to the host.

Configuration

This opens .env in $EDITOR (or nano). After saving, drim offers to apply the changes, which recreates the containers so the new values take effect. drim setup writes the variables Kaneo requires. Optional features are enabled by adding their variables, for example:
See environment variables for the full list.

Requirements

  • Docker 20.10+ and Docker Compose V2
  • 2GB RAM and 10GB disk
  • A public DNS record, for production deployments
drim installs Docker automatically on supported Linux distributions. When it does, it also adds your user to the docker group and stops, because group membership only applies to a new login session. Log out, log back in, and run drim setup again. If Docker is already installed but you are not in the docker group, setup tells you so before writing any files, along with the command to fix it:

Upgrading

Back up your database, files, and configuration first. This pulls the selected images and recreates changed services. Data volumes are retained, but the API can migrate the database when it starts. See Upgrade Kaneo for checks and recovery. To update drim itself, repeat the verified installation procedure with a newly reviewed release and its fixed checksum. The built-in updater follows the latest release and is not part of this pinned installation procedure.
Deployments created before Kaneo moved to a single container still run the older two-image layout, and drim upgrade does not rewrite an existing docker-compose.yml. See migrating to drim to move to the current layout.

Building from source

make build-all cross-compiles for every supported platform.

Getting help