Multi-tenant Nix Binary Cache http://celler.x86.lol/
  • Rust 92.4%
  • Nix 7.3%
  • HTML 0.2%
Find a file
Julian Stecklina 867c49f84f
Merge pull request #60 from blitz/blitz/seaorm-update
Update sea-orm update and add Changelog
2026-06-16 10:57:29 +02:00
.cargo .cargo: Rename config to config.toml 2024-09-02 14:07:37 -04:00
.github dependabot: group minor/patch rust updates 2026-05-02 15:57:49 +02:00
attic build(deps): bump fastcdc from 3.2.1 to 4.0.1 2026-06-09 22:32:24 +00:00
book docs: add changelog and simple migration guide 2026-06-16 10:35:22 +02:00
client celler/client: update to latest gorgon PR 2026-06-10 00:18:28 +02:00
flake flake/packages: simplify and expose tests 2026-04-15 00:08:07 +02:00
integration-tests integration-tests: move to garage as S3 server 2026-05-05 10:21:34 +02:00
nixos flake: simplify celler derivations 2026-04-12 23:11:50 +02:00
server celler/server: update sea-orm 2026-06-16 10:26:44 +02:00
token build(deps): bump the rust-dependencies group across 1 directory with 11 updates 2026-05-03 04:22:29 +00:00
.editorconfig .editorconfig: Fix indentation 2024-06-01 13:47:27 -06:00
.envrc Initial public commit 2022-12-31 17:01:07 -07:00
.gitattributes book: Add vendored highlight.js with Nix syntax 2023-01-29 17:23:59 -07:00
.gitignore Initial public commit 2022-12-31 17:01:07 -07:00
Cargo.lock celler/server: update sea-orm 2026-06-16 10:26:44 +02:00
Cargo.toml build(deps): bump toml from 0.8.23 to 1.1.2+spec-1.1.0 2026-06-13 21:50:00 +00:00
CHANGELOG.md docs: add changelog and simple migration guide 2026-06-16 10:35:22 +02:00
crane.nix celler: defeat clippy 2026-04-23 23:21:52 +02:00
default.nix flake: simplify celler derivations 2026-04-12 23:11:50 +02:00
flake-compat.nix Initial public commit 2022-12-31 17:01:07 -07:00
flake.lock build(deps): bump crane from d459c13 to 59a82a1 2026-06-13 21:12:07 +00:00
flake.nix flake: bump nixpkgs-stable to 26.05 2026-06-13 22:52:32 +02:00
LICENSE Initial public commit 2022-12-31 17:01:07 -07:00
README.md docs: add changelog and simple migration guide 2026-06-16 10:35:22 +02:00
renovate.json renovate.json: Group non-major updates together 2024-11-09 15:07:11 -07:00
shell.nix Initial public commit 2022-12-31 17:01:07 -07:00

Celler

Celler is a self-hostable Nix Binary Cache server backed by an S3-compatible storage provider. It has support for global deduplication and garbage collection.

It is derived from Attic. See the migration guide for migration instructions.

Rationale for Forking

We love Attic for its design, clear code and ease-of-use, but found it lacking for production setups. Development also seems to be stalled.

See the changelog for the current list of changes compared to Attic.

We are also interested in the following features and will work on them as time permits.

  • Prometheus Metrics for requests, duration of requests, NAR file size, chunk size, etc.
  • Request logging
  • Integration into Single-Sign On via OpenID Connect.
  • Store path pinning.

Try it out (15 minutes)

Let's spin up Celler in just 15 minutes. And yes, it works on macOS too!

Goals

  • Multi-Tenancy: Create a private cache for yourself, and one for friends and co-workers. Tenants are mutually untrusting and cannot pollute the views of other caches.
  • Global Deduplication: Individual caches (tenants) are simply restricted views of the content-addressed NAR Store and Chunk Store. When paths are uploaded, a mapping is created to grant the local cache access to the global NAR.
  • Managed Signing: Signing is done on-the-fly by the server when store paths are fetched. The user pushing store paths does not have access to the signing key.
  • Scalabilty: Celler can be easily replicated. It's designed to be deployed to serverless platforms like fly.io but also works nicely in a single-machine setup.
  • Garbage Collection: Unused store paths can be garbage-collected in an LRU manner.

Licensing

Celler is available under the Apache License, Version 2.0. See LICENSE for details.

By contributing to the project, you agree to license your work under the aforementioned license.

Contact

Chat with us on Matrix: #ctrl-os:cyberus-technology.de

For commercial support, reach out to Cyberus Technology.