104 lines
4.2 KiB
Markdown
104 lines
4.2 KiB
Markdown
---
|
|
title: SFTPGo
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, file-transfer-and-sync, sftp, ftp, webdav, go]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=file-transfer-and-sync]
|
|
---
|
|
|
|
# SFTPGo 📁
|
|
> Serveur SFTP/FTP/WebDAV full-featured avec interface web d'administration.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | https://sftpgo.com |
|
|
| **GitHub** | https://github.com/drakkan/sftpgo |
|
|
| **License** | AGPL-3.0 |
|
|
| **Langage** | Go |
|
|
| **Étoiles** | 11000+ |
|
|
| **Dernière MAJ** | 2025 |
|
|
| **Catégorie** | [[cat-file-transfer-and-sync]] |
|
|
|
|
## Description
|
|
SFTPGo est un serveur de transfert de fichiers moderne écrit en Go, supportant simultanément les protocoles **SFTP** (SSH File Transfer Protocol), **FTP/FTPS**, **WebDAV**, **HTTP/HTTPS** et l'API native. Il remplace avantageusement OpenSSH-sftpd, vsftpd ou ProFTPD par une stack unifiée, administrable depuis une interface web élégante.
|
|
|
|
La gestion des utilisateurs est très flexible : comptes locaux, base **PostgreSQL/MySQL/SQLite**, **LDAP**, authentification via **OIDC** (Keycloak, Authentik) ou via des providers externes (HTTP plugin). Chaque utilisateur peut avoir des **quotas** (taille, fichiers), des **bandwidth limits**, des permissions par répertoire, des virtual folders (montages), et des **expiration dates**.
|
|
|
|
Les backends de stockage supportés sont nombreux : filesystem local, S3, GCS, Azure Blob, Backblaze B2, SFTP distant, etc. SFTPGo embarque aussi un **event manager** (webhooks vers des URL) qui notifie en temps réel toute action (upload, download, delete) — idéal pour déclencher des pipelines d'analyse antivirus, de redimensionnement d'images ou de synchronisation.
|
|
|
|
## Installation
|
|
### Docker Compose
|
|
```yaml
|
|
services:
|
|
sftpgo:
|
|
image: drakkan/sftpgo:latest
|
|
container_name: sftpgo
|
|
environment:
|
|
- SFTPGO_DATA_PROVIDER__DRIVER=sqlite
|
|
- SFTPGO_DATA_PROVIDER__NAME=/var/lib/sftpgo/sftpgo.db
|
|
- SFTPGO_HTTPD__BINDINGS__0__PORT=8080
|
|
- SFTPGO_HTTPD__BINDINGS__0__ADDRESS=0.0.0.0
|
|
- SFTPGO_WEBDAVD__BINDINGS__0__PORT=8081
|
|
volumes:
|
|
- ./data:/var/lib/sftpgo
|
|
- ./config:/etc/sftpgo
|
|
- /srv/storage:/srv/storage
|
|
ports:
|
|
- "2022:2022" # SFTP
|
|
- "8080:8080" # Web admin
|
|
- "8081:8081" # WebDAV
|
|
- "21:21" # FTP (optionnel)
|
|
restart: unless-stopped
|
|
```
|
|
|
|
### Manuelle (Linux)
|
|
```bash
|
|
curl -sSL https://github.com/drakkan/sftpgo/releases/latest/download/sftpgo_linux_amd64.tar.gz | tar xz
|
|
sudo install -m 755 sftpgo /usr/local/bin/
|
|
sftpgo init
|
|
systemctl enable --now sftpgo
|
|
```
|
|
|
|
## Configuration
|
|
1. Première connexion : `https://<host>:8080/web/admin` avec admin par défaut (`admin`/`admin`, à changer !).
|
|
2. Créer un utilisateur, définir home directory, quotas, password.
|
|
3. Activer les protocoles souhaités dans la config (SFTP par défaut sur 2022).
|
|
4. Configurer un reverse proxy HTTPS (Traefik, Nginx, Caddy) en frontal.
|
|
5. Brancher un event handler (webhook) si besoin d'automatisation.
|
|
|
|
### Branche LDAP / OIDC
|
|
```yaml
|
|
environment:
|
|
- SFTPGO_DATA_PROVIDER__DRIVER=postgres
|
|
- SFTPGO_DATABASE__DSN=postgres://user:pass@db:5432/sftpgo
|
|
- SFTPGO_HTTPD__BINDINGS__0__PORT=8080
|
|
```
|
|
|
|
## Alternatives
|
|
- **Open source** : OpenSSH-sftp (léger, basique), vsftpd (FTP), ProFTPD, Seafile, Nextcloud (file sharing), [[app-rclone]] (client sync).
|
|
- **Propriétaire** : CrushFTP, WingFTP, Cerberus FTP, Files.com.
|
|
|
|
## Sécurité
|
|
- Chiffrement TLS natif pour FTP/FTPS et WebDAV, SSH pour SFTP.
|
|
- Authentification multi-source (LDAP, OIDC, MySQL, fichiers).
|
|
- 2FA TOTP intégrable par utilisateur.
|
|
- Chiffrement at-rest des mots de passe (Argon2).
|
|
- Brute-force protection intégrée (rate limit par IP).
|
|
- Event manager pour intégration antivirus (ClamAV via plugin).
|
|
|
|
## Ressources
|
|
- Documentation : https://docs.sftpgo.com
|
|
- Démo admin : https://demo.sftpgo.com (admin/admin)
|
|
- Code source : https://github.com/drakkan/sftpgo
|
|
- Releases : https://github.com/drakkan/sftpgo/releases
|
|
|
|
## Pages Liées
|
|
- [[cat-file-transfer-and-sync]] — Catégorie parente
|
|
- [[app-rclone]] — Sync multi-cloud
|
|
- [[app-ftpgrab]] — Grabber FTP
|
|
- [[app-gomft]] — Managed File Transfer
|
|
- [[recettes-docker-compose]] — Modèles de stacks
|