Skip to content

feat(nix): add flake, CI/CD, Dockerfile, and project docs#1

Open
jamesbrink wants to merge 1 commit intojereanon:developfrom
jamesbrink:feat/nix-flake
Open

feat(nix): add flake, CI/CD, Dockerfile, and project docs#1
jamesbrink wants to merge 1 commit intojereanon:developfrom
jamesbrink:feat/nix-flake

Conversation

@jamesbrink
Copy link

@jamesbrink jamesbrink commented Feb 23, 2026

Summary

  • Nix flake with crane-based build, clippy, cargoFmt, and cargoTest checks across all 4 platforms (x86_64-linux, aarch64-linux, x86_64-darwin, aarch64-darwin)
  • rust-overlay for stable Rust toolchain (matches upstream), treefmt-nix for Nix formatting
  • GitHub Actions CI: cargo fmt --check, clippy, tests, Docker build/push to ghcr.io
  • Native multi-stage Dockerfile (rust:1-bookworm builder, debian:bookworm-slim runtime)
  • Nix Docker image via buildLayeredImage (Linux only)
  • NixOS and nix-darwin service modules (nixosModules.default, darwinModules.default)
  • Dev shell with cargo-watch, cargo-edit, rust-analyzer
  • Overlay (overlays.default) for easy integration into other flakes
  • README with CI/Nix/Rust badges, flake usage docs, and service module examples
  • Project files: CLAUDE.md, AGENTS.md, .envrc, rust-toolchain.toml, rustfmt.toml, LICENSE

Test plan

  • nix flake check passes (build, clippy, fmt, tests, treefmt)
  • nix build produces working binary with config.example.toml
  • nix build .#dockerImage builds Docker image (Linux)
  • docker build . builds via native Dockerfile
  • GitHub Actions CI passes (check + docker jobs)
  • nix develop provides working dev shell

- Nix flake with crane build, clippy, cargoFmt, and cargoTest checks
- rust-overlay for stable Rust toolchain (matching upstream)
- treefmt-nix for Nix formatting, crane cargoFmt for Rust formatting
- Docker image via buildLayeredImage (Linux) and native Dockerfile
- GitHub Actions CI: fmt, clippy, test, Docker build/push to ghcr.io
- NixOS and nix-darwin service modules
- Dev shell with cargo-watch, cargo-edit, rust-analyzer
- Overlay and package outputs for all 4 platforms
- README with badges, Nix usage docs, and service module examples
- CLAUDE.md, AGENTS.md, .envrc, rust-toolchain.toml, rustfmt.toml
@jamesbrink jamesbrink changed the base branch from main to develop February 23, 2026 01:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant