In deze post leg ik uit hoe ik de data van mijn weerstation uitlees en weergeef binnen Skyz.
Auteur archieven: Vincent Lammens
Nieuwe Site
Status
Ik ben bezig aan een nieuwe site, ik zal langzaamerhand alle posts omzetten van de oude site naar deze. Ik heb besloten om (terug) wordpress te gebruiken, aangezien ik het eenvoudiger wil maken om dingen te posten.
Pelikaanbeeldje
Afbeelding

Skyz 2.0 Roadmap
In progress
- Ombouwen extractiescripts externe netwerken (20% klaar)
- Apart opslaan 10min windsnelheidswaarde (=> nodig voor correcte windchill berekening)
Gepland
- Tonen windchill/heat-index waardes (“proef” waarden al zicthbaar bij historiek > daghistoriek pagina)
- Weerstationskaart upgrade (=> alle parameters tonen)
Done
- Rewrite core functies naar Django (2.0.0)
- Bliksemnetwerk gesloten-alpha release (2.0.0)
- Nieuw radar-nowcast algoritme (2.0.0)
- Favorietenfunctie (2.0.0)
Django REMOTE_IP to X-Forwarded-For middleware
Bij het uitrollen van een Django applicatie met Gunicorn als WSGI server, klopt de request.META[“REMOTE_IP”] waarde vaak niet. Deze toont dan het IP van de reverse proxy, of is zelfs leeg. We kunnen dit oplossen met een klein stukje middleware:
# app/middleware.py
class XForwardedForMiddleware(MiddlewareMixin):
def process_request(self, request):
if 'HTTP_X_FORWARDED_FOR' in request.META:
request.META['REMOTE_ADDR'] = request.META['HTTP_X_FORWARDED_FOR'].split(",")[0].strip()
return None
Vervolgens kunnen we deze middleware inschakelen door ‘app.middleware.XForwardedForMiddleware’ aan onze middleware toe te voegen in settings.py
Skyz 2.0 Release
Het heeft wat langer geduurd dan verwacht door wat gezondheidsgerelateerde problemen, maar Skyz 2.0 is nu officieel gelanceerd.
Zoals ik al eerder vermelde is er niet zo veel veranderd. De reden voor de update was het herschrijven van de gehele codebase in Django. Ik heb wel enkele kleine UI-wijzigingen gedaan (zo kan je nu locaties als favoriet markeren), maar de site is voor de rest hetzelfde.
De hostingprovider Pixelhosting sponsort nu ook de hostinginfrastructuur.
Dynamische login banners in Linux
Ik was een aantal servers aan het herinstalleren met Debian Trixie, en ik dacht dat het wel leuk was als ik een dynamische login banner maakte die wat nuttige informatie toont na het inloggen.
Zet het volgende in /etc/update-motd.d/20-sysinfo
#!/bin/bash
echo "----------------------------------------"
echo "System Information as of: $(date)"
echo "Hostname: $(hostname)"
echo "Uptime : $(uptime -p)"
echo "Load : $(cat /proc/loadavg)"
echo "Memory : $(free -h | awk '/Mem:/ { print $3 " / " $2 }')"
echo "Disk : $(df -h / | awk '/\// { print $3 " / " $2 }')"
echo "IP Addr : $(hostname -I | awk '{ print $1 }')"
echo "Users : $(who | wc -l) logged in"
echo "----------------------------------------"
En maak het vervolgens uitvoerbaar (chmod +x /etc/update-motd.d/20-sysinfo)
Als je nu inlogt, zou je systeeminformatie moeten zien.
Cachen met Apache en mod_cache
Een van de eenvoudigste manieren om de performantie van een drukke website te verbeteren is om caching toe te voegen. Er zijn verschillende manieren waarmee dit kan gebeuren: Je kan objecten cachen in code (met Memcached en Redis), of je kan de responses cachen met Varnish, Nginx of in dit geval met Apache’s mod_cache. Ik raad dit op zich niet aan in productie, maar omdat ik Apache gebruik als webserver leek het me een leuk experiment, zonder veel extra configuratie te moeten toevoegen.
Skyz 2.0 Rewrite update: Augustus 2025
Status
De rewrite van Skyz 2.0 is bijna klaar, het enige dat nog resteerd is wat finale testing en performantie tuning. Ik verwacht Skyz 2.0 ergens midden augustus te releasen.
Nieuwe PGP key
Status
Ik heb een nieuwe PGP key, je kan hem vinden op deze pagina. De vingerafdruk van mijn PGP key is B31DADA916D501F1