diff --git a/README.md b/README.md index 9edab0a..891f02b 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,123 @@ Service de paste du candidat chaton de Libre en communs. Responsable: Adrien Bourmault (@neox) + +# Installation + +Les données peuvent être stockées en SQL ou en fichier plat. Ici la solution retenue est d'utiliser des fichiers plats (voir [l'article sur wikipedia](https://fr.wikipedia.org/wiki/Base_de_donn%C3%A9es_orient%C3%A9e_texte)) + +## Prérequis + +S'assurer que certains paquets soient installés : +``` +sudo apt install php7.4-gd +``` + +## Déploiement du code + +Nous réalisons l'installation par clonage du dépôt Git : +``` +cd /var/www/ +git clone https://github.com/PrivateBin/PrivateBin +``` + +Créer une branche maison à partir de la dernière branche officielle : +``` +cd /var/www/PrivateBin +git checkout -b ctrlv.chalec.org-1.3.5 1.3.5 +``` + +Créer le dossier des données : +``` +mkdir /var/www/PrivateBin/data +chown www-data.www-data /var/www/PrivateBin/data +``` + +## Configuration de nginx + +On suit les conventions du SI de Libre en Communs (voir documentation infrastructure), avec intégration dans statoolinfos. + +``` +server { + + # StatoolInfos. + include /etc/nginx/statoolinfos.conf; + + set_real_ip_from 192.168.1.1; + real_ip_header proxy_protocol; + + # SSL configuration + # + listen 0.0.0.0:443 ssl proxy_protocol; + listen [::]:443 ssl; + + root /var/www/PrivateBin; + + ssl_certificate /etc/letsencrypt/live/ctrlv.chalec.org/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/ctrlv.chalec.org/privkey.pem; # managed by Certbot + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot + + + # Add index.php to the list if you are using PHP + index index.html index.htm index.php; + + server_name ctrlv.chalec.org; + + location /.well-known/host-meta { + default_type 'application/xrd+xml'; + add_header Access-Control-Allow-Origin '*' always; + } + + location /.well-known/host-meta.json { + default_type 'application/jrd+json'; + add_header Access-Control-Allow-Origin '*' always; + } + + location / { + # First attempt to serve request as file, then + # as directory, then fall back to displaying a 404. + try_files $uri $uri/ $uri.html $uri/index.php?q=$uri&$args =404; + } + + ssi on; + ssi_last_modified on; + + # pass PHP scripts to FastCGI server + + location ~ \.php$ { + include snippets/fastcgi-php.conf; + # With php-fpm (or other unix sockets): + fastcgi_pass unix:/run/php/php7.4-fpm.sock; + # With php-cgi (or other tcp sockets): + # fastcgi_pass 127.0.0.1:9000; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + } + +} + +server { + listen 80; + listen [::]:80; + + server_name ctrlv.chalec.org; + + return 302 https://ctrlv.chalec.org$request_uri; +} + +``` + +# Personnalisation + +## Nom du service +Modifier le fichier `/var/www/PrivateBin/cfg/conf.php` : +``` +-; name = "CTRLV Chalec" ++name = "Paste.libre-service.eu" +``` + +# Patch pour les métriques +Par défaut, PrivateBin ne permet pas de comptabiliser la création ou la destruction d'un pad. + +Un patch d'une quinzaine de lignes est nécessaire, remerciement à https://libre-service.eu pour la création de celui-ci : https://forge.devinsy.fr/libre-service.eu/paste.libre-service.eu-pastebin/commit/f70ef782294ac0b9d380c04157f1d7b2117c6b6b