Die Abbildung zeigt die Friendica-Weboberfläche nach einer erfolgreichen Installation auf einem Raspberry Pi. Zu sehen sind die Version der Friendica-Instanz (2024.08), Datenbankinformationen sowie Links zu weiteren Ressourcen und ein Hinweis auf nicht installierte Addons oder Apps.
Friendica-Weboberfläche mit Installationsinformationen.

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert