Skip to content

Installation

agirunner is the public entry point for bringing up the product locally.

The top-level Compose stack pulls the published platform, dashboard, and container-manager, and runtime images directly from GHCR.

  • Docker with Compose support
  • openssl for generating bootstrap secrets
  • a provider API key for at least one supported model source once you are ready to run real workflows

Supported providers today are Anthropic, OpenAI, Google, OpenRouter, Ollama, and vLLM.

Terminal window
git clone https://github.com/agirunner/agirunner
Terminal window
cd agirunner
cp .env.example .env
printf "JWT_SECRET=%s\nWEBHOOK_ENCRYPTION_KEY=%s\nDEFAULT_ADMIN_API_KEY=ab_admin_def%s\nPLATFORM_SERVICE_API_KEY=ar_service_%s\n" \
"$(openssl rand -hex 32)" \
"$(openssl rand -hex 32)" \
"$(openssl rand -hex 16)" \
"$(openssl rand -hex 16)"
docker compose up -d

Generate values with the command above, then paste them into .env before you continue. Keep PLATFORM_API_PORT=8080 for the published dashboard image.

Important local endpoints:

  • dashboard: http://localhost:3000
  • platform API: http://localhost:8080
  • dashboard login key: DEFAULT_ADMIN_API_KEY from agirunner/.env
  • container-manager service key: PLATFORM_SERVICE_API_KEY from agirunner/.env

At this point the system is alive, but it is not useful yet until you configure a model provider.

The platform API applies migrations and default seed/bootstrap work during startup, so there is no separate migration command to run during product bring-up.

After generating the bootstrap secrets, replace the placeholder values in .env before sharing the stack. The bootstrap admin key must start with ab_admin_def. The service key must use the canonical ar_service_<secret> format.

The stack needs at least one working model provider before workflows can execute.

  1. Open the dashboard at http://localhost:3000
  2. Go to Platform -> Models
  3. Configure a provider and confirm models are available
  4. Set the system default and any role-specific overrides you need

If model configuration is missing, the platform may still look healthy, but launched workflows will stall when they need actual routing or task execution.

The top-level Compose stack currently brings up:

  • PostgreSQL for platform state
  • the platform API
  • the container manager
  • the dashboard
  • the Docker socket proxy used to support execution isolation

Task execution containers are then created later as work is claimed and executed. The runtime in this stack is an execution image the container manager launches, not a long-running top-level service. The default execution image in the product stack is ghcr.io/agirunner/agirunner-runtime:latest.

Terminal window
docker compose ps
curl http://localhost:8080/health

Good signs:

  • the dashboard loads without backend errors
  • the API health route responds successfully
  • a provider appears under Platform -> Models
  • launched work can progress once a provider is configured