CaSSAndRA Installationsanleitung (für Anfänger 😁)

themanfrommoon

Active member
Hallo zusammen,
ich selber habe von Linux und RaspberryPi nur relativ wenig Ahnung. Mich nervt oft, dass man sich alle möglichen Informationen suchen und zusammensammeln muss, bis man endlich ans Ziel kommt. Ja, kann man alles so machen, da lernt man auch am meisten dabei, ist alles richtig. Aber dabei verbrennt man auch am meisten Zeit damit und die allermeisten Leute interessieren sich nur für das Ergebnis, und eben nicht den Weg dahin. Wenn man das dann alle Jubeljahre mal macht, kann man auch direkt wieder bei Null anfangen.
Und deswegen mache ich das jetzt einmal extra, nur für einen RaspberryPi, nur die 64bit lite Version und ohne Docker (kenne ich nur vom Namen her). Also die absolut kleinste Minimalinstallationsvariante, und zwar genau für mich und diejenigen, die das nur mal ausprobieren wollen, oder sich nur dafür einen Raspberry geholt haben, wo nix anderes drauf läuft. Wie groß die Zielgruppe ist, ist mir dabei egal. Mir reicht es auch schon, wenn ich es nur für mich ganz alleine dokumentiere. Dann habe ich nämlich a proved one single source of information. Mir reicht es, wenn es funktioniert, ich nicht noch irgendwo anders suchen und lesen muss und es einfach nur funktioniert. Schnell und effektiv.

Alle anderen können es gerne anders machen, alles gut, viele Wege führen nach Rom. Mir reicht der kürzeste.
Also, auf geht’s:
Ich habe hier folgende Komponenten:
RaspberryPi 4 mit 2GB RAM
32GB SD Karte
original 3A Netzteil

Ich nutze als Betriebssystem Windows 10

1. Betriebssystem auf die SD Karte installieren:
Zuerst kommt die SD Karte in den Kartenleser in den Windows 10 Rechner.
Dann suchen wir im Internet nach dem „Raspberry Pi Imager“, nehmen gleich das erste Suchergebnis: https://www.raspberrypi.com/software/ und klicken auf „Download for Windows“:
1688815873405.png
Es wird die Datei „imager_1.7.5.exe“ (…oder neuer) runtergeladen. Diese wird mit Doppelklick installiert und gestartet.
1688815898955.png
Laut CaSSAndRA Github Information lautet die Empfehlung die 64bit Variante zu benutzen. Daher wählen wir diese folgendermaßen aus:
1688815925739.png
Runterscrollen und „Raspberry Pi OS Lite (64-bit) auswählen. Ich nehme die Lite Variante, weil ich keine Desktop Umgebung auf dem Raspberry brauche, und dieser nur ohne Monitor, Tastatur und Maus im WLAN laufen soll.
1688815946698.png
Dann die SD-Karte wählen, auf die das Image geschrieben werden soll:
1688815968189.png
1688815982985.png
Da wir den Raspberry ja ohne Monitor, Tastatur und Maus im WLAN betreiben wollen können wir das jetzt noch folgendermaßen Einstellen:
1688816002947.png
SSH aktivieren:
1688816021694.png
Benutzername und Passwort setzen (ich nutze hier die Standardsettings „pi“ und „raspberry“)
1688816039643.png
WLAN einschalten, WLAN Name und Passwort eintragen:
1688816057746.png
 
WiFi Land: „DE“
1688816116469.png
Zeitzone „Europe/Berlin“ und Tastaturlayout „de“:
1688816133851.png
Einstellungen speichern:
1688816147792.png
und dann die SD Karte mit dem Betriebssystem beschreiben (Achtung, es werden natürlich alle Daten auf der SD-Karte gelöscht!)
1688816161066.png
…und bestätigen:
1688816176394.png
Das Schreiben und Verifizieren dauerte bei mir 2 Minuten und 17 Sekunden.

Jetzt kann die SD Karte in den Raspberry Pi gesteckt werden und der Raspberry Pi gestartet werden.
Das erste hochfahren dauerte bei mir ca. 2 Minuten, bis der Raspberry sich am Router angemeldet hat und auch per SSH erreichbar war.

Nun installiert man Putty, und trägt dort die IP Adresse vom Raspberry und Port 22, sowie SSH Verbindungstyp ein und verbindet sich mit dem Raspberry Pi.

