ctrlv/README.md

3.4 KiB

Service PASTE

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)

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 : f70ef78229