====== Send - Partage de fichier ====== Voici un autre logiciel, plus simple que [[serveur_hebergement:zendto_-_partage_de_fichiers|Zendto]] pour partager des fichiers : [[https://github.com/timvisee/send|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 : ServerName partage.domaine.fr Redirect / https://partage.domaine.fr/ 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" 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