Next-generation Nix CI system for clowns
  • Rust 69.7%
  • Nix 20.2%
  • HTML 6.3%
  • PLpgSQL 2%
  • CSS 1.8%
Find a file
NotAShelf 0e6d249e0f
common: initial database handling
Can be configured from the config file, and also using environment
options.

```toml
[database]
url = "postgresql://fc_ci:password@localhost/fc_ci"
max_connections = 20
min_connections = 5
connect_timeout = 30
idle_timeout = 600
max_lifetime = 1800
```

We'll want to support SQlite in the future, and better secret handling
for database credentials. For now, this is workable.

---

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I36b4c1306511052a2748ca9d5d3429366a6a6964
2026-02-02 01:15:01 +03:00
crates common: initial database handling 2026-02-02 01:15:01 +03:00
docs docs: add initial design document 2026-02-02 01:14:59 +03:00
.envrc nix: initial tooling setup 2026-02-02 01:14:58 +03:00
.gitignore initial commit 2026-02-02 01:14:56 +03:00
Cargo.lock common: initial database handling 2026-02-02 01:15:01 +03:00
Cargo.toml common: initial database handling 2026-02-02 01:15:01 +03:00
flake.lock nix: initial tooling setup 2026-02-02 01:14:58 +03:00
flake.nix nix: initial tooling setup 2026-02-02 01:14:58 +03:00
README.md docs: add very basic README 2026-02-02 01:14:57 +03:00

FC

FC is a modern, Rust-based continuous integration system designed to replace Hydra for our systems. Heavily work in progress.

Architecture

  • server: Web API and UI (Axum)
  • evaluator: Git polling and Nix evaluation
  • queue-runner: Build dispatch and execution
  • common: Shared types and utilities

Development

nix develop
cargo build

Components

Server

Web API server providing REST endpoints for project management, jobsets, and build status.

Evaluator

Periodically polls Git repositories and evaluates Nix expressions to create builds.

Queue Runner

Processes build queue and executes Nix builds on available machines.