Pour avoir toutes les options disponibles, il suffit de faire un ./transfersh --help
en étant dans le dossier de l'application
Comme vous l'avez remarqué il y a beaucoup de possibilités, concentrons-nous sur les plus élémentaires
--purge-days value Nombre de jours de rétention des fichiers
--purge-interval value Nombre d'heures de rétention des fichiers
--max-upload-size value Taille maximum des fichiers envoyés (en kilooctet)
--log value Chemin du fichier log
--http-auth-user value Nom d'utilisateur pour la demande d'authentification
--http-auth-pass value Mot de passe pour la demande d'authentification
--ip-whitelist value Liste des ip autorisés a se connecter séparer avec des virgule (,)
--ip-blacklist value Liste des ip non autorisés à se connecter séparer avec des virgule (,)
Attention ci-dessous, vous devez choisir soit l'utilisation de certificats autosignés pour un accès local en général, soit la mise en place de certificats fournis par lets encrypt dans le cas d'un accès depuis l'extérieur (serveur dédié).
Pour lancer le serveur en HTTPS, il faudra générer un certificat autosigné avec les commandes suivantes
mkdir /etc/ssl/transfersh/
openssl genrsa -out /etc/ssl/transfersh/transfersh.key 2048
openssl req -new -key /etc/ssl/transfersh/transfersh.key -out /etc/ssl/transfersh/transfersh.csr
openssl x509 -req -days 365 -in /etc/ssl/transfersh/transfersh.csr -signkey /etc/ssl/transfersh/transfersh.key -out /etc/ssl/transfersh/transfersh.crt
./transfersh --provider=local --basedir=/tmp/ --tls-listener-only --tls-listener 0.0.0.0:443 --tls-private-key /etc/ssl/transfersh/transfersh.key --tls-cert-file /etc/ssl/transfersh/transfersh.crt
Ou avec Go
go run main.go --provider=local --basedir=/tmp/ --tls-listener-only --tls-listener 0.0.0.0:443 --tls-private-key /etc/ssl/transfersh/transfersh.key --tls-cert-file /etc/ssl/transfersh/transfersh.crt
Commencez par installer certbot
apt install certbot
Faites votre enregistrement DNS vers le serveur ou vous utiliserez transfersh
Entrez la commande suivante
certbot certonly --standalone --agree-tos -d SOUSDOMAINE.VOTREDOMAINE --register-unsafely-without-email
Voici l'explication de la commande
SOUSDOMAINE.VOTREDOMAINE remplacer cela par votre domaine ou sous domaine
Puis exécuter transfersh
./transfersh --provider=local --basedir=/tmp/ --tls-listener-only --tls-listener 0.0.0.0:443 --tls-private-key /etc/letsencrypt/live/SOUSDOMAINE.VOTREDOMAINE/privkey.pem --tls-cert-file /etc/letsencrypt/live/SOUSDOMAINE.VOTREDOMAINE/fullchain.pem
Ou avec Go
go run main.go --provider=local --basedir=/tmp/ --tls-listener-only --tls-listener 0.0.0.0:443 --tls-private-key /etc/letsencrypt/live/SOUSDOMAINE.VOTREDOMAINE/privkey.pem --tls-cert-file /etc/letsencrypt/live/SOUSDOMAINE.VOTREDOMAINE/fullchain.pem
Vous voilà avec transfertsh en mode HTTPS avec des certificats fournis par lets encrypt
Le renouvèlement des certificats est automatique, il se fait via un cron qui est dans /etc/cron.d/certbot qui s'exécute tout les 12h