Adrien Bourmault 9ecb4a121c | ||
---|---|---|
README.md |
README.md
Service CTRLV
Service de paste du 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).
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 = "PrivateBin"
+name = "CTRLV Chalec"
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 : f70ef78229
Mises à jour
On récupère les mises à jour depuis le dépôt de PrivateBin :
git fetch
On crée une nouvelle branche correspondant à la nouvelle version à installer (qui apparaît dans les résultats du git fetch) avec x.x.x la version choisie, et dérivant de la branche actuelle (la version actuellement déployée) :
git branch ctrlv.chalec.org-x.x.x
On fusionne la nouvelle version dans la branche :
git merge x.x.x
Et après avoir vérifié que rien n'est cassé (notamment la configuration), et résolu tout conflit... On profite ! :D