Ausflugskiste
Inhalt der Anleitung

Anleitung

Installation

Voraussetzungen

Installation

  1. Alle Dateien in ein Verzeichnis des Webservers kopieren (auch ein Unterordner funktioniert).
  2. Sicherstellen, dass PHP in data/ schreiben darf. Auf einem eigenen Linux-Server z. B. (Webserver-Benutzer: apache unter Fedora/RHEL, www-data unter Debian/Ubuntu):
    sudo chgrp -R apache data && chmod -R g+rwX data

    Bei Webhostern genügt meist, data/ per FTP die Rechte 775 zu geben.

  3. Die Seite im Browser öffnen. Beim ersten Aufruf wird die Datenbank angelegt und du richtest den ersten Zugang ein – er erhält Administratorrechte.
  4. Weitere Benutzer legt ein Admin unter Profil → Benutzer an. Das Passwort erzeugt die App und zeigt es einmalig zum Weitergeben an. Bei der ersten Anmeldung muss der Benutzer ein eigenes Passwort festlegen. Dort lassen sich Benutzer auch sperren, entsperren, löschen und ihr Passwort neu erzeugen (auch danach ist ein Passwortwechsel fällig).

Für den Betrieb im Internet unbedingt HTTPS verwenden.

Passkeys

Benutzer können unter Profil → Anmeldung & Sicherheit Passkeys anlegen und sich damit ohne Passwort anmelden (Fingerabdruck, Gesichtserkennung, Geräte-PIN oder Passwortmanager). Das Passwort bleibt als Alternative erhalten. Voraussetzungen:

Geht ein Gerät verloren, kann ein Admin unter Profil → Benutzer die Passkeys eines Benutzers einsehen und einzeln entfernen – oder auf der Kommandozeile mit list-passkeys und delete-passkeys (siehe unten).

Apache

Die mitgelieferten .htaccess-Dateien sperren server/ und data/ und setzen Sicherheits-Header. Dafür muss AllowOverride All (mindestens AuthConfig FileInfo Indexes Options) erlaubt sein.

PHP-Einstellungen (Fehlerausgabe aus, Uploads bis 10 MB) stehen in .user.ini (PHP-FPM/CGI) bzw. in .htaccess (mod_php). Lässt der Hoster das nicht zu, die Werte in dessen Verwaltungsoberfläche setzen. Große Fotos verkleinert die App schon im Browser vor dem Hochladen (längste Seite höchstens 2560 Pixel), sodass auch Handyfotos über 10 MB meist problemlos hochgeladen werden können.

Fehlersuche

„Die App konnte nicht geladen werden: Auf dem Server fehlt die PHP-Erweiterung pdo_sqlite“
– PHP ist ohne SQLite-Unterstützung installiert. Prüfen mit php -m | grep -i sqlite, dann nachinstallieren, z. B. sudo dnf install php-pdo (Fedora/RHEL) bzw. sudo apt install php-sqlite3 (Debian/Ubuntu), und den Webserver bzw. php -S neu starten. Bei Webhostern die Erweiterung in der Verwaltungsoberfläche aktivieren.

„Die App konnte nicht geladen werden: Der Webserver darf nicht in den Ordner data/ schreiben“
– Schritt 2 der Installation fehlt. Bei aktivem SELinux (Fedora, RHEL) zusätzlich:

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/pfad/zur/app/data(/.*)?"
sudo restorecon -R /pfad/zur/app

„Interner Fehler“ – die genaue Ursache steht im Fehlerprotokoll des Webservers (z. B. /var/log/httpd/error_log bzw. /var/log/apache2/error.log, Einträge beginnen mit Ausflugskiste).

nginx

nginx liest keine .htaccess-Dateien. Die internen Ordner müssen selbst gesperrt werden:

location ~ ^/(data|server)/ { deny all; }
location ~ /\.             { deny all; }
location ~ \.(db|md)$      { deny all; }
location = /api.php {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/api.php;
    fastcgi_pass unix:/run/php-fpm/www.sock;
}

Datenverzeichnis außerhalb des Webroots (empfohlen, falls möglich)

Über die Umgebungsvariable AUSFLUGSZIELE_DATA_DIR (Name aus der Zeit vor der Umbenennung) kann ein anderer Speicherort gesetzt werden, z. B. in Apache mit SetEnv AUSFLUGSZIELE_DATA_DIR /var/lib/ausflugskiste.

Diese Anleitung beschreibt die Ausflugskiste 0.3.0. Die Hinweise für Betreiber stammen aus der README im Quelltext.