ctrlv/README.md

149 lines
3.9 KiB
Markdown

# 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](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
# 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 :
```
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