Installation
Requirements
- Rust 1.75+ — For building from source
- Bash-compatible shell — For the zero-dependency shell runtime quick start
- Docker or Podman — Optional, for image-based task execution
- PostgreSQL — Optional, for persistence
- RabbitMQ — Optional, for distributed mode
Download Binary
# Check releases for your platform
curl -L https://github.com/runabol/twerk/releases/latest/download/twerk-linux-x86_64.tar.gz | tar xz
./twerk --help
Build from Source
git clone https://github.com/runabol/twerk.git
cd twerk
cargo build --release -p twerk-cli
./target/release/twerk --help
For a local first run from the repo root, the checked-in config.toml already points Twerk at the in-memory broker/datastore and shell runtime:
./target/release/twerk server start standalone
Set up PostgreSQL
docker run -d \
--name twerk-postgres \
-p 5432:5432 \
-e POSTGRES_PASSWORD=twerk \
-e POSTGRES_USER=twerk \
-e POSTGRES_DB=twerk \
postgres:15.3
Run migration:
TWERK_DATASTORE_TYPE=postgres \
TWERK_DATASTORE_POSTGRES_DSN="host=localhost user=twerk password=twerk dbname=twerk port=5432 sslmode=disable" \
./twerk migration
Set up RabbitMQ (Distributed Mode)
docker run -d \
--name twerk-rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
rabbitmq:3-management
Access management UI at http://localhost:15672 (guest/guest).
Configuration
Twerk is configured via TOML files or environment variables:
# Environment variable format
TWERK_<SECTION>_<KEY>=value
# Examples
TWERK_LOGGING_LEVEL=debug
TWERK_BROKER_TYPE=rabbitmq
TWERK_DATASTORE_TYPE=postgres
TWERK_RUNTIME_TYPE=docker
See Configuration for full reference.
Next Steps
- Quick Start — Run your first job
- CLI Reference — All commands