Nach Eingabe von Benutzernamen und Passwort (die wir oben im Image vergeben haben) kommt man auf die Konsole:
1688816198521.png
In der Konsole führt man jetzt folgende Befehlen nacheinander aus:
Code:
sudo apt update -y
sudo apt upgrade -y
sudo apt install git -y
git clone https://github.com/EinEinfach/CaSSAndRA
sudo apt install python3-pip -y
pip3 install --upgrade pip
pip install -r /home/pi/CaSSAndRA/requirements.txt
cd /home/pi/.local/lib/python3.9/site-packages/dash_daq
cp /home/pi/CaSSAndRA/bugfix_dash_daq_min/dash_daq.min.js dash_daq.min.js
CaSSAndRA ist jetzt bereits installiert und man könnte es schon manuell starten.
Das wollen wir aber nicht, wir wollen ja, dass CaSSAndRA automatisch gestartet wird.
Dazu gibt man folgenden Befehl ein:
Code:
sudo nano /etc/systemd/system/cassandra.service
Es öffnet sich der nano Editor. Dort müssen folgende Zeilen eingefügt werden:
Code:
[Unit]
Description=CaSSAndRA
After=multi-user.target

[Service]
#Euer Benutzername
User=pi
Type=simple
Restart=always
#ExecStart: ggf. Pfad zu eurer app.py anpassen
ExecStart=python3 /home/pi/CaSSAndRA/CaSSAndRA/app.py
[Install]
WantedBy=multi-user.target
Mit „STRG-X“ beenden wir den nano Editor und mit „Y” und Enter werden die Änderungen gespeichert.
Danach folgen noch diese Befehle in der Konsole:
Code:
sudo systemctl daemon-reload
sudo systemctl enable cassandra.service
sudo systemctl start cassandra
Fertig!
Den Raspberry einmal ausschalten und wieder einschalten, und absofort ist CaSSAndRA auf jedem Browser über die IP-Adresse vom Raspberry auf Port 8050 erreichbar:
In meinem Fall so:
192.168.178.70:8050


…und jetzt können wir den ganzen Raspberry Pi Linux Kram wieder vergessen…..brauchen wir erstmal nicht mehr 😊

Ich habe nach Erstellung der Anleitung diese auch nochmal komplett durchgetestet und alles wiederholt. Von der nackten SD-Karte ohne Betriebssystem habe ich 11 Minuten und 30 Sekunden gebraucht, bis CaSSAndRA lief.

Beste Grüße und viel Erfolg,
Chris
 
Zuletzt bearbeitet:
Im Nachhinein wurde noch festgestellt, dass der clone Befehl ohne sudo ausgeführt werden muss, da ansonsten der Besitzer sudo und nicht pi ist.
Code:
sudo git clone https://github.com/EinEinfach/CaSSAndRA
Muss also besser so heissen:
Code:
git clone https://github.com/EinEinfach/CaSSAndRA
(ich habe das oben korrigiert)

Ansonsten kann man auch im Installationsverzeichnis von CaSSAndRA die Schreibrechte anpassen:
Code:
sudo chmod -R 777 CaSSAndRA/
 
Hallo, kurz vor der neuen Saison musste ich feststellen, dass an meinem Cassandra Raspi die SD-Karte den Winter nicht überlebt hat. Ich habe also erneut deine Installationsanleitung befolgt. Leider Startet Cassandra nicht mehr automatisch, nur wenn ich die ./app.py über die Konsole ausführe, startet es wie gewohnt.
Komischerweise nur solange ich putty geöffnet habe...
Mache ich was falsch, oder hat sich seit dem letzten Update was geändert?
Die Installationsanleitung ist fehlerfrei durchgelaufen...
 
