Warenwirtschaftssystem (grocy) auf Raspberry als Webserver

  • Hallo zusammen,


    ich bin neu hier und habe bisher nur einen SmartMirror mit dem Raspberry betrieben.


    Während der vielen Freizeit während der Pandemie habe ich mal die Vorräte nach abgelaufenen Lebensmitteln durchsucht und so einiges gefunden, das ich wegschmeißen musste.

    Da mir das im Herzen brennt, Lebensmittel wegschmeißen zu müssen und damit auch Geld zu verschwenden, habe ich nach einem ERP-System für den Privatgebrauch gesucht, in dem ich das MHD Eintragen kann und sehe, was ich als nächstes verbrauchen muss.


    Ich bin dabei auf "grocy" gestoßen, das alles beinhaltet, was ich mir vorgestellt habe. Wie auch das ich den Barcode scannen kann und das dem eingespeicherten Produkt zugeordnet wird.


    https://grocy.info/de


    Ich habe es als Desktop-Version auf meinem PC aber diesen möchte ich nicht dauerhaft laufen lassen und ich möchte ein Terminal am Vorratsregal mit einem Scanner/einer Kamera anbringen.


    Nun war meine Idee den Raspberry als lokalen Webserver einzurichten, da es die PHP-Dateien auch frei zur Verfügung gibt.

    Habt Ihr vielleicht auch eine andere Idee?

    Ich habe Apache2 und PHP Mod installiert, komme nun aber bei der Beschreibung mit PHP nicht weiter.


    Ich habe bisher nur eine Webseite mit html geschrieben.


    In der README.md steht folgendes, was mir jedoch leider nicht weiter hilft:

    Just unpack the [latest release](https://releases.grocy.info/latest) on your PHP (SQLite (3.8.3 or higher) extension required, currently only tested with PHP 7.4) enabled webserver (webservers root should point to the `public` directory), copy `config-dist.php` to `data/config.php`, edit it to your needs, ensure that the `data` directory is writable and you're ready to go, (to make it writable, maybe use `chown -R www-data:www-data data/`). Default login is user `admin` with password `admin`, please change the password immediately (see user menu).


    Alternatively clone this repository (the `release` branch always references the latest released version, or checkout the latest tagged revision) and install Composer and Yarn dependencies manually.


    If you use nginx as your webserver, please include `try_files $uri /index.php$is_args$query_string;` in your location block.



    Liebe Grüße und lieben Dank im Voraus.

  • Ich bin dabei auf "grocy" gestoßen, das alles beinhaltet, was ich mir vorgestellt habe. Wie auch das ich den Barcode scannen kann und das dem eingespeicherten Produkt zugeordnet wird.

    Ein interessantes Projekt, mir fielen sofort meine ganzen Breakboards ein.


    Mittlerweile haben fred0815 und ich grocy zum laufen gebracht, es läuft sogar unter Buster64.

    Eine (hoffentlich) funktionierende Kurzanleitung findet sich hier: Klick


    Das ist mittlerweile überholt

    Sowie das aussieht braucht man Apache2, SQLite und PHP.

    Das Archiv packt man in /var/www/html aus, dann sollte dort ein Verzeichnis data

    vorhanden sein. Und das sollte dann dem User/group www-data gehören, das ist der Teil mit dem chown.

    Wo sich die config-dist.php befindet kann ich erstmal nicht erkennen.


    Für den ersten Aufruf sollte es etwa so aussehen http://server/data Das Wort server durch die IP-Adresse oder Hostnamen ersetzen.


    Im Moment habe ich nicht die Zeit um das zu realisieren, aber das scheint ein interessantes Projekt zu sein auf das Du gestoßen bist.

    Ich behalte das mal im Hinterkopf.

    Mein Fehler, ich war zu neugierig. Es läuft bereits.


    MfG


    Jürgen

  • Vielen herzlichen Dank für die schnellen Antworten.


    Ich werde es mal ausprobieren und Euch Rückmeldung geben.


    Heute komme ich auch nicht mehr dazu aber die Tage.


    Flo

  • Und das sollte dann dem User/group www-data gehören, das ist der Teil mit dem chown.

    Wo sich die config-dist.php befindet kann ich erstmal nicht erkennen.

    Hallo Jürgen,


    ich habe es doch bereits jetzt mal ausprobiert. Ich war dann doch zu neugierig.


    Wenn ich jetzt http://server/data eingebe bekomme ich folgendes:



    Unter Parent Directory finde ich dann auch die config-dist.php. Was mache ich jetzt mit der Datei?



    MfG

    Flo

  • Meine Installationsorgie:

    Aufruf: http://192.168.2.31/grocy/public/


    Ich bin mittlerweile soweit gekommen:

    kann an den Link zu grocy liegen, Schluß für heute.


    MfG


    Jürgen

  • Jürgen Böhm Bei Apache2 ist der Pfad /var/www/html ;)

    EDIT: Lösung gefunden !

    Bin auch gerade am verzweifeln, egal ob in einem Ordner /grocy oder direkt im root-Verzeichnis, mit rewrite true oder false, egal wie ich den Base-Pfad und Base-Url setze, hab auch schon die ganzen issues dazu durchgelesen, hilft alles nichts. :wallbash: :dau2:

    Lösung: Es geht wie folgt im root-Verzeichnis, also direkt in /var/www/html entpackt:

    apt install sqlite3 php7.3-gd

    Mit a2enmod rewrite, dann in /etc/apache2/apache2.conf:

    Code
    <Directory /var/www/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>

    systemctl restart apache2,

    In /var/www/html/data/config.php

    Code
    Setting('BASE_PATH', '/public');
    Setting('BASE_URL', '/public');
    Setting('DISABLE_URL_REWRITING', false);

    Jetzt mal probieren, was passiert, wenn ich alles in einen Ordner grocy verschiebe und die Pfade anpasse. :daumendreh2:

  • Code
    <Directory /var/www/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>

    Hallo Fred,

    ich habe es eben ausprobiert aber ich habe angeblich nicht die Berechtigungen, um den Quellcode zu ändern..

    Zudem habe ich das Problem, dass mein Verzeichnis etwas explodiert ist:

    var/www/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/grocy/helpers

    Ich hatte vorher erst raspbian neu aufgesetzt..


    Kannst Du mir da auch helfen?

  • Ich korrigiere mal meine Installation:

    grocy_2.7.1.zip hatte ich mir vorher geholt.

    Trotzdem lande ich dann hier wenn ich im Browser dies eingebe: http://192.168.127.131/grocy/public/index.php

    Die Adresse die mir dann angezeigt wird: http://192.168.127.131/grocy/public/index.php/stockoverview


    Weiter bin ich noch nicht gekommen.


    Meine Config.php:


    MfG


    Jürgen

  • Die apache2.conf kann man mit sudo nano /etc/apache2/apache2.conf bearbeiten.

    Mit diesen Eintragungen in der /var/www/html/data/config.php gehts bei mir:

    Code
    Setting('BASE_PATH', '/public');
    Setting('BASE_URL', '/public');
    Setting('DISABLE_URL_REWRITING', false);

    Wenn grocy bei dir im Unterverzeichniss /grocy ist, dann entsprechend anpassen, habe ich aber noch nicht getestet.

    EDIT: Gerade in den Ordner grocy verschoben, dann ist es beides, PATH und URL /grocy/public, dann erfolgt der Aufruf im Browser mit http://IPdesPi/grocy/public, der mich dann nach http://IPdesPi/grocy/public/stockoverview weiterleitet.


    BTW: Das ist ganz schön viel Arbeit, jede Dose, jedes Glas, jede Packung zu fotografieren und den Barcode einzulesen, die Beschreibung, MHD, etc. einzutragen, dabei habe ich jetzt gerade mal 10 Produkte drin. Da sieht man mal, was man alles an Produkten hat.

  • Code
    <Directory /var/www/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>

    Das All in Zeile 3 hat es dann gebracht.

    Ich bin erstmal drin.


    Das ist ganz schön viel Arbeit, jede Dose, jedes Glas, jede Packung zu fotografieren

    [Wunsch] Es müsste eine Library mit gängigen Produkten geben und eine Importfunktion[/Wunsch].


    Zum einlesen von Barcodes hatte ich mal die zbar-tools benutzt, ist aber schon lange her.

    Ich weiß nicht, ob sie brauchbar sind.


    MfG


    Jürgen

  • Hallo zusammen,

    ich versuche es jetzt nochmal Schritt für Schritt mit Eurer Hilfe.

    Lieben Dank dafür!


    Aufgrund des hohen Aufwand habe ich mir einen Handheld Scanner geholt, um mir zumindest die Eingabe der EAN spart und ja fürs Erste ist es sehr aufwendig. Sobald jedoch die Produkte eingepflegt sind, ist der Aufwand überschaubar, denke ich.


    Ich melde mich mit meinen Ergebnissen bis dahin viele Grüße

    Flo

  • [Wunsch] Es müsste eine Library mit gängigen Produkten geben und eine Importfunktion[/Wunsch].


    Zum einlesen von Barcodes hatte ich mal die zbar-tools benutzt, ist aber schon lange her.

    Ich weiß nicht, ob sie brauchbar sind.

    Gibt es sowas noch nicht ?

    Das Barcodeeinlesen ging bei "Produkt hinzufügen" ganz automatisch per Klick aufs Barcode-Symbol rechts und mit meiner alten Webcam einwandfrei.

  • Ich habe jetztdas Problem, dass ich für den folgenden Befehl keine Berechtigung habe:


    pi@raspberrypi:/var/www/html/grocy $ cp config-dist.php data/config.php

    cp: reguläre Datei 'data/config.php' kann nicht angelegt werden: Keine Berechtigung

  • Das Archiv packt man in /var/www/html aus, dann sollte dort ein Verzeichnis data

    vorhanden sein. Und das sollte dann dem User/group www-data gehören, das ist der Teil mit dem chown.

    Danke :) Das hab ich jetzt aber die das Verzeichnis data habe ich unter /var/www/html nicht, kann auch nichts daran ändern, weil ich wieder keine Berechtigung habe..


    VG Flo