Friendica auf dem Raspberry Pi installieren
Samstag, 30.11.2024 08:18 Uhr | Kategorie: Raspberry Pi
Beitragsbild: BlogZwo.me
Nicht nur für mich als kleine Gedankenstütze halte ich hier auf meinem Blog fest, wie ich es endlich geschafft habe, Friendica auf dem Raspberry Pi zu installieren. Nun bin ich selbst überhaupt kein Experte in solchen Dingen, man möge es mir nachsehen, falls ich einen Fehler gemacht oder etwas doppelt geschrieben habe. Ich bin auch noch nicht so lange im Fediverse unterwegs und bei Linux verstehe ich ebenfalls so einiges nicht. Also: Nachmachen auf eigene Gefahr! 😉
Mehrfach hatte ich versucht, Friendica mit der automatischen Installation über den Browser einzurichten, leider ohne Erfolg. Vermutlich liegt es an meiner Konfiguration. Deswegen habe ich dann den Weg über die manuelle Installation gewählt.
Ich benötige diese Installation lediglich für mich zum Testen im internen Netzwerk, deswegen werde ich auf Themen wie Server-Installation, DynDNS, SSL etc. in diesem Artikel nicht weiter eingehen.
Um Friendica auf dem Raspberry Pi zu installieren wird natürlich zuerst ein Raspberry Pi benötigt. Vermutlich lässt sich mit dieser Methode Friendica auch auf anderen Servern (Debian etc.) und Geräten installieren. Ich verwende den Raspberry 4B (Raspberry Pi 4 Model B) mit Raspberry Pi OS, dieser ist bei mir im Netzwerk unter der IP 192.168.0.177 erreichbar. Der Raspberry wurde von mir frisch aufgesetzt, SSH ist aktiviert.
Als Vorlage diente mir diese Installationsanleitung für Friendica: Friendica Installation
Für die Installation von Friendica benutze ich eine Stable-Version (Friendica 2024.08 ‚Yellow Archangel‘ 1571), keine RC. Mein Installationsverzeichnis wird /var/www/html/friendica sein.
Nun geht es aber los.
Als erstes die Konsole öffnen, per SSH mit seinem Usernamen (XXXXX) verbinden:
ssh XXXXX@192.168.0.177
und das Passwort eingeben.
Sichergehen, dass das System auf dem neuesten Stand ist:
sudo apt update
sudo apt upgrade -y
Apache-Webserver installieren:
sudo apt install apache2 -y
MariaDB-Datenbank installieren:
sudo apt install mariadb-server -y
MariaDB absichern:
sudo mysql_secure_installation
Folgende Fragen beantworten (die ersten 3 Fragen sind individuell zu beantworten):
Enter current password for root (enter for none):
Switch to unix_socket authentication [Y/n]:
Change the root password? [Y/n]
Remove anonymous users? [Y/n] -> Ja!
Disallow root login remotely? [Y/n] -> Ja!
Remove test database and access to it? [Y/n] -> Ja!
Reload privilege tables now? [Y/n] -> Ja!
Nun PHP und die erforderlichen Module für Friendica installieren:
sudo apt install php php-mysql php-gd php-xml php-mbstring php-curl php-zip php-intl php-gmp -y
Nach der Installation sollte der Webserver funktionieren, beim Aufruf von http://192.168.0.177 erscheint die Apache-Default-Seite.
Nun wird Friendica installiert.
Dafür in der Konsole in dieses Verzeichnis wechseln:
cd /var/www/html
Friendica herunterladen:
sudo git clone https://github.com/friendica/friendica.git -b stable friendica
Ins Installationsverzeichnis wechseln:
cd friendica
Composer ausführen:
sudo bin/composer.phar install --no-dev
Den Ordner für Smarty 3 anlegen:
sudo mkdir -p view/smarty3
sudo chown www-data:www-data view/smarty3
sudo chmod 775 view/smarty3
Friendica-Addons installieren:
sudo git clone https://github.com/friendica/friendica-addons.git -b stable addon
Berechtigungen setzen:
sudo chown -R www-data:www-data /var/www/html/friendica
Jetzt in MariaDB anmelden:
sudo mysql -u root -p
Datenbank für Friendica erstellen:
CREATE DATABASE friendicadb;
CREATE USER 'friendica'@'localhost' IDENTIFIED BY 'SetzeHierEinPasswortEin';
GRANT ALL ON friendicadb.* TO 'friendica'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Verzeichnis wechseln:
cd config
Die local-sample.config.php öffnen:
sudo nano local-sample.config.php
In der Datei die entsprechenden Daten für die Datenbank usw eintragen:
<?php
// Local configuration
/* If automatic system installation fails:
*
* Copy this file to local.config.php
*
* Why local.config.php? Because it contains sensitive information which could
* give somebody complete control of your database. Apache's default
* configuration will interpret any .php file as a script and won't show the values
*
* Then set the following for your MySQL installation
*
* If you're unsure about what any of the config keys below do, please check the static/defaults.config.php file for
* detailed documentation of their data type and behavior.
*/
return [
'database' => [
'hostname' => 'localhost',
'username' => 'friendica',
'password' => 'SetzeHierEinPasswortEin',
'database' => 'friendicadb',
'charset' => 'utf8mb4',
],
// ****************************************************************
// The configuration below will be overruled by the admin panel.
// Changes made below will only have an effect if the database does
// not contain any configuration for the friendica system.
// ****************************************************************
'config' => [
'admin_email' => 'deinemail@deinprovider.tld',
'sitename' => 'Friendica Social Network',
'register_policy' => \Friendica\Module\Register::OPEN,
'register_text' => '',
],
'system' => [
'default_timezone' => 'Europe/Berlin',
'language' => 'de',
'url' => 'http://192.168.0.177',
],
];
Speichern (Strg + O, Enter) und schließen (Strg + X).
Wieder zurück ins Hauptverzeichnis wechseln:
cd ..
Mit diesem Befehl wird Friendica nun installiert, alle notwendigen Daten wurden ja zuvor in die local-sample.config.php eingetragen. Bei der Installation wird auch eine local.config.php im Verzeichnis /config erstellt:
sudo bin/console autoinstall -f /var/www/html/friendica/config/local-sample.config.php
In der Konsole sollte nun folgendes erscheinen:
Initializing setup...
Complete!
Checking environment...
NOTICE: Not checking .htaccess/URL-Rewrite during CLI installation.
Complete!
Loading config file '/var/www/html/friendica/config/local-sample.config.php'...
Complete!
Checking database...
Complete!
Inserting data into database...
Copying config file...
Complete!
Installing theme
Complete
Installation is finished
Die .htaccess muss noch erstellt bzw. kopiert werden, da sonst URL-Rewrite nicht funktioniert:
sudo cp .htaccess-dist .htaccess
Nun habe ich noch einen Virtuellen Host für Friendica erstellt::
sudo nano /etc/apache2/sites-available/friendica.conf
Folgendes in die friendica.conf einfügen:
<VirtualHost *:80>
ServerName 192.168.0.177
DocumentRoot /var/www/html/friendica
<Directory /var/www/html/friendica>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/friendica_error.log
CustomLog ${APACHE_LOG_DIR}/friendica_access.log combined
</VirtualHost>
Datei Speichern (Strg + O, Enter) und schließen (Strg + X).
Nun die die Standard-Website-Konfiguration, die aktuell noch die Apache-Default-Seite anzeigt, deaktivieren:
sudo a2dissite 000-default.conf
Die neue virtuelle Host-Datei aktivieren:
sudo a2ensite friendica.conf
Das mod_rewrite-Modul für Friendica aktivieren (falls es das noch nicht ist):
sudo a2enmod rewrite
Nun den Apache-Webserver noch neu laden, damit die Änderungen wirksam werden:
sudo systemctl reload apache2
Wenn man nun zum Browser wechselt und die Adresse http://192.168.0.177 eingibt, wird man von der Friendica-Seite begrüßt. Als erstes muss man sich nun als Admin registrieren, dazu unbedingt die selbe E-Mail-Adresse angeben, die man zuvor in die Config-Datei eingetragen hat.
Bei meinen Friendica-Installationen gab es einen Bug, der wohl derzeit in der Friendica Version 2024.08 nach der Installation auftreten kann – ich konnte mich nicht als Admin registrieren. In der local.config.php war richtigerweise
'register_policy' => \Friendica\Module\Register::OPEN,
eingetragen und trotzdem erschien der Button für die Registrierung nicht. Probierte ich es direkt über die Seite http://192.168.0.177/register bekam ich die Meldung „Zugriff verweigert“.
Bei github fand ich Hilfe, ein User hatte exakt dieses Problem bei seiner Friendica-Installation und es gab einen Workaround dafür. Wenn ich richtig informiert bin, ist dieser Bug in der Friendica Version 2024.09-rc bereits behoben.
Hier also der Bugfix:
In das Verzeichnis /var/www/html/friendica/static wechseln:
cd /var/www/html/friendica/static
Die Datei defaults.config.php öffnen:
sudo nano defaults.config.php
Nun mit Strg + W nach
admin_inactivity_limit
suchen, diesen Wert auf
0
ändern.
und mit Strg + O, Enter speichern und schließen (Strg + X).
Ich hab dann nochmal mit:
sudo systemctl reload apache2
den Apache neugestartet.
Sofort erschien der Button zum registrieren und ich konnte endlich meinen Admin-Account anlegen.
Weitere Infos zu diesem Workaround gibt es hier: Friendica: No „sign up“ or „register“ button on initial install.
Wie zuvor schon erwähnt – unbedingt die selbe E-Mail-Adresse für die Registrierung nehmen, die zuvor in der local.config.php eingetragen wurde!
Da bei mir keine E-Mail versendet wurde, bekam ich rechts oben eine Nachricht eingeblendet, in der mein Passwort stand.
Nun läuft Friendica auf dem Raspberry Pi mit Raspberry Pi OS.