# radicle-infra Easing the deployment of Radicle seed nodes with the magic of Nix 🌱 ➕ ❄️ ## Deployment Then to deploy to the target, for example `seed.radicle.dev`, use the following command. You might have to adjust the value of `$USER` if the username on your local machine does not match the username of your account on the target machine. Also, note that you may have to get permission to be added as a user first: ``` HOST=seed.radicle.dev; nixos-rebuild switch --target-host "${USER}@${HOST}" --build-host "${USER}@${HOST}" --use-remote-sudo --flake . ``` ### Overlays To deploy a version of packages that are not upstreamed (e.g. pre-releases), use the overlays in `./overlay`. Then the following option should be changed in `os/mixin/radicle.nix`: ```nix {pkgs, ...}: { # Use Nixpkgs services.radicle.package = pkgs.radicle-node; # Use overlaid version. services.radicle.package = pkgs.radicle-node-overlay; } ``` ## DNS The `radicle.{community,dev,network,xyz}` zones are configured via [DNSControl]. Previewing and pushing changes requires a [Cloudflare API Token] in the environment at `CLOUDFLARE_API_TOKEN`. In `/dns`: Sanity-check with: dnscontrol check Preview changes with: dnscontrol preview If the preview looks good, finally dnscontrol push Please keep `dnsconfig.js` tidy with dnscontrol fmt > tmp.js && mv tmp.js dnscontrol.js (As of 2025-06, there is no pre-commit hook for `dnscontrol`.) [Cloudflare API Token]: https://dash.cloudflare.com/profile/api-tokens [DNSControl]: https://docs.dnscontrol.org