Code:
 cassandra.service - CaSSAndRA
     Loaded: loaded (/etc/systemd/system/cassandra.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2024-02-24 20:01:14 CET; 14h ago
   Main PID: 547 (python3)
      Tasks: 4 (limit: 779)
        CPU: 10.327s
     CGroup: /system.slice/cassandra.service
             └─547 python3 /home/pi/CaSSAndRA/CaSSAndRA/app.py

Feb 24 20:01:24 raspberrypi python3[547]:     If you continue, CaSSAndRA will:
Feb 24 20:01:24 raspberrypi python3[547]:      - Create /home/pi/.cassandra
Feb 24 20:01:24 raspberrypi python3[547]:      - Sync missing files from /src/data to /home/pi/.cassandra
Feb 24 20:01:24 raspberrypi python3[547]:     Each time you run CaSSAndRA, only missing files are copied and existing files a>
Feb 24 20:01:24 raspberrypi python3[547]:     overwritten, so no data will be lost.
Feb 24 20:01:24 raspberrypi python3[547]:     If this is the first time you are seeing this message, you can also:
Feb 24 20:01:24 raspberrypi python3[547]:      - Review the readme at https://github.com/EinEinfach/CaSSAndRA#cassandra-start
Feb 24 20:01:24 raspberrypi python3[547]:      - enter python app.py --help on the command line
Feb 24 20:01:24 raspberrypi python3[547]: --------------------------------------------------------------------------------
Feb 24 20:01:24 raspberrypi python3[547]: Continue with /home/pi/.cassandra? [Y/n]: Aborted!





-- Journal begins at Tue 2023-12-05 07:31:03 CET, ends at Sun 2024-02-25 11:07:07 CET. --
Feb 24 19:56:19 raspberrypi systemd[1]: Started CaSSAndRA.
Feb 24 19:56:25 raspberrypi python3[4152]: You are starting CaSSAndRA without an existing external data directory
Feb 24 19:56:25 raspberrypi python3[4152]: --------------------------------------------------------------------------------
Feb 24 19:56:25 raspberrypi python3[4152]:     CaSSAndRA stores your data (settings, maps, tasks, logs, etc) separate from the app
Feb 24 19:56:25 raspberrypi python3[4152]:     directory. This allows us to update the app without losing any data.
Feb 24 19:56:25 raspberrypi python3[4152]:     Configured data_path: /home/pi/.cassandra (missing)
Feb 24 19:56:25 raspberrypi python3[4152]:     If you continue, CaSSAndRA will:
Feb 24 19:56:25 raspberrypi python3[4152]:      - Create /home/pi/.cassandra
Feb 24 19:56:25 raspberrypi python3[4152]:      - Sync missing files from /src/data to /home/pi/.cassandra
Feb 24 19:56:25 raspberrypi python3[4152]:     Each time you run CaSSAndRA, only missing files are copied and existing files aren't
Feb 24 19:56:25 raspberrypi python3[4152]:     overwritten, so no data will be lost.
Feb 24 19:56:25 raspberrypi python3[4152]:     If this is the first time you are seeing this message, you can also:
Feb 24 19:56:25 raspberrypi python3[4152]:      - Review the readme at https://github.com/EinEinfach/CaSSAndRA#cassandra-start
Feb 24 19:56:25 raspberrypi python3[4152]:      - enter python app.py --help on the command line
Feb 24 19:56:25 raspberrypi python3[4152]: --------------------------------------------------------------------------------
Feb 24 19:56:25 raspberrypi python3[4152]: Continue with /home/pi/.cassandra? [Y/n]: Aborted!
Feb 24 19:56:31 raspberrypi systemd[1]: Stopping CaSSAndRA...
Feb 24 19:56:33 raspberrypi systemd[1]: cassandra.service: Succeeded.
Feb 24 19:56:33 raspberrypi systemd[1]: Stopped CaSSAndRA.
Feb 24 19:56:33 raspberrypi systemd[1]: cassandra.service: Consumed 6.519s CPU time.
-- Boot 3067ce1002b14e238f3182ddade29a3a --
Feb 24 19:56:44 raspberrypi systemd[1]: Started CaSSAndRA.
Feb 24 19:56:53 raspberrypi python3[545]: You are starting CaSSAndRA without an existing external data directory
Feb 24 19:56:53 raspberrypi python3[545]: --------------------------------------------------------------------------------
Feb 24 19:56:53 raspberrypi python3[545]:     CaSSAndRA stores your data (settings, maps, tasks, logs, etc) separate from the app
Feb 24 19:56:53 raspberrypi python3[545]:     directory. This allows us to update the app without losing any data.
Feb 24 19:56:53 raspberrypi python3[545]:     Configured data_path: /home/pi/.cassandra (missing)
Feb 24 19:56:53 raspberrypi python3[545]:     If you continue, CaSSAndRA will:
Feb 24 19:56:53 raspberrypi python3[545]:      - Create /home/pi/.cassandra
Feb 24 19:56:53 raspberrypi python3[545]:      - Sync missing files from /src/data to /home/pi/.cassandra
Feb 24 19:56:53 raspberrypi python3[545]:     Each time you run CaSSAndRA, only missing files are copied and existing files aren't
Feb 24 19:56:53 raspberrypi python3[545]:     overwritten, so no data will be lost.
Feb 24 19:56:53 raspberrypi python3[545]:     If this is the first time you are seeing this message, you can also:
Feb 24 19:56:53 raspberrypi python3[545]:      - Review the readme at https://github.com/EinEinfach/CaSSAndRA#cassandra-start
Feb 24 19:56:53 raspberrypi python3[545]:      - enter python app.py --help on the command line
Feb 24 19:56:53 raspberrypi python3[545]: --------------------------------------------------------------------------------
Feb 24 19:56:53 raspberrypi python3[545]: Continue with /home/pi/.cassandra? [Y/n]: Aborted!
-- Boot 975d332fddfd401aa2932ce6ff2a7e42 --
Feb 24 20:01:14 raspberrypi systemd[1]: Started CaSSAndRA.
Feb 24 20:01:24 raspberrypi python3[547]: You are starting CaSSAndRA without an existing external data directory
Feb 24 20:01:24 raspberrypi python3[547]: --------------------------------------------------------------------------------
Feb 24 20:01:24 raspberrypi python3[547]:     CaSSAndRA stores your data (settings, maps, tasks, logs, etc) separate from the app
Feb 24 20:01:24 raspberrypi python3[547]:     directory. This allows us to update the app without losing any data.
Feb 24 20:01:24 raspberrypi python3[547]:     Configured data_path: /home/pi/.cassandra (missing)
Feb 24 20:01:24 raspberrypi python3[547]:     If you continue, CaSSAndRA will:
Feb 24 20:01:24 raspberrypi python3[547]:      - Create /home/pi/.cassandra
Feb 24 20:01:24 raspberrypi python3[547]:      - Sync missing files from /src/data to /home/pi/.cassandra
Feb 24 20:01:24 raspberrypi python3[547]:     Each time you run CaSSAndRA, only missing files are copied and existing files aren't
Feb 24 20:01:24 raspberrypi python3[547]:     overwritten, so no data will be lost.
Feb 24 20:01:24 raspberrypi python3[547]:     If this is the first time you are seeing this message, you can also:
Feb 24 20:01:24 raspberrypi python3[547]:      - Review the readme at https://github.com/EinEinfach/CaSSAndRA#cassandra-start
Feb 24 20:01:24 raspberrypi python3[547]:      - enter python app.py --help on the command line
Feb 24 20:01:24 raspberrypi python3[547]: --------------------------------------------------------------------------------
Feb 24 20:01:24 raspberrypi python3[547]: Continue with /home/pi/.cassandra? [Y/n]: Aborted!
 
Ahhh... hab den Fehler gefunden...

sudo chmod -R 777 CaSSAndRA/

war noch nicht gesetzt...ohne geht es anscheinend nicht
 
Nein, normalerweise geht es ohne.

Du solltest den ersten Start ohne daemon Service durchführen und die Ausgaben im Terminal befolgen, sonst geht es nicht weiter

Du musst quasi deine Home Directory festlegen oder mit Y default Pfad bestätigen
 
Ich habe es nochmal genau nach Anleitung gemacht...das erste starten muss ich im cd /home/pi/CaSSAndRA/CaSSAndRA und dann mit ./app.py manuell ausführen.
Das steht aber so nicht in der Anleitung oder hab ich was übersehen...?
 
Welche Anleitung meinst du? Auf GitHub steht genau was du machen muss
Start CaSSAndRA for the first time (all commands except the last call (this is done in the browser) are executed in the terminal):

Go to the folder where your app.py file is located. If you haven't moved the folder after installation, then change to the folder as follows:

cd /home/ardumower/CaSSAndRA/CaSSAndRA

Start app with:

./app.py

At first time you will get follow message:

You are starting CaSSAndRA without an existing external data directory
 
Zuletzt bearbeitet:
Für alle, die bei folgendem Schritt Probleme haben mit "error: externally-managed-environment":
pip install -r /home/pi/CaSSAndRA/requirements.txt

Zur Lösung vorher folgedes eingeben:
cd /usr/lib/python3.11
sudo rm EXTERNALLY-MANAGED

Und an folgender Stelle muss ggf. die Versionsnummer aktualisiert werden:
cd /home/pi/.local/lib/python3.9/site-packages/dash_daq
cd /home/pi/.local/lib/python3.11/site-packages/dash_daq
 
Diese Umgebungsprobleme bekommt man, wenn man bspw. einen Pi mit aktuellem Betriebssystem bookworm hat.

Hier wird jetzt Python von der Nutzerumgebung entkoppelt und zentral für den Rechner gemanagt. Dabei wird auch die Paketverwaltung für Python auf die zentrale Paketverwaltung des Pi umgestellt.

Leider gibt es hier aber (noch) nicht alle Pakete.

Wer den Pi nur für diesen einen Einsatzzweck mit dem Ardumower betreibt, kann es sich einfach machen und wie oben beschrieben die zentrale Verwaltung entfernen. ich würde dann aber eher empfehlen, diese nicht zu löschen sondern umzubenennen, bspw. in EXTERNALLY-MANAGED.Old

Wer jedoch einen größeren Pi einsetzt, den er für mehrere Verwendungszwecke nutzt, sollte diese neue zentral verwaltete Python installation lieber unangetastet lassen, um nicht künftig bei anderen Einsätzen Probleme zu bekommen, die dieses dann voraussetzen.

In dem Fall empfehle ich Euch die offizielle Methode, zusätzlich ein virtuelles Python für den Cassandra-User aufzusetzen.
Dann behaltet Ihr das zentral verwaltete Python auf dem Raspberry und Euer Cassandra-User bekommt die bisher bekannte userbezogene Umgebung, um Cassandra lauffähig zu halten.
Man sollte sich dafür aber in der UNIX-Umgebung einigermaßen sicher zurechtfinden.
Die dafür erforderlichen Schritte hatte ich hier mal aufgeführt:
virtuelles Python einrichten
 
Hier noch ein Hinweis für andere Raspberry PI Benutzer mit debian bookworm:

Es scheint derzeit nicht möglich zu sein, Cassandra mit einen anderen Benutzernamen als pi als Dienst einzurichten.

Ich hatte es mit dem Benutzer ardumover versucht - manuell und mit dem Imager - jedoch immer die Fehlermeldung 217 beim Status des Dienstes bekommen. Kein Hinweis im Netz hatte mit geholfen, dieses Problem zu beseitigen.
 
Hallo,
Wenn Sie sagen, dass Sie es manuell erstellt haben, meinen Sie damit, dass Sie Linux-Befehle zum Generieren des Benutzers verwendet haben (so etwas wie „useradd ardumower“?)

Wenn ja, müssen Sie sicherstellen, dass der neue Benutzer denselben Gruppen angehört wie der „Pi“-Benutzer, siehe die Datei „/etc/group“, da es sich möglicherweise um ein Problem mit den Berechtigungen zur Verwaltung von Diensten handelt.

Andererseits könnte Ihnen dieser Thread bei etwas weiterhelfen:

Grüße.
 
Mit manuell meine ich, dass ich das unkonfigurierte Raspberry Pi Image aufgespielt habe und dort der Installation gefolgt bin. Vielen Dank für diesen Hinweis auf alle Fälle.
 
Ich hatte es mit dem Benutzer ardumover versucht - manuell und mit dem Imager - jedoch immer die Fehlermeldung 217 beim Status des Dienstes bekommen. Kein Hinweis im Netz hatte mit geholfen, dieses Problem zu beseitigen.
Ich weiß nicht, was Du damit meinst, dass Du es mit dem Imager versucht hast.
Kannst Du denn Cassandra mit diesem Benutzer manuell starten? Also nicht den Dienst aufrufen sondern die App in der Console direkt starten?
 
Mit Raspberry PI Imager meiner ich das offizielle Programm von Raspberry. Wenn ich dort einen anderen Benutzer als Pi konfiguriere, konnte ich mich noch nicht einmal anmelden. Dies scheint ein Problem zu sein, welches auch andere haben.
Cassandra konnte ich immer manuelle von der Console starten.

PS: Ich habe lokal kein Problem. Ich habe für mich eine Lösung gefunden. Ich wollte nur darauf hinweisen, dass man Probleme bekommen kann, wenn man versucht Cassandra unter einem anderen Benutzer als pi als Dienst zu starten. Den Hinweis von @seni habe ich bisher nicht weiter verfolgt.
 
Mit Raspberry PI Imager meiner ich das offizielle Programm von Raspberry. Wenn ich dort einen anderen Benutzer als Pi konfiguriere, konnte ich mich noch nicht einmal anmelden. Dies scheint ein Problem zu sein, welches auch andere haben.
Cassandra konnte ich immer manuelle von der Console starten.
Bei meinen Installationen (auch über Raspberry Pi Imager) habe ich noch nie den default Usernamen (pi) benutzt. Hatte noch nie von dir beschriebene Probleme
 
Oben