Dieses Projekt stellt einen Node.js Server bereit der alle Daten für ein Konferenzraum Anzeigesystem verwaltet
Das Projekt setzt sich dabei aus mehreren Modulen zusammen:
- cras - Dieses Projekt stellt das Backend bereit
- crasUI - Ein responsives Angular Frontend
- Optional crasBadgeIt - Ein microcontroller projekt for small ePaper devices
- Optional crasAndroidViewer - Eine Android App mit einem einfachem fullscreen Webviewer
- Abrufen der Raumbelegung von einem Exchange Server
- Bereitstellung von Rest Schnittstellen
- Cachen der Raumbelegung zur Performancesteigerung
- Schnelle Buchung am Raum Display
- SUpport der GetOut Idee (https://youtu.be/VvtHPAc8T2g)
Für geplante Features und Änderungen siehe CHANGELOG.md
Diese Anleitung zeigt anhand einer Beispiel Installation auf dem Raspberry wie die der StatusMonitor installiert, eingerichtet und betrieben werden kann.
- Linux umgebung (z.B Raspberry Pi 3 mit Raspbian)
- git
- node.js
siehe: Raspberry Setup
git clone https://github.com/jenszech/cras.git
cd cras
npm install
Einrichten als Process mit Autostart
sudo npm install pm2@latest -g
pm2 start bin/cras
pm2 startup systemd
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
pm2 list
Um unterschiedliche Konfigurationen je Umgebung (Dev, Integ, Prod) nutzen zu können, muss auf dem System die aktuelle Umgebung gesetzt werden. Dafür muss in der environment Konfiguration
sudo vi /etc/environment
die folgende Zeile hinzuggefügt werden
NODE_ENV=prod
Eigenes Zertifikat erstellen
openssl req -x509 -newkey rsa:2048 -keyout keytmp.pem -out cert.pem -days 365
openssl rsa -in keytmp.pem -out key.pem
Die beiden Dateien cert.pem und key.pem müssen unter ./config/cert liegen.
Wenn alles erfolgreich war ist http://:3000 das WebInterface erreichbar.
Die Konfiguration erfolgt über eine Zentrale Konfigurationsdatei (default.json). Sie kann durch lokale Enviroment Konfigurationen (.z.B. prod.json oder dev.json) überschrieben werden. Dabei werden alle nicht überschriebenen Elemente aus der default.json vererbt. Die Lokale Datei muss dabei genauso heißen wie die in der Environment gesetzte Name (NODE_ENV=prod)
In der Default Konfiguration sollten keine Username, Passwörter oder lokalen Server eingetragen werden. Es sollten nur allgemeingültige Werte enthalten sein. Die Environment Konfiguration enthalten dagegen alle lokalen Anpassungen inkl. Passwörter. Sie sollten daher nichts ins Github eingecheckt werden.
{
"cras": {
"mainSetting": {
"env": "default",
"port": "3001",
"default_room_user": "example@mail.com",
"workStart": 7,
"workEnd": 19
},
"exchange": {
"url": "<INSERT URL>",
"user": "<INSERT USERNAME>",
"password": "<INSERT PASSWORD>"
}
}
}
{
"cras": {
"mainSetting": {
"env": "prod",
"default_room_user": "user@domain.de"
}
}
}
Das WebInterface: http://:3000 Konfigurationsdateien liegen unter: ~/cras/conf/ Logdateien liegen unter: ~/cras/logs/
pm2 list
pm2 restart cras
cd cras
git pull
pm2 restart cras
npm run format && npm run lint
npm version major|minor|patch
- Node.js
- PM2 Guideline für NodeJS Application auf Produktions Servern
Please read CODE_OF_CONDUCT.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Jens Zech - Initial work - GitHub Profil
- fadoscha - Team Member - GitHub Profil
- s-wolff - Team Member - GitHub Profil
- Vladimir Ignjatijevic - Team Member - GitHub Profil
- Anna Utlik - Team Member - GitHub Profil
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details
##Weitere Infos: Wiki - Raspberry Setup