## TODO Tech stack - [x] HTTP Server - `net/http` - [x] listen on unix socket PORT (if set) - [x] Templating - {{mustache}} - [x] spawn with dinit/systemd - [ ] Config file - load TOML config (1. `/opt/status-config/config.toml` 2. test config) - .service (services) - [-] Auto deploy script (the current one is flaky. probably can be a cron job) Check online methods - [x] TCP Connect - [x] HTTP 2xx Services - [x] HTML page - [-] Page Styling (need to wait for all features) - [ ] show service type (tcp/http) - [x] Increase constrast. Current RED/GREEN is contrast fail. Maybe don't show the border when service is up? - [ ] Bundle directory contents into executable in release mode. (not necessary) - [-] Matrix notification (not integrated) - [ ] Status history (database) - check service status every 5 minutes - store events - self boot up/shutdown - service status after booting up - everytime service status change (include all status data (e.g. failure reason) in the calculation) ## Environment Variables When config file is down, those variables will be made non-optional and load from config instead of envvar. - `MAUTRIX_USER_ID`: Matrix user ID, optional, e.g. `@exozymebot76397:matrix.org` - `MAUTRIX_ACCESS_TOKEN`: Matrix access token - `MAUTRIX_ROOM_ID`: Matrix room ID, optional, e.g. `#room-name:matrix.org`