Preferred web app deployment tooling for small projects?

Hello,

Just wondering what people prefer for deploying small Haskell web projects.

I’m thinking of:

It looks like Nix is popular but I probably shouldn’t need that to start right?

For small projects, it doesn’t matter much, right ? If the server is powerful enough, you can stack build there; if not, try to build a compatible binary on another machine, then upload the binary and restart ? Restarting a haskell web app is usually quick. systemd is one way to manage the process.

I have a bunch of small Haskell services running on my VPS. I compile the Haskell code to statically linked standalone executables using Nix, and then wrap them into a NixOS service and run them on the VPS. Nix takes care of deployment, restarts etc. Underneath it uses systemd.

True I will give just uploading the binary a try good to know that it should generally work.

Oh nice so Nix handles more than just the building. I was wondering about that. Do you set up an nginx type thing in front of all the services?

Yes, I use Nginx in front, also configured via Nix.

I just build on my server and run from there behind nginx. You should aim to build during Continuous Deployment if you can, so that it’s the CI runners that take the CPU load.

I’ve used keter. scp your binary to the server and it reloads. No clusters, no containers.