Installer PSiTransfer sur un NAS Synology

PSiTransfer est une solution permettant l’envoi de gros fichier de manière sécurisée. Open source et gratuit, l’outil permet de partager facilement des fichiers avec un lien unique. Il s’agit d’une solution alternative à WeTransfer que l’on peut auto-héberger sur un NAS par exemple…

PSiTransfer, alternative à WeTransfer

Aujourd’hui, nous vous présentons PSiTransfer, un outil de partage de fichiers simple et open source (gratuit). Le concept est simple. L’utilisateur dépose un ou plusieurs fichiers, détermine une durée de rétention (1 heure, 6 heures, 1 jour, 3 jours, 1 semaine… ) et un mot de passe (optionnel). Après l’envoi des fichiers, un lien unique est généré et il sera alors possible de le partager. Il s’agit d’une alternative à WeTransfer et SwissTransfer.

PSiTransfer est utilisé généralement dans des environnements Linux (service Web), mais il fonctionne aussi très bien avec Docker.  Grâce à son image Docker, PSiTransfer peut être utilisé avec un NAS Synology, Qnap, Asustor, etc.

Docker PSiTransfer & Synology

Tout d’abord, sachez que ce guide a pour objectif d’installer PSiTransfer via Docker. Pour les autres installations (hors Docker), nous vous recommandons de passer par le site officiel. Pour rappel, Docker est une plateforme qui permet d’exécuter des applications dans des conteneurs. Docker facilite l’installation et le déploiement d’applications.

Nous allons utiliser Docker sur un NAS Synology. Sachez que le fonctionnement sera identique sur un NAS Qnap ou Asustor. Si vous ne l’avez pas encore, il se télécharge depuis le Centre de Paquets.

Docker NAS Synology

Lancer Docker sur votre NAS Synology, allez dans le menu Registre et tapez dans la zone de recherche (en haut à droite dans Docker) : PSiTransfer. Double-cliquez sur le premier psitrax/psitransfer.

Une petite notification vous demande quelle version vous souhaitez, laissez par défaut sur latest afin de bénéficier de la dernière mise à jour. Une fois que vous appuyez sur le bouton Sélectionné, le téléchargement se lance.

Après quelques secondes, le téléchargement doit être finalisé. Pour cela, rendez-vous dans le menu Images à gauche. L’image fait un peu plus de 160 Mo. On double clique dessus pour lancer le paramétrage de notre Conteneur. Là, on peut choisir un nom au conteneur et ensuite on va appuyer sur le bouton Paramètres avancés.


On va sur l’onglet Paramètres des ports et on choisit un Port local. On peut reprendre 3000, s’il n’est pas déjà pris par le NAS.

Appuyez sur le bouton Appliquer puis Suivant et enfin Effectué. C’est terminé. Le conteneur se lance et il est fonctionnel. Vous pouvez l’utiliser en local (sur votre réseau) ou depuis internet. Cela ne pose pas de souci. Par défaut, ouvrez un nouvel onglet et taper http://NomDuNAS:3000

À noter qu’il est possible de sortir le dossier contenant les fichiers, du conteneur. Pour cela, il faudra dans l’onglet Volume et indiquer un chemin (ex.: Docker/psitransfer) au chemin d’accès /data du conteneur. Pour en savoir plus, rendez-vous sur la page DockerHub

