W I P
A xymon fork for mainly non-systems monitoring. C -> Zig
This is a rebranded fork of Xymon. Goal is to move away from some of the things that have grown obsolete, whilst keeping the parts that are still very much relevant today.
- lightweight
- extremely flexible and pluggable
- fast
- extensible
- status inheritance and propagation across the configuration tree
- written in C
- ...
- frontend style and design
- management of the hosts and groups
- authentication and authorization
- db backend and rrd charts
- ...
Just the start, but here are the goals:
-> gradually rewrite using zig
- move build to zig
- rewrite frontend!
- rewrite clients
- rewrite endpoints (HTTP/2 gRPC vs REST)
- rewrite database (duckdb, tigerbeetle, ...?)
- rewrite charts
- manage hosts.cfg or replace
- ...
- n. rewrite while maybe reusing bits?
- already added temporary http(s) gateway (golang), to be replaced with zig (zap)
- write frontend using Zap
- migrate Xymon build to zig and push all monkey patching from dockerfile/startup script to build
- write endpoint for:
- download hosts.cfg
- upload hosts.cfg
- restart xymon This will serve to make this project usable while refactoring.
- dockerize xymon build
- http(s) gateway (status + data, others are pending) -> to be replaced with zig (zap)
- cleanup frontend with css, no code changes yet
- debian and ubi (redhat) versions
- rebranding with monkey patching (temporary step)
- polished icons (temporary)
Zig works extremely well with C and allows for gradual migration.