96 lines
2.9 KiB
Markdown
96 lines
2.9 KiB
Markdown
# PlusLifeWeb
|
|
|
|
Dieses kleine PHP-Projekt bietet die Möglichkeit, Tests, die mit einem
|
|
[Pluslife-Gerät](https://altruan.de/pages/pluslife-pcr) und dem
|
|
[Pluslife Analyzer](https://virus.sucks/) durchgeführt wurden, zu speichern
|
|
und später nochmals anzuschauen.
|
|
|
|
Außerdem können Benachrichtigungen via Webhook an [Home Assistant](https://www.home-assistant.io/)
|
|
geschickt werden, um diese weiter zu verarbeiten.
|
|
|
|
Hierfür wurden folgende Komponenten benutzt:
|
|
|
|
* [Pluslife Analyzer Displayer von sistason](https://github.com/sistason/pluslife_analyzer_displayer/tree/main):
|
|
Dieses Projekt war der Ausgangspunkt für PlusLifeWeb
|
|
* jQuery
|
|
* Bootstrap
|
|
* Twig
|
|
* Chart.js
|
|
* PostgreSQL als Datenbank
|
|
|
|
**Wichtig:**
|
|
Es wird dringend davon abgeraten, PlusLifeWeb öffentlich zugänglich zu machen, da keinerlei Authentifizierung
|
|
implementiert ist! Jede Person, die PlusLifeWeb aufrufen kann, kann die Testergebnisse anschauen und auch
|
|
neue per Webhook hinzufügen!
|
|
|
|
## Installation
|
|
|
|
PlusLifeWeb wurde unter Devuan 12 "Bookworm" entwickelt und getestet. Daher sollte es auch unter
|
|
Debian 12 funktionieren.
|
|
|
|
Grundsätzlich wird ein Webserver, z.B. Apache, benötigt.
|
|
Die Verbindung zum Webserver muß per HTTPS möglich sein, damit der Webhook von virus.sucks funktioniert.
|
|
|
|
Folgende PHP-Pakete werden benötigt:
|
|
|
|
* php-pgsql
|
|
* php-twig
|
|
* php-json
|
|
* php-curl
|
|
|
|
Zur Installation genügt es, die Dateien in einem Webserver-Verzeichnis abzulegen, in dem PHP funktioniert.
|
|
|
|
### Datenbank
|
|
|
|
In PostgreSQL wird eine Datenbanktabelle für die Tests benötigt.
|
|
|
|
Die Datenbank wird als Benutzer *postgres* angelegt (Als root: `su - postgres`).
|
|
|
|
```
|
|
# createdb plweb
|
|
```
|
|
|
|
Anschließend, weiterhin als Benutzer postgres, das Kommando `psql` aufrufen:
|
|
|
|
```
|
|
# psql plweb
|
|
```
|
|
|
|
Mit folgenden SQL-Kommandos wird dann die Tabelle sowie ein Benutzer angelegt:
|
|
|
|
```sql
|
|
CREATE TABLE tests (
|
|
id SERIAL PRIMARY KEY,
|
|
timestamp TIMESTAMP NOT NULL,
|
|
data JSONB
|
|
);
|
|
|
|
CREATE USER plweb WITH ENCRYPTED PASSWORD 'plweb';
|
|
|
|
GRANT ALL PRIVILEGES ON DATABASE PLWEB TO plweb;
|
|
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA PUBLIC TO plweb;
|
|
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA PUBLIC TO plweb;
|
|
```
|
|
|
|
Das Paßwort ist hier nur *plweb* - es sollte besser ein anderes benutzt werden.
|
|
|
|
### Konfiguration
|
|
|
|
In der Datei `config.php` können folgende Parameter eingestellt werden:
|
|
|
|
```php
|
|
$hawebhook = "http://homeassistant:8123/webhook/plweb";
|
|
$dbconnstring = "host=localhost dbname=plweb user=plweb password=plweb";
|
|
$test_url = "https://example.com/plweb/test.php?";
|
|
```
|
|
|
|
Die Variable `hawebhook` enthält die URL des Home Assistant-Webhooks, so wie dieser
|
|
von PlusLifeWeb aus (serverseitig) aufgerufen wird.
|
|
|
|
Die Datenbankkonfiguration ist in `dbconnstring` enthalten. Hier ggf. das Paßwort anpassen.
|
|
|
|
Die `test_url` zeigt zum Script test.php der PlusLifeWeb-Installation.
|
|
Diese URL wird, zusammen mit der ID des fertigen Tests, als Benachrichtigung an Home
|
|
Assistant übertragen.
|
|
|