Simplest deploy stack ever: nixos + nix-copy-closure and running an activation script. 30 or so lines of code to setup, less if you use morph[1] or something like that, and there you go. Everything just works, systemd takes care of starting and restarting, rollbacks are fairly easy to do, takes less than 30 seconds after build to run.

[1]: https://github.com/DBCDK/morph

Reply to this note

Please Login to reply.

Discussion

The only real downside is: you still need a nixos base image on your cloud to make it work, and no clouds provide that out of the box. Installing it should be fairly easy though, same to clone and set-up other applications.

If I have to deploy something else on another machine, I can just clone it and apply the new configuration directly.