14
1
Fork
You've already forked status
1
Status page in Go
Go 85.7%
CSS 7.2%
HTML 4.4%
Shell 2.7%
2025年05月19日 19:51:47 +00:00
core enable/disable matrix support in a better way 2025年05月19日 19:51:47 +00:00
proto enable/disable matrix support in a better way 2025年05月19日 19:51:47 +00:00
public HTTP basic auth, make website more configurable 2024年05月24日 03:23:27 +00:00
scanner Update git.exozy.me to codeberg.org, genericize code so other people can use it too without the exozyme branding 2025年01月24日 20:41:45 -05:00
templates Update git.exozy.me to codeberg.org, genericize code so other people can use it too without the exozyme branding 2025年01月24日 20:41:45 -05:00
.gitignore Clean up config loading code 2023年10月01日 08:21:30 +00:00
go.mod Update git.exozy.me to codeberg.org, genericize code so other people can use it too without the exozyme branding 2025年01月24日 20:41:45 -05:00
go.sum clean up 2024年07月07日 03:31:34 +00:00
LICENSE Add AGPL license 2024年05月24日 03:24:26 +00:00
main.go enable/disable matrix support in a better way 2025年05月19日 19:51:47 +00:00
readme.md Update git.exozy.me to codeberg.org, genericize code so other people can use it too without the exozyme branding 2025年01月24日 20:41:45 -05:00
update-dinit-config add update script 2024年06月24日 00:43:47 +00:00
util.go fix: update to compile 2024年09月21日 01:47:32 +00:00

status

A status page written in Go. Join our Matrix room for development discussion.

TODO

Tech stack

  • HTTP Server - net/http
    • listen on unix socket PORT (if set)
  • Templating - {{mustache}}
  • spawn with dinit/systemd
  • 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)
  • Auto deploy script (run as dinit service)

Check online methods

  • TCP Connect
  • HTTP 2xx
  • ICMP

Services

  • HTML page
    • Page Styling
    • show service type (tcp/http)
    • 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)
    • show historical 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
      • self boot up/shutdown
      • check service status every 5 minutes since boot
    • persist data on disk
    • clean up old checkpoints
  • Matrix notification
  • serves plain text to curl

Tests

  • HTML page works

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