I was surfing the net and I ran into this blog post. It described how the author set up a home server using nomad. So, I set up Nomad as a way to orchestrate the services that I host on my server. It is a complete overkill because none of them are in containers as of now. I basically only replaced systemd commands with nomad config files.

Everything works fine and Nomad provides a simple web interface to manage the services. I need to look into transitioning more of the configs for these services into proper nomad jobs.

Update

Everything is working right now. I am running in some weird hedge cases that have bug reports or issues opened that have not been addressed yet (or maybe they will never be addressed because some of them were first opened in 2017).

For example, it is not currently possible to download an artifact and set it as executable, as artifacts have 600 permission by default (without exec). This means that a job is not able to download a go executable and run it. The client needs to set it up for the job. There are workarounds but they don’t necessarily work all the time.

Otherwise, I was able to set up all my services in chroots and they are just working so far.

Update 2

I moved most of the services to containers (with the exception of gitea that still runs in a chroot jail. I will migrate it to the docker container but the setup is not working just yet).

I had some git post-hooks that I used to build this website running in gitea. Those have moved to Drone CI workflows. Everything is good for now.