Direkt zum Hauptinhalt

Getting Started / Onboarding

Wir freuen uns über eure Entscheidung, FabAccess in eurer Umgebung zu implementieren und möchten euch mit hier einen reibungslosen Einstieg in die Nutzung ermöglichen. Man fragt sich vielleicht, mit welchen Ressourcen begonnen werden und ob am Ende alles wie geplant funktionieren wird. Mit diesem Getting Started möchten wir euch die Angst nehmen und eine Anleitung geben, wie ihr Schritt für Schritt FabAccess bei euch einführen könnt.

Wir empfehlen euch

  • sich vorher in die FabAccess Basics etwas einzulesen. Keine Angst! Am Anfang ist es nicht so einfach zu überschauen. Anhaltspunkte über die grundlegende Funktionsweise zu FabAccess findest du bei den Grundkonzepten.
  • einen Überblick über euren Space zu erhalten und zu klären, wo und wie genau ihr FabAccess einsetzen möchtet. Das bezieht sich auf die Maschinen (Liste) und etwaige Berechtigungen (Rollen), die später einmal Anwendung finden sollen.

Gründe für die Nutzung von FabAccess

Warum sollten wir FabAccess nutzen? Die Gründe dafür können vielseitig sein. In der Regel sind es Ziele wie

  • Maschinen, die gefährlich sind, viel Strom verbrauchen oder in Anschaffung und Reparatur kostenintensiv sind, nur geschulten / eingewiesenen Personen überlassen
  • Eine Übersicht über die Gerätschaften und ggf. deren Nutzung (Zeiten) und/oder Verbräuche (Strom) erfassen

Was wird für FabAccess allgemein benötigt?

  • ein oder mehrere Personen, die einen FabAccess Server aufsetzen und betreuen können/wollen - hierzu gibt es verschiedene Rollen, z.B. IT-Administrator, Lab Manager (Schichtleiter, Werstattverantwortlicher, Bereichsleiter oder sonstige Synonyme), Mitglieder, Studenten, sonstige Nutzer
  • Zeit zur Integration von Hardware und Software
  • Wille, sich Dokumentation durchzulesen und zu verstehen
  • Motivation

Was sollten wir integrieren?

In FabAccess lässt sich grundsätzlich jeder Wunsch integrieren. Allerdings ist es nicht immer sinnvoll, da es entweder zu komplex ist, zu viel Zeit kosten würde oder sozial nicht verträglich ist.

Für einen guten Einstieg empfehlen wir, mit den Ressourcen beginnen, deren Nutzung eingeschränkt werden muss. Sobald die Nutzer das System verstanden haben, kann das System auf andere Ressourcen ausgeweitet werden.

Und wo sollen wir anfangen?

Ein guter Start bieten 3D-Drucker, da sich diese einfach mit 230V-Zwischensteckern freischalten lassen. Zudem gibt es dadurch eine direkte Referenz, von welchem Nutzer der letzte Druck stammt.

Welche Hardware sollte gekauft bzw. vorgehalten werden?

FabAccess ist frei skalierbar und der Bedarf hängt von der Werkstatt und den Nutzern ab. Je mehr Räume, Maschinen und Nutzer existieren, desto höher ist der Anspruch an das System.

Ein simples und kostengünstiges Setup von FabAccess lässt sich bereits mit einem Raspberry Pi, einer Fritz!Box und ein ein paar 230V-Schaltsteckdosen ("Zwischenstecker") mit MQTT-Schnittstelle aus. Mit diesen können bereits die ersten Ressourcen in ein funktionsfähiges FabAccess Setuo integriert werden. Alles andere an Hardware kann dann nachgerüstet werden, sobald das System läuft und die entsprechenden Berechtigungen vorhanden sind.

Nach oben hin gibt es bekanntlich keine Grenzen. Hinsichtlich Performance, Sicherheit und Administrierbarkeit ist für viele User durchaus auch ein Serveraufbau empfehlenswert. Hier gibt es verschiedenste Aufbauten.

