g-systemctl is a graphical user interface for your services in *nix systems. You can see all of your service deamons, search and filter them, and control them.
| Current Design | WIP Design |
|---|---|
![]() |
- Go (Golang): Install Go
- A web browser for frontend testing
-
Clone the repository:
git clone https://github.com/shakg/g-systemctl.git cd g-systemctl -
Build the project:
go build src/server.go
curl https://api.github.com/repos/shakg/g-systemctl/releases/latest | jq '.assets[0].browser_download_url' | xargs wgetStart development environment:
docker compose upBuild for production:
docker-compose -f docker-compose.prod.yml up --buildchmod +x serverand
./server <port>could be any free port in your system; for example, 8080.
To start the server, run the executable or use go run with the following command:
./server <port>
# or
go run server.go <port> Replace <port> with the desired port number (e.g., 8080).
! IMPORTANT, run with sudo if password needed
The server will be accessible at http://localhost:<port>.
The API endpoint provides information about the running system's status.
- Endpoint:
/api - Method:
GET
Example response:
[
{
"unit":"accounts-daemon.service",
"load":"loaded",
"active":"active",
"sub":"running",
"description":"Accounts"
},
{
"unit":"acpid.service",
"load":"loaded",
"active":"active",
"sub":"running",
"description":"ACPI"
}
]The service endpoint enables us to start and stop services.
- Endpoint:
/service - Method:
GET
Example Usage:
/service?open=true&service_name=MyService
The frontend of this project consists of vanilla HTML and JavaScript. The frontend files are served at the root path ("/").
- HTML File:
index.html - JavaScript File:
app.js
You can access the frontend at http://localhost:<port>.
Contributions are welcome! Please follow the Contributing Guidelines for details on how to contribute to this project.
