Inhaltsverzeichnis

IceBox

Verantwortung TVLuke
Container icbox?
W. Ports keine
OS docker mischmasch
Server case moby
Zustand Produktiv

Hier findet sich die technische Dokumentation der Icebox. Nutzungshinweise hier rausziehen und verlinken

Services

ServiceübersichtVersion
Icebox ?

Das Icebox ist ein Lösung für Hackspaces um die Getränkeverwalutng und den Verkauf zu vereinfachen. Das System ist als Microservice Architektur aufgebaut und setzt auf state-of-the-art Technologien wie Docker, nodejs und traefik.

Alle Teilsysteme des Produktes „Icebox Getränkesystems für Hackspaces“ können hier Bestellt werden: git.chaotikum.org/icebox.

Stack

Es gibt folgende Services:

  1. icebox-service: Das backend
  2. icebox-web: Web Frontend zum kaufen und inventarisieren
  3. icebox-vuetified: Touch Frontend
  4. icebox-image-service: Service für Getränkebilder
  5. prometheus-icebox-exporter: statistiken für prometheus

Das alles wird von traefik zusammengehalten. Das zugehörige docker-compose file findet sich hier.

Deploy

Für jeden service wird über gitlab-ci ein docker-image gebaut, das dann auf die gitlab eigene docker-registry gepusht wird. In dem docker-compose sind dann nur noch die urls zu den jeweiligen images.

Reboot

Wenn das mal down ist, muss man es per

 docker-compose up -d
 

rebooten. Dafür muss man auf moby und dann in den icebox Ordner. Das geht von außen z.B. über willi (LDAP) zu Moby und dort in den Ordner.

Services

Alle urls und domains sind in der docker-compose über labels festgelegt und traefik kümmert sich dann automagisch. → docker-compose.yml

Backend und API

Das Backend ist unter api.icebox.nobreakspace.org zu erreichen.

Web

icebox.nobreakspace.org

Icebox-vuetified

vue.icebox.nobreakspace.org

Image service

images.icebox.nobreakspace.org

Icebox

Ein Admininterface für die Datenbank ist unter http://icebox.nobreakspace.org/pgadmin4 erreichbar.

Known Issues

NoScript unter Firefox

Tut nicht. Auch wenn man alles erlaubt. Das ist doof, aber Fakt. Wir sagen, das ist die Schuld des Plugins.

Software

Clients
Dienste
API-Doku
Inventur

Nachdem der Getränkelieferant da war ist es sinnvoll eine Inventur durchzuführen, dabei sollte sowohl die Anzahl der vorhandenen Getränke um die eingekaufte Menge erhöht werden (einfach die ausgegraute Zahl + die Neueinkäufe) als auch bei allen Getränken die Leergutmenge auf 0 gesetzt werden.

Inventur ist unter icebox.nobreakspace.org möglich, einfch den in Menü befindlichen Link „Inventur“ nutzen. Dort das Getränk auswählen und die korrekte Information angeben. Felder die nicht verändert werden sollen einfach so belassen wie sie sind.

Neue Getränke können in der selben Maske unten angegeben werden. Es ist aktuell nicht ohne weiteres Möglich ein Bild für ein neues Getränk hinzuzufügen. Als Baarcode sollte der auf der Flasche abgedruckte Baarcode genutzt werden sofern vorhanden. Um neue Schilder zu drucken befindet sich weiter unten ein Link zur entsprechenden tex-Datei.

Alias anlegen

Getränke und User können sich Aliase anlegen. Dies geschieht unter icebox.nobreakspace.org:8085/alias

per POST mit

 {
  "input": "123456789",
  "alias": "tvluke"
 }

Kann man einen registrieren. Wenn man nun GET auf icebox.nobreakspace.org:8085/alias/123456789 macht so erhällt man

 {
  "input": "123456789",
  "alias": "tvluke"
  }
  

zurück. Der Touch-Client am PI nutzt den ALIAS Service, wenn er einen Input bekommt, den er so nicht kennt. Dies kann genutzt werden, wenn sich der Barcode eines Getränks ändert. Registriert man z.B.

 {
  "input": "neuer Barcode",
  "alias": "alter Barcode"
 }

So sollte ab jetzt auch der neue Barcode funktionieren, weil er auf den alten gemappt wird.

Genauso kann die UID eines RFID-Chips auf einen username gemappt werden, damit ein User einen NFC-Chip zur Id am System nutzen kann.

Mehr Dienste

Einkaufspreise:

http://icebox.nobreakspace.org:8086/prices

Nährwerte:

http://icebox.nobreakspace.org:8087/ingred

Offene Ideen