Skip to content
Crow CI

Installation

Crow CI consists of three components:

ComponentRequiredDescription
ServerYesUI, API, webhook handling, pipeline parsing
AgentYesExecutes pipelines via Docker, Kubernetes, or local backend
AutoscalerNoSpins up/down cloud VMs for pending builds
MethodBest For
Docker ComposeSingle-server deployments
Helm ChartKubernetes clusters
AnsibleAutomated provisioning

All of them deploy Crow as containers, which is the supported way to run it. Standalone agent binaries also exist, but only to run an agent with the local backend, which executes pipeline commands directly on the host with no isolation and no plugin support. Read the warnings on that page before choosing it.

Crow uses SQLite by default. For production, PostgreSQL or MariaDB is recommended.1

Images are published to the Codeberg Container Registry:

The unsuffixed and -alpine tags differ depending on the component:

  • crow-server and crow-agent are published as Alpine-based images. The unsuffixed tag and the -alpine tag point to the same image — -alpine is kept as an alias for backwards compatibility.
  • crow-cli is published in two flavours: the unsuffixed tag is a minimal scratch image, and the -alpine tag is the Alpine variant.
TagDescription
vX.Y.ZSemVer release (server/agent: Alpine; cli: scratch)
vX.Y.Z-alpineSemVer release (Alpine, rootless; alias of vX.Y.Z for server/agent)
vX, vX.YRolling major/minor version
vX-alpine, vX.Y-alpineRolling major/minor version (Alpine variant)
devLatest from main branch
dev-alpineLatest from main branch (Alpine variant)

Agents authenticate with the server using tokens via CROW_AGENT_SECRET.

Set the same CROW_AGENT_SECRET on both server and agent. On first connection:

  1. Agent connects with system token
  2. Server registers agent and returns unique ID
  3. Agent stores ID in CROW_AGENT_CONFIG_FILE
  4. Subsequent connections use stored ID

For multiple agents with different configurations, create tokens via Settings → Agents → Add agent or the API. Each agent uses its assigned token in CROW_AGENT_SECRET.

Agent creation
Agent creation

Agents can run on separate machines from the server.

Connect using private IP addresses:

CROW_SERVER: <private-ip>:9000
CROW_AGENT_SECRET: <token>

Requires TLS for secure GRPC connection:

CROW_SERVER: grpc.crow.mydomain.com:443
CROW_GRPC_SECURE: "true"
CROW_AGENT_SECRET: <token>

Requirements:

  • Subdomain for GRPC service
  • Valid SSL certificate
  • TLS-terminating proxy

See Reverse Proxy Setup for ingress configuration examples.

  1. Pipeline logs are stored in the database. External log storage is planned.