Skip to main content

Installing iii

iii runs as a single binary that orchestrates your backend functions and triggers. Choose your preferred installation method below. The fastest way to get started is with the installation script:
The installation script automatically detects your platform (Linux, macOS, Windows) and architecture (x86_64, ARM64).

Verify Installation

After installation, verify that iii is available:
Expected output:

Docker Installation

iii is available as a Docker image for containerized deployments.

Pull the Image

Run with Docker

1

Create a config file (optional)

If you need custom module configuration, create a config.yaml file:
config.yaml
2

Run the container

If you don’t provide a config file, iii loads default modules: HTTP, Queue, Cron, Stream, and Observability.
3

Verify the engine is running

The engine exposes several ports:

Production Docker Deployment

For production environments, use a hardened configuration:
Production images use distroless runtime (no shell, minimal attack surface) and run as non-root user.

Docker Compose

For a complete stack with Redis and RabbitMQ:
1

Create docker-compose.yml

docker-compose.yml
2

Start the stack

3

Check status

Queue and Stream modules require Redis at redis://localhost:6379 by default. Override with environment variables in your config.

Build from Source

For development or custom builds:
1

Install Rust toolchain

2

Clone the repository

3

Build the binary

The binary will be at target/release/iii.
4

Run the engine

Development Commands

Environment Configuration

iii supports environment variable expansion in config files:
config.yaml
The syntax ${VAR:default} reads from environment or uses the default value.

Next Steps

Start the Engine

Learn how to start iii and connect your first worker

Install an SDK

Install the Node.js, Python, or Rust SDK to write functions

Configure Modules

Customize HTTP, Queue, Cron, Stream, and other modules

Production Setup

Hardening, monitoring, and scaling for production
Default Modules: Without a config file, iii loads HTTP, Queue, Cron, Stream, and Observability modules. Queue and Stream expect Redis at redis://localhost:6379.