Nix flakes on the AT protocol
3

Configure Feed

Select the types of activity you want to include in your feed.

7 1 1

Clone this repository

https://git.vm.fail/stau.space/nix-atproto https://git.vm.fail/did:plc:ortn6f3bn33e7ffn3jz2pbs6
ssh://git@knot1.tangled.sh:2222/stau.space/nix-atproto ssh://git@knot1.tangled.sh:2222/did:plc:ortn6f3bn33e7ffn3jz2pbs6

For self-hosted knots, clone URLs may differ based on your setup.


README.md

Nix on the AT protocol#

This is still very WIP.

The idea for this project originally started with wanting to have nix flakes be entirely inside AT protocol infrastructure.1 Your flake's metadata lives inside your own repo on your PDS as a record of the following lexicon: space.stau.nix.release.

Status#

Currently, Nix infrastructure is missing a fetcher that is able to resolve AT URIs. This is not surprising considering they have not had any use to do this before. A fetcher is needed in order to be able to declare an AT URI as an input for a flake.

As of now, you can publish flakes to your repo and you can build flakes directly from an AT URI. The closest you can get to being able to use an AT URI to fetch a git input would be to resolve the AT URI, getting the source and rev from your repo and putting that together in order to create a URL that Nix accepts and is able to fetch.

Usage#

nixat build at://did:your:didHere/space.stau.nix.release/v1.0.0
nixat publish path/to/flake/ v3.1.4

Building#


  1. This is technically, but not feasible long-term. You can upload blobs of source code to your PDS, but these blobs are usually capped by a max size. The closest one can get to emulating this is similar to what Tangled does: knots. This means that the source code for the flake lives inside a knot while the rest of the project lives inside your actual PDS. ↩︎