What is drim?
drim is a CLI tool for deploying Kaneo. It generates yourdocker-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 script options
/usr/local/bin. It supports Linux and macOS on amd64 and arm64, and Windows through WSL.
Quick start
Interactive
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
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
Configuration
.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:
Requirements
- Docker 20.10+ and Docker Compose V2
- 2GB RAM and 10GB disk
- A public DNS record, for production deployments
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
Building from source
make build-all cross-compiles for every supported platform.