Send - Partage de fichier
Voici un autre logiciel, plus simple que Zendto pour partager des fichiers : Send. Pas de compte, pas d'envoi de mail.
Pré-requis
Pour faire tourner Send, il vous faut un serveur web (Apache2 dans mon cas), git, nodejs et npm. Pour installer tout ça sous Debian :
sudo aptitude install git apache2 nodejs npm
Je ne traiterai pas la configuration générale d’Apache2 ici.
Installation
Rendez-vous dans le répertoire /var/www :
cd /var/www
Récupérez les sources (on va utiliser l'utilisateur www-data pour toutes les commandes) :
sudo -u www-data git clone https://github.com/timvisee/send.git
Rendez-vous dans le répertoire send créé :
cd send
Lancez l'installation :
sudo -i -u www-data npm install export NODE_OPTIONS=--openssl-legacy-provider npm run build exit
Ouvrez le fichier de configuration :
sudo nano /var/www/send/server/config.js
Remplacez la ligne
default: 'https://send.example.com',
par
default: 'https://partage.domaine.fr',
Configuration d’Apache2
On va créer un fichier de configuration afin de pouvoir accéder à Send via un sous-domaine partage.domaine.fr (ou autre sous-domaine selon votre convenance).
Créez le fichier de configuration partage.domaine.fr.conf dans /etc/apache2/sites-available (remplacez domaine.fr par votre domaine) et collez-y les lignes suivantes en adaptant le domaine et l'emplacement des fichiers SSL :
<VirtualHost *:80> ServerName partage.domaine.fr Redirect / https://partage.domaine.fr/ </VirtualHost> <VirtualHost *:443> ServerName partage.domaine.fr LogLevel warn CustomLog ${APACHE_LOG_DIR}/partage.access.log combined ErrorLog ${APACHE_LOG_DIR}/partage.error.log SSLEngine on SSLCertificateFile /etc/letsencrypt/live/domaine.fr/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem Header set Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; connect-src 'self'; media-src 'self'; child-src 'self'; object-src 'self'; form-action 'self'; img-src 'self' * data:" RewriteEngine on # Make sure the original domain name is forwarded to Send # Otherwise the generated URLs will be wrong ProxyPreserveHost on # Make sure the generated URL is https:// RequestHeader set X-Forwarded-Proto https # If it's a normal file (e.g. PNG, CSS) just return it RewriteCond %{REQUEST_FILENAME} -f RewriteRule .* - [L] # If it's a websocket connection, redirect it to a Send WS connection RewriteCond %{HTTP:Upgrade} =websocket [NC] RewriteRule /(.*) ws://127.0.0.1:1443/$1 [P,L] # Otherwise redirect it to a normal HTTP connection RewriteRule ^/(.*)$ http://127.0.0.1:1443/$1 [P,QSA] ProxyPassReverse "/" "http://127.0.0.1:1443" </VirtualHost>
Activez les modules d'Apache2 nécessaires :
sudo a2enmod headers proxy proxy_http proxy_wstunnel rewrite
Activez le fichier de configuration :
sudo a2ensite partage.domaine.fr
Puis rechargez Apache2 :
sudo systemctl reload apache2
Lancement de Send via Systemd
Créez le fichier
/etc/systemd/system/send.service
Copiez les lignes suivantes dedans
[Unit] Description=Send - Partage de fichier [Service] WorkingDirectory=/var/www/send/ ExecStart=npm run prod User=www-data [Install] WantedBy=multi-user.target
Activez le service au démarrage
sudo systemctl enable send.service
Démarrez le service
sudo systemctl start send.service
Vous pouvez maintenant accéder à Send à l'adresse partage.domaine.fr