2022-08-06 12:37:14 +02:00
# Service CTRLV
2021-12-04 22:22:37 +01:00
2022-08-06 12:37:14 +02:00
Service de paste du chaton de Libre en communs.
2021-12-05 13:06:42 +01:00
Responsable: Adrien Bourmault (@neox)
2022-08-06 12:34:38 +02:00
# Installation
2022-08-06 16:02:31 +02:00
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 )).
2022-08-06 12:34:38 +02:00
## 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` :
```
2022-08-06 16:02:31 +02:00
-; name = "PrivateBin"
+name = "CTRLV Chalec"
2022-08-06 12:34:38 +02:00
```
2022-08-26 23:43:48 +02:00
## Suppression des délais "1 an" et "jamais"
Modifier le fichier `/var/www/PrivateBin/cfg/conf.php` :
```
-1year = 31536000
-never = 0
```
2022-08-06 12:34:38 +02:00
# Patch pour les métriques
Par défaut, PrivateBin ne permet pas de comptabiliser la création ou la destruction d'un pad.
2023-03-28 11:40:11 +02:00
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 et on pensera à y modifier le chemin de stockage des métriques.
2022-08-06 13:06:55 +02:00
# Mises à jour
On récupère les mises à jour depuis le dépôt de PrivateBin :
```
2023-03-28 11:48:16 +02:00
git fetch origin
2022-08-06 13:06:55 +02:00
```
2022-08-06 13:12:34 +02:00
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)* :
2022-08-06 13:06:55 +02:00
```
2023-03-28 11:49:26 +02:00
git branch ctrlv.chalec.org-x.x.x & & git switch ctrlv.chalec.org-x.x.x
2022-08-06 13:06:55 +02:00
```
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