god: go daemons

God (go-daemons) is a tool to deploy and manage daemons in the Go ecosystem on GNU/Linux machines using systemd.

God installs your go binary in the remote machine (server) using go install, create the systemd unit file (.service file) and allows you to start/stop/restart the process.

I often write small micro-services or web-services in Go, and I need to deploy the service on a server in an easy and fast way, without bothering! Usually I compile the executable for the server architecture, log in via SSH on the server, copy the binary, create the configuration file for the new systemd service, install it and start the process. A series of commands that are always the same but that I forget every time and have to look in my notes somewhere. And that’s not all: when I make a change to my program, then I have to recompile it, log in via SSH on the server, copy the binary and restart the service. A real waste of time!

So I decided to write God, a tool written in Go. With God I can quickly and easily deploy and manage one or more services written in Go comfortably from my laptop, without logging into the server via SSH using a simple YAMLconfiguration file.