een bestanddelende website opzetten met Jirafeau op Debian 10

Jirafeau is een eenvoudige webapplicatie voor het hosten en delen van bestanden, gebouwd in PHP. Het heeft geen database nodig en biedt een schone, gemakkelijk te gebruiken gebruikersinterface met ondersteuning voor wachtwoordbeveiliging, geplande afloop, eenmalige downloads (zelfvernietiging) en in-browser voorbeeldweergave, naast andere nuttige functies.

Dit artikel leidt je door de installatie en configuratie van Jirafeau op Debian 10 vanaf nul, met Nginx en PHP-FPM.

Vereisten

  • Een Debian 10 systeem waarop je root toegang hebt.
  • Een domeinnaam die naar je server wijst.
  • De omgevingsvariabele $EDITOR moet ingesteld zijn.

Als je ingelogd bent als een niet-root sudo gebruiker, gebruik dan een geprivilegieerde shell om de in deze gids getoonde commando’s uit te voeren. Je kunt een root shell starten met:

sudo -s

Jirafeau Installatie

Bijwerken van het systeem en installeren van afhankelijkheden

Begin met het bijwerken van je systeem:

apt update
apt upgrade -y
reboot

Als het systeem weer up is, installeer je de vereiste softwarepakketten met het volgende commando:

apt install -y nginx php php-fpm certbot git

Zorg er dan voor dat Nginx en PHP-FPM beide ingeschakeld zijn en draaien:

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

Haal SSL Certificaat

Voordat je de webserver configureert, moet je een SSL certificaat voor je domein verkrijgen. Gebruik daarvoor het certbot gereedschap zoals getoond:

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

Na het uitvoeren van dit commando wordt je eerst gevraagd of je emails van de EFF wilt ontvangen. Als je dan gevraagd wordt de webroot voor je domein in te voeren, voer je /var/www/html in:

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

Het eigendom van het domein wordt geverifieerd en je certificaat en bijbehorende bestanden worden opgeslagen in /etc/letsencrypt/live/your_domain/. We kunnen nu Nginx configureren.

Nginx configuratie

Schakel het standaard configuratiebestand uit omdat het niet nodig is:

rm /etc/nginx/sites-enabled/default

Maak dan een nieuw configuratiebestand:

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

En voer het volgende in:

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;
    }
}

OPMERKING:Met de gegeven configuratie zullen alle HTTP verzoeken omgeleid worden naar HTTPS.

Schakel vervolgens het nieuwe configuratiebestand in door een symlink te maken in de map /etc/nginx/sites-enabled/:

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

Controleer op eventuele configuratiefouten met:

nginx -t

Laad het dan door het commando uit te voeren:

systemctl reload nginx.service

Jirafeau installeren

Download Jirafeau uit zijn Gitlab repository:

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

Maak een gegevensmap voor Jirafeau. Deze directory mag niet toegankelijk zijn via je webserver (d.w.z. hij moet zich buiten de web root directory bevinden, die bij onze configuratie /var/www/html is). We zullen /var/data/jirafeau gebruiken.

mkdir -p /var/data/jirafeau

Geef de Nginx gebruiker eigenaarschap van de configuratie en data directories die door Jirafeau gebruikt worden. Optimaal zou je de bestandspermissies moeten verscherpen als je instelling klaar is.

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

Open dan je web browser en navigeer naar https://your_domain/install.php. Je wordt eerst gevraagd een wachtwoord te kiezen voor de administratie interface. Voer een veilig wachtwoord in en ga verder met de volgende stap. Voer voor het basisadres https://your_domain/ in, en /var/data/jirafeau/ voor de gegevensdirectory. Ga verder naar de volgende stap, waarin het installatieprogramma een basis configuratiebestand voor Jirafeau aanmaakt.

Jirafeau instellen

Het ingebouwde installateurscript configureert alleen het essentiƫle. Voor een meer grondige configuratie open je het bijbehorende bestand:

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

Vervang de standaard organisatienaam en stel de sleutels contactpersoon en titel in. De organisatie en contactpersoon waarden worden weergegeven in je dienstvoorwaarden(https://your_domain/tos.php).

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

Standaard is de toegang tot de upload functie onbeperkt. Je kunt een of meer wachtwoorden instellen om deze toegang te beperken. Gebruik hiervoor de getoonde syntaxis:

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

Bij het uploaden van een bestand zijn verschillende tijdslimieten beschikbaar in het uploadformulier. Jirafeau staat standaard tijdslimieten toe van maximaal een maand, waarna geĆ¼ploade bestanden worden gewist. Om de beschikbare perioden te veranderen, wijzig je de beschikbaarheids-array. Om bijvoorbeeld alle vervaltermijnen toe te staan, gebruik je het volgende:

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

Als je tevreden bent met je configuratie, hoef je niets te doen om de veranderingen toe te passen.

Je file hosting website is nu klaar voor gebruik. De beheerinterface is te bereiken op https://your_domain/admin.php

jirafeau upload interface