Struktur-Beispiel Sternenlabor Plauen

  • getrennte Wifi SSIDs in der Werkstatt: eine SSID für das "normale" Benutzernetz zum Surfen und eines für Geräte (IoT-Netz)
  • Proxmox Server mit 
    • einer virtuellen Maschine, in der wiederrum mehrere Docker-Container laufen: 
      • Docker Container für FabAccess BFFH
      • Docker Container für einzelne Prometheus Exporter (z.B. FabAccess Exporter, MQTT Exporter)
      • Docker Container für Prometheus Service (Metriken sammeln)
      • Docker Container für Grafana (Monitoring / Alerting)
      • Docker Container für Watchtower (Docker Images automatisch aktualisieren, um alles auf den neuesten Stand zu halten)
      • sonstige Container für gekapselte Dienste
    • einer weiteren virtuellen Maschine, auf der Portainer läuft. Mit Portainer lassen sich die obigen Container über eine Web-Oberfläche gut administrieren/orchestrieren
    • Systemübersicht mit Glances (eine Art htop-Variante mit Web Interface)
    • eine weitere virtuelle Maschine für OPNsense - eine Open Source Firewall, die es erlaubt, dass Nutzer aus dem normalen Benutzer-Wifi auf die FabAccess-Instanz zugreifen können, welche letztlich in einem anderen Netz agiert.

Maschinenerfassung für die Integration mit FabAccess

Um einen detaillierten Überblick über eure Maschinen zu erhalten und eine reibungslose Integration mit FabAccess zu gewährleisten, haben wir eine gedankliche Tabellenstruktur vorbereitet, in der ihr die erforderlichen Informationen zu euren Maschinen eintragen könnt. Da FabAccess nicht nur für stationäre Maschinen konzipiert ist, könnt ihr auch andere Geräte in der Tabelle erfassen, deren Nutzung ihr nachverfolgen möchtet.

Welche Informationen sollten erfasst werden?

  1. Name, Modell und Anzahl
    • Name: Gebt jeder Maschine einen eindeutigen Namen
    • Modell: Erfasst das genaue Modell der Maschine
    • Anzahl: Falls mehrere Maschinen dasselbe Modell haben, notiert die Anzahl
  2. Kategorie
    • Weist jeder Maschine einer Kategorie zu für eine bessere Übersicht (z.B., 3D-Drucker, Lasercutter, Nähmaschine)
  3. Einweisung
    • Klärt, ob eine Einweisung für die Nutzung der Maschine erforderlich ist
    • Notiert, wenn es spezielle Einweisungen gibt. Für viele Maschinen ist keine Einweisung notwendig. Dennoch ist es hilfreich zu wissen, wer die Maschine nutzt und wie häufig sie in Gebrauch ist. Diese Informationen könnt ihr in FabAccess hinterlegen, um eine detaillierte Übersicht über die Nutzung zu erhalten.
  4. Wiki
    • Falls bereits ein Wiki-Eintrag für eine Maschine existiert, fügt den entsprechenden Link in FabAccess hinzu
  5. Wifi
    • Prüfe bei der Maschine, ob eine stabile Wifi Verbindung verfügbar ist. Maschinen müssen nicht über Wifi freigeschaltet werden, jedoch ist das der einfachste Einstieg in FabAccess. Wenn ihr FabAccess längerfristig einsetzen möchtet oder schon einen Umbau in eurem Space geplant habt, bietet es sich an auch eine Ethernet-Anbindung an der Maschine zur Verfügung zu haben. So kann der Betrieb mit FabAccess noch reibungsloser verlaufen.
  6. Freischaltung
    • Gebt an, wie die Maschine freigeschaltet wird (z.B., smarte Steckdosen für 230V, Schütze für 400V). Um eine Maschine freizuschalten, benötigt FabAccess die Möglichkeit, einen Freischaltbefehl an die Maschine zu senden. Die Ansteuerung kann je nach Maschinentyp unterschiedlich erfolgen:
      • Für einfache Maschinen mit einem 230V Anschluss: Hierfür können smarte Steckdosen verwendet werden
      • Für Maschinen mit 400V Anschluss: Die Ansteuerung erfolgt über ein Schütz, um den Strom zuzuschalten
      • Für Maschinen, die nicht hart ausgeschaltet werden sollten: Die Ansteuerung kann evtl. über den Not-Aus-Kreis erfolgen. Es ist wichtig zu beachten, dass bei der Ansteuerung über die Stromzufuhr darauf geachtet werden muss, dass die Maschine eine Abschaltung des Stroms während des Betriebs verkraften kann. Für mobile Geräte, die nicht über den Strom geschaltet werden können, empfiehlt sich die Verwendung eines elektromechanischen Schlosses zur Freigabe einer Aufbewahrungsbox.
  7. Stromanschluss/Leistungsaufnahme
    • Notiert den benötigten Stromanschluss (z.B., 230V, 400V)
    • Notiert auch die Leistungsaufnahme der Maschine. Die verbrauchte Leistung der Maschine kann entweder durch eigene Messgeräte oder spezielle Zwischenstecker gemessen werden. Diese Informationen sind nicht nur wichtig, um die Nutzungsdauer der Maschine zu verstehen, sondern ermöglichen auch eine Abschätzung der Betriebskosten oder ein automatisiertes Abschalten, wenn die Maschine länger als eine einstellbare Zeit nicht aktiv ist. Mit diesen Informationen könnt ihr nun mit der Modellierung der Berechtigungen fortfahren.

