49 lines
1.6 KiB
Markdown
49 lines
1.6 KiB
Markdown
# status
|
|
|
|
A status page written in Go. Join our [Matrix room](https://matrix.to/#/#status-page:exozy.me) for development discussion.
|
|
|
|
## TODO
|
|
|
|
Tech stack
|
|
|
|
- [x] HTTP Server - `net/http`
|
|
- [x] listen on unix socket PORT (if set)
|
|
- [x] Templating - {{mustache}}
|
|
- [x] spawn with dinit/systemd
|
|
- [x] Config file - load TOML config (1. `/opt/status-config/config.toml` 2. test config at `proto/config.toml`)
|
|
- .socket_path (UNIX socket, string)
|
|
- .service (array of services)
|
|
- .matrix (Matrix-related settings, see below)
|
|
- [x] Auto deploy script (run as dinit service)
|
|
|
|
Check online methods
|
|
|
|
- [x] TCP Connect
|
|
- [x] HTTP 2xx
|
|
- [x] ICMP
|
|
|
|
Services
|
|
|
|
- [x] HTML page
|
|
- [x] Page Styling
|
|
- [x] show service type (tcp/http)
|
|
- [x] Increase constrast. Current RED/GREEN is contrast fail. Maybe don't show the border when service is up?
|
|
- [x] Bundle directory contents into executable in release mode. (not necessary)
|
|
- [ ] show historic data
|
|
- Status history, database
|
|
note for integration: the dumb database code is in `core/database.go`. When integrating, you don't need to touch that code much.
|
|
- store events
|
|
- [x] self boot up/shutdown
|
|
- [x] check service status every 5 minutes since boot
|
|
- [x] persist data on disk
|
|
- [x] clean up old checkpoints
|
|
- [x] Matrix notification
|
|
- [x] serves plain text to curl
|
|
|
|
## 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. `@bot:exozy.me`
|
|
- `MAUTRIX_ACCESS_TOKEN`: Matrix access token
|
|
- `MAUTRIX_ROOM_ID`: Matrix room ID, optional, e.g. `#notifications:exozy.me`
|