infra/docs/deploying.md

1.7 KiB

Deploying new versions

We use deploy-rs to deploy changes. Currently this process is not automated, so configuration changes will have to be manually deployed.

To deploy, make sure you have a working development shell. Then, run deploy-rs with the hostname of the server you want to deploy:

For nachtigall.pub.solar:

deploy --targets '.#nachtigall' --magic-rollback false --auto-rollback false --keep-result --result-path ./results

For flora-6.pub.solar:

deploy --targets '.#flora-6' --magic-rollback false --auto-rollback false --keep-result --result-path ./results

For metronom.pub.solar (aarch64-linux):

deploy --targets '.#metronom' --magic-rollback false --auto-rollback false --keep-result --result-path ./results --remote-build

Usually we skip all rollback functionality, but if you want to deploy a change that might lock you out, e.g. to SSH, it might make sense to set these to true.

To skip flake checks, e.g. because you already ran them manually before deployment, add the flag --skip-checks at the end of the command.

--dry-activate can be used to only put all files in place without switching, to enable switching to the new config quickly at a later moment.

We use --keep-result --result-path ./results to keep the last result symlink of each deploy from being garbage collected. That way, we keep builds cached in the Nix store. This is optional and both flags can be removed if disk space is a scarce resource on your machine.

You'll need to have SSH Access to the boxes to be able to run deploy.

Getting SSH access

See administrative-access.md.