Pour rappel, si vous avez un NAS Synology, vous pouvez aussi utiliser la fonction Créer une demande de fichier, mais son objectif est la récupération de fichiers pure (sans partage après l’envoi).

  1. Rappelons juste que Docker n’est _PAS_ disponible sur les NAS équipés de processeurs de type ARM…
    Mais c’est bon d’avoir rêvé 1 peu, l’espace d’un instant 🙂

      1. Le partage de fichier sous Synology ne semble pas nécessiter un compte, juste un mot de passe et encore… et l’on peut paramétrer aussi la durée de validité.
        En revanche parfois la personne qui reçoit le lien a des soucis (cookie, http/https…)
        Ce qui n’est pas très user friendly

          1. Merci de nous éclairer dans ce cas car j’utilise le partage avec file station et synology drive, ainsi que les demandes d’upload, sans avoir besoin de créer un compte pour les personnes externes.
            Merci par avance.

        1. Salut,
          0.0.0.0 signifie sa propre ip, comme 127.0.0.1 ou localhost.
          Le message est tout a fait normal, et c’est aussi normal que 0.0.0.0 ne fonctionne pas car ce n’est qu’une représentation de l’ip local de ton NAS.

  2. Merci pour ce tuto. Belle découverte. Ca fonctionne de mon coté, mais j’aimerais configurer le dossier data.. Je comprends qu’il faut le configurer avec un certain compte ID mais je n’y arrive pas..Quand j’envoie un document, j’ai un message d’erreur me disant qu’il est impossible de créer le dossier. Une solution ? Merci

    1. Salut,
      Il faut chmod le dossier data que tu as créé :

      Tu peux le faire avec les commandes suivantes* : ( ici on considère que le chemin vers ton dossier data est /volume1/docker/psitransfer/data

      chown -R 1000 /volume1/docker/psitransfer/data
      chmod 700 /volume1/docker/psitransfer/data

      Il faut ensuite redémarrer le conteneur pour que les modifications prennent effet.
      * ( en SSH ou via le planificateur de taches > Script défini )

  3. Je ne vois pas le dossier où sont stocké les fichiers, quelqu’un a une idée please?
    même si je veux changer le dossier cible j’y arrive pas
    Dommage le tuto est succint contrairement à ce qu’on nous a habitué sur Cachem.fr 🙁

        1. Dans la configuration de l’image docker tu vas déjà dans l’onglet Volume et tu indiques un chemin (ex.: Docker/psitransfer/data) au chemin d’accès /data du conteneur.

          Ensuite dans le panneau de configuration du NAS -> planificateur de taches > Créer Tache planifiée -> Script défini -> Onglet Général : utilisateur root / Onglet Programmer : le faire tous les jours / Paramètre de taches : exécuter commande
          chown -R 1000 /volume1/docker/psitransfer/data
          chmod 700 /volume1/docker/psitransfer/data.
          Ca devrait fonctionner..

  4. Bonjour à tous et merci pour cette découverte,

    Si je laisse par défaut cela fonctionne, mais comme dit plus haut par Williams je ne vois pas mes données. J’ai suivi la procédure de Nicolas, Script par le planificateur de tâches ou SSH en root et cela ne marche pas. Dans les 2 cas, mon dossier data n’a aucun propriétaire et aucune permission.
    Je suis en DSM 7.0.1

    Mon paramétrage de Volume est : Ajout du dossier « docker/psitransfer » en cliquant sur ajouter un dossier. Dans chemin d’accès, je rajoute /data

    Si quelqu’un peut me dire ou je me plante ?

    Merci par avance

    1. c’est fou je n’y arrive pas non plus, mais où vont les fichiers que j’upload bordel
      @Cachem pourriez-vous completer votre tuto svp

      1. Bonsoir,
        Les fichiers sont stockés là où est installé le container. C’est embêtant dans le sens ou notre stockage est limité. Du coup, on ne peut pas intervenir dans le dossier. Donc, obligation d’attendre la fin du temps alloué lors de l’upload. Par défaut, c’est régler sur 1 semaine, mieux vaut faire des tests en le basculant sur 1h, comme ça le fichier est supprimé rapidement. En espérant qu’une âme charitable puisse nous donner la solution…

        1. Pour ma part je ne trouve pas du tout où sont stockés les fichiers, le dossier docker est vide, en revanche je ne comprends trop ta remarque concernant le délai d’1h ou une semaine, pour info c’est le lien qui sera expiré seulement mais le fichier sera toujours présent physiquement (enfin je suppose que c’est comme ça)

          1. Bonjour,
            le dossier est vide effectivement, mais l’espace disque est bien pris en compte. Fait un essai avec un fichier de 500?Mo au moins et met la rétention sur 1h, après le temps imparti, tu récupères ton espace de stockage, j’ai vérifié. Pour tester tu vérifies l’espace disque de ton volume avant et après avoir stocké ton fichier. Si Docker est installé sur le volume 1, c’est là que le stockage sera décompter. D’où l’intérêt de pouvoir choisir son emplacement, et surtout pouvoir intervenir au cas où un fichier coincerait.

  5. Peut on réserver les dépôts les dépôts au personnes qui disposent d’un compte utilisateur sur le syno sinon, il y a un risque en ouvrant le service sur inernet.

  6. Bonjour,
    Cela fonctionne parfaitement en interne dans le lan, par contre vers un utilisateur le lien ne fonctionne pas vu qu’il reprend le nom du NAS Synology.
    Ici: http://ramses:3000...
    Quelle procédure a adopté pour générer un lien pour une personne extérieure?
    P.

  7. Bonjour @Paul,
    Je ne l’ai pas installé mais en faisant un proxy reverse sur le container, j’imagine qu’en se conectant à PSiTransfer par le nom de domaine du nas, cela doit fonctionner.

        1. Bonjour @Tof,

          Il suffit de lire la doc à propose de l’image
          « To secure your PsiTransfer if exposed to the internet from unwanted, non authorized uploads use the PSITRANSFER_UPLOAD_PASS environment variable »

    1. Pas seulement cet article, mais tous les articles sur les NAS depuis juillet.
      Un petit mail poli et le contenu a été effacé. Merci de l’alerte…

  8. Bonjour
    Merci pour l’article.
    J’ai pu l’installer, configurer le reverse proxy dessus pour simplifier l’accès (https://transfer.....xxx)
    j’ai pu définir le répertoire de data (merci les gars !), sécuriser l’accès à l’upoad par un mot de passe, et accéder à a page d’admin (PSITRANSFER_ADMIN_PASS) => ce dernier point n’était pas clair, pour moi.

    Maintenant, j’aimerai pouvoir customiser un peu la page de PSITransfer (changer l’image, etc). Je lis dans la doc que c’est possible, mais là, je suis perdu, je n’y comprends plus rien.
    Est-ce possible depuis une installation Docker ? Si oui, merci de m’éclairer !

    Merci

  9. Bonjour a tous. Je decouvre ce « docker ». Il fonctionne mais j’ai un souci avec les partages de fichiers . Le lien est local. Il est donc impossible pour le receveur du lien de telecharger.

    1. pour qu’il puisse sortir sur internet en dehors de son propre réseau il faut effectuer une ouverture de port a votre fournisseur internet ou sur votre firewall. le service de base à été créer pour fonctionner en local

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.