Installation
Strøm ships four binaries: stroem-server, stroem-worker, stroem (local workspace CLI) and stroem-api (remote server client). You can install them via pre-built binaries or Docker images.
Pre-built binaries
Section titled “Pre-built binaries”Download the latest release from GitHub Releases. Each release has one archive per binary and Linux target:
| Platform | Archives |
|---|---|
| Linux (x86_64) | stroem-server-x86_64-unknown-linux-gnu.tar.gz, stroem-worker-x86_64-unknown-linux-gnu.tar.gz, stroem-x86_64-unknown-linux-gnu.tar.gz, stroem-api-x86_64-unknown-linux-gnu.tar.gz |
| Linux (ARM64) | stroem-server-aarch64-unknown-linux-gnu.tar.gz, stroem-worker-aarch64-unknown-linux-gnu.tar.gz, stroem-aarch64-unknown-linux-gnu.tar.gz, stroem-api-aarch64-unknown-linux-gnu.tar.gz |
stroem is the local workspace CLI and stroem-api the remote server client. The binaries are built on Debian 12 (glibc 2.36) and run on Linux distributions with that glibc or a newer one. stroem-server also needs OpenSSL 3 (libssl3 on Debian and Ubuntu). macOS and Windows binaries are not published; build those from source.
# Example: install the stroem CLI on LinuxARCH=$(uname -m) # x86_64 or aarch64curl -fsSL "https://github.com/fremvaerk/stroem/releases/latest/download/stroem-${ARCH}-unknown-linux-gnu.tar.gz" \ | sudo tar xz -C /usr/local/binDocker images
Section titled “Docker images”Images are published to GHCR. Release tags (X.Y.Z, X.Y, X) are multi-arch (linux/amd64 + linux/arm64):
VERSION=X.Y.Z # a release version; X.Y and X tags are published toodocker pull ghcr.io/fremvaerk/stroem-server:${VERSION}docker pull ghcr.io/fremvaerk/stroem-worker:${VERSION}docker pull ghcr.io/fremvaerk/stroem-runner:${VERSION} # base image for script-in-container stepsThe sha-<commit> and latest tags are built from main and are linux/amd64 only. A release also points latest at its multi-arch image until the next main build replaces it, so pull a release tag when you need linux/arm64. Releases up to v0.18.3 have linux/amd64 images and x86_64 archives only.
Build from source
Section titled “Build from source”Prerequisites: Rust (latest stable), Docker (for integration tests).
git clone https://github.com/fremvaerk/stroem.gitcd stroemcargo build --workspaceThe binaries are placed in target/debug/ (or target/release/ with --release).
Feature flags
Section titled “Feature flags”The worker binary supports optional features for container runners:
# Docker runner onlycargo build -p stroem-worker --features docker
# Kubernetes runner onlycargo build -p stroem-worker --features kubernetes
# Both (default when building the full workspace)cargo build -p stroem-worker --features docker,kubernetesRequirements
Section titled “Requirements”- Server: PostgreSQL 14+ database
- Worker: Network access to the server. Optionally Docker daemon access (for Docker runner) or Kubernetes API access (for Kubernetes runner).
- CLI: Network access to the server