Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

This guide covers installing Tasker components for development.

Prerequisites

  • Docker and Docker Compose V2 (for Tasker infrastructure)
  • Rust toolchain (for installing tasker-ctl)
  • A language runtime for your workers: Ruby 3.2+, Python 3.10+, Bun 1.0+ (or Node 18+), or Rust 1.75+

Install tasker-ctl

tasker-ctl is the CLI tool for scaffolding projects, generating handlers, and managing configuration:

cargo install tasker-ctl

Verify the installation:

tasker-ctl --version
# tasker-ctl 0.1.4

Apple Silicon note: The published Docker images on GHCR are currently x86_64 only. On Apple Silicon Macs, enable “Use Rosetta for x86_64/amd64 emulation” in Docker Desktop settings, or ensure your docker-compose.yml includes platform: linux/amd64 on Tasker service containers.

Installing Worker Packages

Install the package for your language of choice:

Ruby

gem install tasker-rb

Or add to your Gemfile:

gem 'tasker-rb', '~> 0.1.5'

Python

pip install tasker-py

Or with uv:

uv add tasker-py

TypeScript / JavaScript

bun add @tasker-systems/tasker

Or with npm:

npm install @tasker-systems/tasker

Rust

Add to your Cargo.toml:

[dependencies]
tasker-worker = "0.1.4"
tasker-client = "0.1.4"

Infrastructure with Docker Compose

Tasker requires PostgreSQL (with the PGMQ extension) and an orchestration service. The fastest way to get these running is Docker Compose.

You can generate a compose file with tasker-ctl:

tasker-ctl init
tasker-ctl remote update
tasker-ctl template generate docker_compose \
  --plugin tasker-contrib-ops \
  --param name=myproject

Or use the pre-configured stack from the example apps:

git clone https://github.com/tasker-systems/tasker-contrib.git
cd tasker-contrib/examples
docker compose up -d

This starts PostgreSQL (with PGMQ), the Tasker orchestration engine, RabbitMQ, and Dragonfly (cache). The orchestration API is available at http://localhost:8080.

Verify services are running

curl -sf http://localhost:8080/health

Configuration

Tasker uses environment variables and TOML configuration files. Key environment variables:

# Database connection (required)
export DATABASE_URL="postgresql://tasker:tasker@localhost:5432/tasker"

# Orchestration API URL (for client SDKs and tasker-ctl)
export ORCHESTRATION_URL="http://localhost:8080"

# Messaging backend: "pgmq" (default, uses PostgreSQL) or "rabbitmq"
export TASKER_MESSAGING_BACKEND="pgmq"

For full configuration management, see Configuration Management or generate annotated config files with tasker-ctl config generate.

Next Steps