You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Antonio De Lucreziis 09a6b8374f | 1 year ago | |
---|---|---|
.github/workflows | 1 year ago | |
.gitignore | 1 year ago | |
README.md | 1 year ago | |
go.mod | 1 year ago | |
main.go | 1 year ago |
README.md
Go Stats Server
This Go project implements a simple TCP server that responds to custom commands over the network. The server performs various system-related tasks and provides information such as CPU usage, memory status, network statistics, storage details, and system uptime.
Usage
-
Build the Server:
CGO_ENABLED=0 GOARCH=<arch> go build -a -ldflags '-s -w' -o ./out/stats-server main.go
-
Run the Server:
./out/stats-server
-
Connect to the Server: Use a TCP client to connect to the server on port 12345. You can send commands like "cpu," "memory," "network," "storage," "uptime," and "exit."
Example using
nc
:echo "cpu" | nc localhost 12345
or using golang
import "net" func main() { conn, err := net.Dial("tcp", "localhost:12345") if err != nil { // handle error } defer conn.Close() conn.Write([]byte("cpu")) }
GitHub Actions Workflow
The included GitHub Actions workflow automates the build and release process. On each push to the main branch, the workflow builds the Go program, creates a GitHub release, and uploads the compiled binary as an artifact.
Downloading the Artifact
TODO