image.png

Beispiel einer manuell ausgefüllten Tabelle (nicht ganz vollständig)

Diese Infos lassen sich zum Beispiel auch im FabAccess Config Generator erfassen, der viel Arbeit von obigen Konzepten generalisiert abnimmt!

Modellierung der Berechtigungen

FabAccess ermöglicht eine präzise Kontrolle über die Nutzung von Maschinen. Das System basiert auf einem Rollensystem, das die Berechtigungen für Maschinen in einer Rolle zusammenfasst. Nutzer können diese Rollen erhalten und erhalten dadurch die entsprechenden Maschinenberechtigungen. Maschinen verfügen über vier Berechtigungsfelder (read, write, disclose, manage). Diese Details finden sich unter RBAC (Benutzerrollen und Berechtigungen).

Für einen einfachen Einstieg in dieses System empfiehlt es sich, zwei Standardrollen zu verwenden:

  1. "Offene Rolle": 
    Jeder Nutzer, der sich im Space anmeldet, erhält diese Rolle. Mit dieser Rolle können alle frei zugänglichen Maschinen verwendet werden, und es besteht die Möglichkeit, alle öffentlichen Maschinen über die Maschinenliste zu entdecken und Informationen abzurufen.
  2. Administrator-Rolle: 
    Diese Rolle ermöglicht das Anlegen von Nutzern, das Ansehen aller Maschinen und das Verwalten von Maschinen. Wichtig ist dabei, auch Berechtigungen für das Nutzermanagement hinzuzufügen. Sollten im Space weitere Unterstützer aktiv sein, die jedoch keine Nutzer und Rollen verwalten sollen, kann eine eigene Rolle mit Manage-Berechtigungen erstellt werden. 

Für alle weiteren Rollen können diese nach Bedarf entsprechend den erforderlichen Einweisungen für die Maschinen erstellt werden. Als Beispiel: Wenn für 3D-Drucker eine Einweisung erforderlich ist, kann eine Rolle "3D-Drucken" erstellt werden. Wenn jedoch zwischen verschiedenen 3D-Drucker-Typen unterschieden werden soll, können zwei separate Rollen erstellt werden, wie "3D-Drucken FDM" und "3D-Drucken
SLA". Wenn Nutzer alle 3D-Drucker verwenden können sollen, kann entweder jedem Nutzer alle relevanten Rollen zugewiesen oder eine vererbte Rolle wie "3D-Drucken Gesamt" erstellt werden.

Es wird empfohlen, zu Beginn mit feinen Rollen zu arbeiten, da das Entfernen von Rollen für Nutzer im Nachhinein mehr Aufwand bedeutet.

Mit der Berechtigungstabelle könnt ihr erste Entscheidungen darüber treffen, wer auf welche Maschine zugreifen darf und welche Maschinen gemeinsam in einer Berechtigung genutzt werden können. Ebenso könnt ihr festlegen, welche Maschinen für alle zugänglich sein sollen und welche ausschließlich nach einer Freischaltung verwendet werden dürfen.

Die Installation von FabAccess Difluoroborane (BFFH) ist auf jedem Server möglich, der das Ausführen einer kompilierten Rust-Binary erlaubt. Das kann ein Bare Metal Linux Server, ein Proxmox, ein Docker-Container oder sonstige Systeme sein.

Neben der reinen Installation sind weitere Schritte der Vor- und Nachkonfiguration notwendig oder empfehlenswert, um ein sinnvolles und praxistaugliches System zu erhalten.

