Wie man eine File-Sharing-Website mit Jirafeau auf Debian 10 einrichtet

Jirafeau ist eine einfache Webanwendung zum Hosten und Austauschen von Dateien, die in PHP erstellt wurde. Es benötigt keine Datenbank und bietet eine saubere, leicht zu bedienende Benutzeroberfläche mit Unterstützung für Passwortschutz, planmäßiges Ablaufen, einmalige Downloads (Selbstzerstörung) und Browser-Vorschau sowie weitere nützliche Funktionen.

Dieser Artikel fÃ?hrt Sie durch die Installation und Konfiguration von Jirafeau unter Debian 10 von Grund auf, mit Nginx und PHP-FPM.

Anforderungen

  • Ein Debian-10-System, auf dem Sie Root-Zugang haben.
  • Ein Domänenname, der auf Ihren Server zeigt.
  • Die Umgebungsvariable $EDITOR muss gesetzt werden.

Wenn Sie als Nicht-Wurzel-Sudo-Benutzer angemeldet sind, verwenden Sie eine privilegierte Shell, um die in diesem Handbuch gezeigten Befehle auszuführen. Sie können eine Root-Shell mit starten:

sudo -s

Jirafeau-Installation

Aktualisierung des Systems und Installation von Abhängigkeiten

Beginnen Sie mit der Aktualisierung Ihres Systems:

apt update
apt upgrade -y
reboot

Sobald das System wieder läuft, installieren Sie die erforderlichen Softwarepakete mit dem folgenden Befehl:

apt install -y nginx php php-fpm certbot git

Stellen Sie dann sicher, dass Nginx und PHP-FPM sowohl aktiviert sind als auch laufen:

systemctl enable --now nginx.service php7.3-fpm.service

SSL-Zertifikat erhalten

Bevor Sie den Webserver konfigurieren, müssen Sie ein SSL-Zertifikat für Ihre Domain erhalten. Verwenden Sie dazu das certbot-Werkzeug wie abgebildet:

certbot certonly --webroot -m [email protected] -d your_domain --agree-tos

Nachdem Sie diesen Befehl ausgeführt haben, werden Sie zunächst gefragt, ob Sie E-Mails von der EFF erhalten möchten. Wenn Sie dann aufgefordert werden, die Webroot für Ihre Domain einzugeben, geben Sie /var/www/html ein:

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
Input the webroot for example.com: (Enter 'c' to cancel): /var/www/html

Der Besitz der Domain wird überprüft und Ihr Zertifikat und die zugehörigen Dateien werden in /etc/letsencrypt/live/your_domain/ gespeichert. Wir können jetzt Nginx konfigurieren.

Nginx-Konfiguration

Deaktivieren Sie die Standardkonfigurationsdatei, da sie nicht benötigt wird:

rm /etc/nginx/sites-enabled/default

Erstellen Sie dann eine neue Konfigurationsdatei:

$EDITOR /etc/nginx/sites-available/your_domain.conf

Und geben Sie Folgendes ein:

server {
    listen 80;
    listen [::]:80;
    server_name your_domain;
    return 301 https://your_domain$request_uri;
}
 server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name your_domain;
    root /var/www/html/jirafeau;
    index index.php;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
    location ~ \.php$ {
    fastcgi_split_path_info  ^(.+\.php)(/.+)$;
    fastcgi_index            index.php;
    fastcgi_pass             unix:/var/run/php/php7.3-fpm.sock;
    include                  fastcgi_params;
    fastcgi_param   PATH_INFO       $fastcgi_path_info;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

HINWEIS: Mit der bereitgestellten Konfiguration werden alle HTTP-Anfragen an HTTPS umgeleitet.

Als nächstes aktivieren Sie die neue Konfigurationsdatei, indem Sie einen Symlink im Verzeichnis /etc/nginx/sites-enabled/ erstellen:

ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/

Prüfen Sie mit auf etwaige Konfigurationsfehler:

nginx -t

Dann laden Sie sie durch den Befehl:

systemctl reload nginx.service

Installation von Jirafeau

Laden Sie Jirafeau aus seinem Gitlab-Repository herunter:

mkdir /var/www/html/jirafeau
git clone https://gitlab.com/mojo42/Jirafeau.git /var/www/html/jirafeau

Erstellen Sie ein Datenverzeichnis für Jirafeau. Dieses Verzeichnis sollte nicht über Ihren Webserver zugänglich sein (d.h. es sollte sich außerhalb des Web-Stammverzeichnisses befinden, das bei unserer Konfiguration /var/www/html ist). Wir werden /var/data/jirafeau verwenden.

mkdir -p /var/data/jirafeau

Geben Sie dem Nginx-Benutzer das Eigentum an den von Jirafeau verwendeten Konfigurations- und Datenverzeichnissen. Optimal ist es, wenn Sie die Dateiberechtigungen nach Abschluss der Einrichtung verschärfen.

chown -R www-data:www-data /var/www/html/jirafeau/lib /var/data/jirafeau

Öffnen Sie dann Ihren Webbrowser und navigieren Sie zu https://your_domain/install.php. Sie werden zunächst aufgefordert, ein Passwort für die Administrationsoberfläche zu wählen. Geben Sie ein sicheres Passwort ein und fahren Sie mit dem nächsten Schritt fort. Als Basisadresse geben Sie https://your_domain/ und als Datenverzeichnis /var/data/jirafeau/ ein. Fahren Sie mit dem nächsten Schritt fort, bei dem das Installationsprogramm eine grundlegende Konfigurationsdatei für Jirafeau erstellt.

Konfigurieren von Jirafeau

Das integrierte Installationsskript konfiguriert nur das Wesentliche. Für eine gründlichere Konfiguration öffnen Sie die entsprechende Datei:

$EDITOR /var/www/html/jirafeau/lib/config.local.php

Ersetzen Sie den Standardnamen der Organisation und legen Sie den Schlüssel für die Kontaktperson und den Titel fest. Die Werte der Organisation und der Kontaktperson werden in Ihren Nutzungsbedingungen (https://your_domain/tos.php) angezeigt.

  'organisation' => 'Your Organisation/Company',
  'contactperson' => 'Your Name <[email protected]>',
  'title' => 'Title of your choice',

Standardmäßig ist der Zugriff auf die Upload-Funktion uneingeschränkt möglich. Sie können ein oder mehrere Passwörter festlegen, um diesen Zugriff einzuschränken. Verwenden Sie die gezeigte Syntax:

  'upload_password' =>
  array (
          'password1',
          'password2',
  ),

Beim Hochladen einer Datei stehen im Upload-Formular verschiedene Zeitlimits zur Verfügung. Jirafeau erlaubt standardmäßig eine Frist von bis zu einem Monat, nach deren Ablauf hochgeladene Dateien gelöscht werden. Um die verfügbaren Zeiträume zu ändern, modifizieren Sie das Verfügbarkeitsarray. Um z.B. alle Ablauffristen zuzulassen, verwenden Sie Folgendes:

  array (
    'minute' => true,
    'hour' => true,
    'day' => true,
    'week' => true,
    'month' => true,
    'quarter' => true,
    'year' => true,
    'none' => true,
  ),

Sobald Sie mit Ihrer Konfiguration zufrieden sind, sind keine weiteren Maßnahmen erforderlich, um die Änderungen anzuwenden.

Ihre Datei-Hosting-Website ist jetzt einsatzbereit. Die Verwaltungsschnittstelle kann unter https://your_domain/admin.php aufgerufen werden.

jirafeau upload interface

Das könnte Dich auch interessieren …