Files
wiki/Catalogue-Self-Hosted/apps/app-sftpgo.md
T
2026-06-09 18:40:21 +02:00

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