Web Infrastructure

From The Munich Maker Lab's Wiki
Jump to navigation Jump to search

Some documentation on MuMaLab's web infrastructure stuff.

Current Tasks

Checkout: Working Group IT

Hosts

We currently have 3 VMs at Hetzner:

  • mars.munichmakerlab.de (Mars)
  • jupiter.munichmakerlab.de
  • saturn.munichmakerlab.de

Saturn

  • docker containers are started via systemd or via docker compose (configs in /data/ path) => target everything with docker compose with separated /data/ and /config/ folder.
  • cronjob added for cleanup of old docker images
  • docker deamon resource limit via systemd slice (/etc/systemd/system/docker.slice)
  • Firewall: ufw => check via sudo ufw status verbose (does not include docker. This would need addtional hacks like this, but it had no benefits so far with the reverse proxy we already use)

Services

Service Name Hostname Functionality Server native/docker status Source
Service Up Check UpTimeDashboard: https://stats.uptimerobot.com/RB3yLiI0HC Checks from external, if our services are reachable. Login via monitoring Email Account uptimerobot.com - productive
Website www.munichmakerlab.de Just Website, compare Github for details saturn docker productive Github Website
Wiki wiki.munichmakerlab.de Media wiki for knowledge sharing and documentation saturn docker productive
Nodered nodered.munichmakerlab.deAdmin: https://nodered.munichmakerlab.de/admin/ Automation like spacestatus, Slack Bots etc.

Login via Github Org. Config in settings.js

satrun docker productive Node-RED
Log log.munichmakerlab.de Blog - only Archive, since we switched to mastodon as "blog" and link it to our website. Tumblr - only archive function
Etherpad pad.munichmakerlab.de Colaboration text tool saturn docker productive Latest version: ether/etherpad-lite
Mailinglisten lists.munichmakerlab.de Mailman 3 in-berlin.de - productive
Mail @munichmakerlab.de Mailserver in-berlin.de - productive
Roombooking rooms.munichmakerlab.de Original for reserving rooms during covid jupiter docker deactivated BookedSchedular
Slack Inviter chat.munichmakerlab.de or slack.munichmakerlab.de Self invite capability for our slack saturn docker productive rauchg/slackin
Space Status status.munichmakerlab.de Button in the lab to mark space as open/closed on slack/homepage saturn docker productive Github Spacestatus
Eclipse Mosquitto (MQTT) mqtt.munichmakerlab.de MQTT to use for other servicesservices like status etc. Compare MuMaBus saturn docker productive Eclipse Mosquitto
Nextcloud nextcloud.munichmakerlab.de Document sharing, calendar saturn docker experimental
Traefik Reverseproxy Dashboard http://traefik.munichmakerlab.de/dashboard/

or http://traefik.munichmakerlab.de/api/

Dashboard of Reverse proxy for other services saturn docker productive
Authentik/Keyloak SSO sso.munichmakerlab.de SSO for other services saturn docker experimental https://github.com/goauthentik/authentik
Tickets (old) tickets.mumalab.org Ticket system for workshops and events German - productive https://github.com/pretix/pretix
Tickets tickets.munichmakerlab.de

Admin: https://tickets.munichmakerlab.de/control/

Ticket system for workshops and events saturn docker experimental https://github.com/pretix/pretix
Wiki Staging wiki-staging.munichmakerlab.de Wiki for testing (temporary) saturn docker Todo
Influx DB influxdb.munichmakerlab.de DB for particles sensor (temporary) saturn docker experimental https://hub.docker.com/_/influxdb
ToolJet tooljet.munichmakerlab.de Store member and token, who has which safet course etc. Might be replaced by authentik directly saturn docker Todo https://github.com/ToolJet/ToolJet
Grafana monitoring.munichmakerlab.de Grafana Dashboard for metrics and logs saturn docker productive
Prometheus metrics.munichmakerlab.de Prometheus Metrics Endpoint. Exposed via Traefik for debugging purpose. Basic Auth saturn docker productive
Calender calendar.munichmakerlab.de Widget for showing our multiple calenders saturn docker Todo https://hub.docker.com/r/niccokunzmann/open-web-calendar

https://github.com/niccokunzmann/open-web-calendar?tab=readme-ov-file

SSO

Single Sign on with Authentik

Groups:

!to be done

Group Access to Details
Member
IT

Influxdbv2

For storing data from sensors. Mostly for fun and testing purpose.


Data come from:

Source Bucket User Tags
Airrohr-NG lab-environment-data airrohr-service-user
Node-Red - Spacestatus lab-environment-data Lab Status API Token

Website

Static website at https://munichmakerlab.de deployed via Github Actions

Wiki

MediaWiki at https://wiki.munichmakerlab.de/

Links

Details

MediaWiki HowTo

Plugins and special configurations

Extension Reason Details
https://www.mediawiki.org/wiki/Extension:CrawlerProtection Wiki was overloaded from crawlers "Expensive" pages to load are only accessible after login

Maintenance

We had a bit of a spam problem in the past, easiest way to fix it currently is to clean them up in the database directly.

update mw_account_requests set acr_rejected = DATE_FORMAT(NOW(),"%Y%m%d%H%i%S"), acr_user = 1, acr_comment = "Spam, no confirmed mail address", acr_deleted = 1 where acr_email_authenticated is null and acr_rejected is null and acr_registration < now() - interval 7 day;

update mw_account_requests set acr_rejected = DATE_FORMAT(NOW(),"%Y%m%d%H%i%S"), acr_user = 1, acr_comment = "Spam", acr_deleted = 1 where acr_rejected is null and acr_registration < now() - interval 7 day;

update mw_account_requests set acr_rejected = DATE_FORMAT(NOW(),"%Y%m%d%H%i%S"), acr_user = 1, acr_comment = "Spam", acr_deleted = 1 where acr_rejected is null;

Status

Space status at https://status.munichmakerlab.de

MuMaBus

Space Automation, see MuMaBus for details

  • MQTT at saturn.munichmakerlab.de

Slack

Chat, with bridge to IRC

  • Application in itself is SaaS. Check for contact person: List of Contacts
  • IRC bridge is powered by RelayBot, hosted on ???

Additional Services