Installer SFTPGo sur Raspberry Pi avec Docker : créer un serveur SFTP sécurisé

Schéma des connexions SFTPGo entre un client et un Raspberry Pi

Vous voulez déposer ou récupérer des fichiers sur votre Raspberry Pi sans partager un dossier Samba à tout le réseau ? SFTPGo fournit un serveur SFTP administrable dans un navigateur, avec des comptes, des répertoires isolés et des quotas. Ce guide installe SFTPGo avec Docker sur Raspberry Pi OS, puis vérifie une connexion depuis un PC ou un Mac.

En bref : ce que vous allez obtenir

  • Un serveur SFTP chiffré sur votre Raspberry Pi, accessible sur le LAN.
  • Une interface web pour créer des utilisateurs et limiter leur dossier.
  • Des données persistantes : une mise à jour du conteneur ne supprime pas la configuration.

Résultat attendu : après environ vingt minutes, un client SFTP se connecte à sftp://IP_DU_PI:2022 avec un compte créé dans SFTPGo.

Schéma des connexions SFTPGo entre un client et un Raspberry Pi
Le flux reste simple : le client SFTP joint le port choisi du Raspberry Pi.

À qui s’adresse SFTPGo ?

SFTPGo convient pour partager un espace de dépôt avec la famille, transférer les exports d’une caméra ou donner un accès limité à un prestataire. Ce n’est pas un NAS complet : pour la synchronisation continue, regardez Syncthing ; pour des partages visibles dans l’explorateur de fichiers, Samba reste plus naturel.

Prérequis et choix de stockage

  • Un Raspberry Pi 4, Pi 5 ou un modèle compatible 64 bits, avec Raspberry Pi OS à jour.
  • Un accès SSH et une adresse IP locale connue.
  • Docker Engine et le plugin Compose.
  • Un SSD USB ou NVMe est conseillé pour des transferts fréquents.
Checklist de préparation avant l’installation de SFTPGo sur Raspberry Pi
Préparez le stockage et les accès avant de créer le premier compte.

1. Installer Docker et préparer le dossier

Si Docker est déjà présent, passez directement à la création du projet. Vérifiez d’abord que Compose répond :

docker --version
docker compose version

Sur Raspberry Pi OS, la méthode recommandée est celle de la documentation Docker. Créez ensuite un dossier dédié :

mkdir -p ~/sftpgo
cd ~/sftpgo
mkdir -p data

2. Créer le fichier Docker Compose

Ouvrez compose.yml avec nano compose.yml, puis collez cette configuration. Le port 8080 sert uniquement à l’administration web ; 2022 est le port SFTP exposé aux clients.

services:
  sftpgo:
    image: drakkan/sftpgo:latest
    container_name: sftpgo
    restart: unless-stopped
    ports:
      - "8080:8080"
      - "2022:2022"
    volumes:
      - ./data:/var/lib/sftpgo

Enregistrez avec Ctrl+O, validez puis quittez avec Ctrl+X. Démarrez le service :

docker compose up -d
docker compose ps

3. Créer l’administrateur et un premier utilisateur

Dans un navigateur du réseau local, ouvrez http://IP_DU_PI:8080. À la première ouverture, créez le compte administrateur. Dans Users, ajoutez ensuite un utilisateur de transfert :

  • choisissez un identifiant sans espace ;
  • définissez un mot de passe long et unique, ou une clé publique SSH ;
  • donnez-lui un dossier de départ dédié, par exemple /srv/sftp/partage ;
  • n’accordez que les permissions nécessaires (lecture, écriture, suppression).

Ne réutilisez pas le compte administrateur pour les transferts quotidiens : un compte par usage rend les révocations et les journaux bien plus simples.

4. Tester depuis Windows, macOS ou Linux

Dans WinSCP ou FileZilla, sélectionnez le protocole SFTP, l’hôte IP_DU_PI, le port 2022, puis les identifiants du nouvel utilisateur. En terminal :

sftp -P 2022 mon_utilisateur@192.168.1.50
put test.txt
ls
exit

La commande put doit téléverser le fichier et ls doit l’afficher. Vérifiez aussi son arrivée dans le dossier configuré sur le Pi.

Une démonstration vidéo utile

Sécuriser l’installation avant un accès hors de chez vous

Pour un usage domestique, gardez d’abord SFTPGo sur le réseau local. Si un accès distant est nécessaire, privilégiez un VPN comme Tailscale ou WireGuard. Évitez d’ouvrir l’interface 8080 sur Internet. Si vous ouvrez le port SFTP, utilisez des clés SSH, désactivez les comptes inutilisés, mettez à jour l’image et consultez les logs :

cd ~/sftpgo
docker compose pull
docker compose up -d
docker compose logs --tail=100 sftpgo

Dépannage : les erreurs les plus courantes

  • Connexion refusée : confirmez l’IP, le port 2022 et l’état du conteneur avec docker compose ps.
  • Interface inaccessible : testez http://IP_DU_PI:8080 depuis le LAN et vérifiez qu’un pare-feu ne bloque pas 8080.
  • Permission denied : contrôlez le dossier de départ et les droits du compte dans SFTPGo, pas seulement ceux du système.
  • Données disparues après recréation : assurez-vous que le volume ./data:/var/lib/sftpgo est bien présent et que vous relancez Compose depuis ~/sftpgo.

Variantes et limites

SFTPGo peut aussi utiliser des stockages distants et d’autres protocoles selon votre besoin. Pour un unique accès SSH personnel, le serveur OpenSSH déjà présent sur Raspberry Pi OS est plus léger. Pour des sauvegardes automatisées, associez plutôt Restic ou Kopia à un stockage dédié : SFTPGo est excellent pour l’échange de fichiers, pas pour remplacer une stratégie de sauvegarde.

Questions fréquentes

SFTPGo est-il gratuit ?

Le projet SFTPGo est open source. Vérifiez sa documentation officielle pour les options et évolutions de licence.

Quel port utiliser pour SFTPGo ?

Dans cette configuration, l’administration est sur 8080 et le service SFTP sur 2022. Vous pouvez les changer, à condition d’adapter Compose et votre client.

Puis-je utiliser le port 22 ?

Oui, mais évitez un conflit avec le SSH du Raspberry Pi. Le port 2022 simplifie la coexistence avec OpenSSH.

Sources et documentation


Vincent Vandegans partage des guides concrets pour installer, comprendre et dépanner les outils Raspberry Pi, Linux et maison connectée.

Laisser un commentaire

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