- gofudaemon - a daemon that manages the processes started by it.
- gofu - a command-line utility that lets you control the daemon.
- gofu-web - a web interface that lets you control the daemon.
As this is a work in progress, there are no detailed instructions on building or running the application locally. But you can look at the Makefile to get a good feel for how it all works.
make build-proto # to compile protobuf
make run-daemon # to run gofu-daemon
make install-gofu # to build and install gofu cli
gofu ps # then you can use gofu like this
gofu-daemon is an application that manages the processes. It uses gRPC for communication, which should decrease the difficulty of creating alternative clients. Every process started with gofu will be a child process of this daemon.
gofu is a command-line utility with commands similar to docker
or pm2
. It lets you control the running daemon from the terminal.
gofu-web is an optional web interface that lets you enjoy the ease of use of graphical interfaces. It should allow you to do everything that's possible with gofu, but with a user-friendly interface.
- Modern and widely used technologies. We don't create our own protocols or use some archaic libraries. The interfaces that gofu exposes should be easily accessible and extendable.
- Cross-platform consistency. The behavior should be the same across different operating systems.
- Ease of use. There should be a recipe for every possible use case that the user can copy and paste. It also entails that we shouldn't expect the user to understand what they just run, so we must build safeguards and protect them from themselves.
- An alternative to dated utilities. We can't stop the user from using
systemd
, but we can offer a cross-platform option that might be a tad easier to use for a newbie or even an experienced user.