Table of Contents Motivation Features/Ideen Zu implementierende APIs/Datenquellen Zu implementierende Services Deployment MuCCC API Code: https://gitlab.muc.ccc.de/muCCC/api Live: https://api.muc.ccc.de Motivation Auf uberbus.club.muc.ccc.de befinden sich mehrere Scripts die ueber verschiedenste APIs kommunizieren die weder dokumentiert noch standardisiert. Der Monolith als Hauptkomponente ist schwer wartbar und in die Jahre gekommener Code. Es wurde immer mehr drangepflanscht und neue Ports aufgemacht ohne darueber nachzudenken. Unter anderem befinden sich im Monolith ein IRC-Bot der den Schleusenstate und das naechste Event in das IRC Channel Topic schreibt und eine Milight Ansteuerung die scheinbar nicht mehr funktioniert. Ferner befinden sich auf dem Host die Ansteuerung des Flipdotpanels fuer den Schleusenstate und ein Script das einen Anruf bei Schleusenstatewechsel triggert (derzeit ebenfalls kaputt). Diese Komponenten werden per /etc/rc.local in einem Screen gestartet. SpaceAPI und Kalenderscraper sind eigene Scripts die per Crontab JSON Files in /srv/www generieren die von einem Nginx ohne HTTPS geserved werden. Features/Ideen https://api.muc.ccc.de als zentrale URL fuer alle HTTP APIs nicht droelfzig Ports bei denen keiner durchblickt automagisch generierte Doku per OpenAPI https://api.muc.ccc.de/docs https://api.muc.ccc.de/redoc modernes Python3 mit FastAPI und async statt threading Support fuer Push statt stures Poll bei Konsumenten: HTTP Long Polling und Websockets Feature-Bloat vermeiden API buendelt nur - sammelt und verteilt Informationen alle Aktoren sind eigene Services die auf die API zugreifen Endpoints https://api.muc.ccc.de/spaceapi.json https://api.muc.ccc.de/schleuse.json mit Long Polling Support wss://api.muc.ccc.de/schleuse/ws Zu implementierende APIs/Datenquellen Luftschleuse via UDP Wiki Kalenderscraper mit ICS Welche Sensoren gibt es im Club noch? Home-Manager? OpenHab? Großer roter Button (ToDO) Temperatur/Feuchtigkeitssensoren (ToDO) Kalender (ToDO) Zu implementierende Services SpaceAPI Schleuse IRC/Matrix Bot Schleusenstatus Flipdotpanel Schleusenstatuswechselcall Deployment Host: nixbus.club.muc.ccc.de https://gitlab.muc.ccc.de/muCCC/nixos-deployment/-/blob/master/nixbus.nix Auf uberbus.club.muc.ccc.de laeuft ein Caddy als Reverse Proxy unter: https://api.muc.ccc.de (nginx disabled) api.txt Last modified: 2022/07/08 15:10by prk0ghy