Vorüberlegungen und Best Practices

Die Installation von FabAccess Difluoroborane (BFFH) ist auf jedem Server möglich, der das Ausführen einer kompilierten Rust-Binary erlaubt. Das kann ein Bare Metal Linux Server, ein Proxmox, ein Docker-Container oder sonstiges System sein.

Neben der reinen Installation sind weitere Schritte der Vor- und Nachkonfiguration notwendig oder empfehlenswert, um ein sinnvolles und praxistaugliches System zu erhalten.

Separierte Netzwerke

Für ein funktionierendes FabAccess-System sollten die Geräte, die Ressourcen freischalten, in einem separaten Netzwerk betrieben werden - also zum Beispiel Tasmota Schaltsteckdosen oder FabReader. Dadurch wird das Risiko minimiert, dass unerwartete Freischaltungen stattfinden.

Wir separieren sozusagen Notebooks und Smartphones der Nutzer (und Gäste), die sich meistens im regulären Netz, von den IoT-Geräten (Maschinen), die die FabAccess-Struktur bilden.

Die Netzwerkseparation kann adminstrativ durch verschiedene Wege erfolgen - zum Beispiel durch VLANs oder eigens für die Geräte aufgespannte Wifi-SSIDs.

Nutzer anlernen und aktiv einbeziehen

  • Erklärt das Konzept von FabAccess
  • Erklärt, wie der Space FabAccess verwendet

Überautomatisierung vermeiden

Nicht alles, was automasiert werden kann, sollte auch automatisiert werden. Nicht jedes Werkzeug oder jede Maschine sollte weggeschlossen bzw. verriegelt werden. Das nimmt u.U. zu viele Grundrechte oder übertechnisiert den Ausstattungsbedarf und die Wartung des Spaces.

FabAccess sicher machen (physisch + digital)

  • Vermeide den physischen Zugriff auf Schalter: Zum Schutz vor Manipulation können z.B. Tasmota Stecker oder Shellys außer Reichweite platziert werden - zum Beispiel unter dem Tisch oder über oder hinter dem Regal
  • Etabliere eine sinnvolle Ausgabe von DESFire Karten zum Zugriff auf Maschinen, um die unerlaubte Weitergabe durch Nutzer zu unterbinden
  • Verwende sichere Verschlüsselung für die Funkverbindung im MQTT-Netzwerk und anderen Stellen, wo es möglich ist (TLS Verschlüsselung, LetsEncrypt Zertifikate)

Erstelle regelmäßig Backups

Auch bei FabAccess ist es wichtig, regelmäßig Backups der Benutzerdatenbank und der Konfiguration zu erstellen. Nichts wirft einen mehr zurück als der Verlust aller zugewiesenen Rollen durch einen Ausfall.

Es gibt verschiedene Backup-Strategien, je nach vorhandener IT-Infrastruktur, eigenem Geschmack und natürlich auch der Art und Weise, wie FabAccess installiert wurde.

Backups könnten sein:

  • kompletter System-Dump (Kopie der Festplatte mitsamt Betriebssystem)
  • inkrementelle Backups des Systems oder der FabAccess-relevanten Daten
  • Docker-Container Backup
  • ein git-Repository, in das wir Konfigurationsdateien pushen und versionieren

Häufig lohnt es sich 1-2 Backup-Strategien zu kombinieren.

Tipp: Backups erstellen ist gut! Noch besser: Testen, ob die Backups im Ernstfall dann auch funktionieren, also ob ein Restore auch problemlos möglich ist!

Siehe auch Backup einrichten

Audit und Zeitsynchronisation

Für Abrechnungsvorgänge oder zum Nachvollziehen von Ereignissen in der Werkstatt sind genaue Zeitstempel wichtig. Es ist deshalb ratsam den Server, auf dem FabAccess BFFH läuft, mit einem Zeitserver zu synchronisieren. Generell ist es empfehlenswert, wenn sich alle Serverdienste und Clients in der Werkstatt auf den gleichen Zeitserver beziehen. Bei Verwendung von kleinen Geräten wie einem Raspberry Pi ist es zudem ggf. hilreich ein RTC (Echtzeituhr) einzubauen, da diese meistens keine eigene Uhrzeit haben. Im Falle eines Internetausfalls hat der Server so trotzdem eine valide Uhrzeitquelle.