3.6 KiB
title: FTPGrab created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, file-transfer-and-sync, ftp, grabber, backup, go] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=file-transfer-and-sync]
FTPGrab 🛰️
Synchronisateur automatique de serveurs FTP/FTPS/SFTP distants (Go).
| Métadonnée | Valeur |
|---|---|
| Site web | https://github.com/ftpgrab/ftpgrab |
| GitHub | https://github.com/ftpgrab/ftpgrab |
| License | MIT |
| Langage | Go |
| Étoiles | 1500+ |
| Dernière MAJ | 2024 |
| Catégorie | cat-file-transfer-and-sync |
Description
FTPGrab est un outil de synchronisation descendante (grab) conçu pour aspirer régulièrement des fichiers déposés sur un serveur FTP/FTPS/SFTP distant vers un stockage local (ou S3, GCS, Azure Blob, etc.). Il est typiquement utilisé par les hébergeurs, photographes, comptables qui déposent leurs fichiers sur un FTP mutualisé et veulent les rapatrier automatiquement sans cron artisanal.
L'outil se configure via un simple fichier YAML (connection FTP, SFTP, FTPS, S3 + destination locale ou cloud + filtres par extension, regex, taille, date). Il tourne ensuite en mode one-shot (CLI cronable) ou en daemon avec scheduling intégré (@every 30m, cron expr). Une notification Discord/Slack/Mattermost est envoyée à chaque fichier récupéré.
FTPGrab est l'évolution moderne et multi-protocole de lftp mirror. Il supporte les gros fichiers, la reprise sur erreur, le rate-limiting et la déduplication par hash. Une image Docker officielle est publiée sur Docker Hub et Quay.
Installation
Docker Compose
services:
ftpgrab:
image: ghcr.io/ftpgrab/ftpgrab:latest
container_name: ftpgrab
environment:
- FTPGRAB_SCHEDULE=@every 15m
- FTPGRAB_LOG_LEVEL=info
volumes:
- ./config:/app/config
- /srv/grabbed:/app/data
restart: unless-stopped
Binaire natif
wget -qO- https://github.com/ftpgrab/ftpgrab/releases/latest/download/ftpgrab_linux_amd64.tar.gz | tar xz
sudo mv ftpgrab /usr/local/bin/
ftpgrab --config /etc/ftpgrab.yml
Configuration
Fichier ftpgrab.yml :
schedule: "@every 30m"
download:
timeout: 30s
retry: 3
connection:
protocol: sftp
host: ftp.example.com
port: 22
username: user
password: *** private_key: /keys/id_rsa
sources:
- /incoming
destination: /app/data
filters:
file_name_regex: ".*\\.zip$"
file_size_max: "500MB"
notifications:
notifier: "slack"
notifier_params:
webhook: "https://hooks.slack.com/services/XXX/YYY/ZZZ"
Alternatives
- Open source :
lftp+ cron,rsync(sur SSH), app-rclone (bidirectionnel), MirrorCommand, app-syncthing (P2P), curl + script bash. - Propriétaire : GoodSync, FTPGetter, WinSCP (scriptable).
Sécurité
- Connexion SFTP (SSH) chiffrée bout-en-bout par défaut.
- FTPS supporte TLS 1.2+ (désactiver SSLv3).
- Authentification par clé SSH recommandée pour SFTP.
- Stockage des secrets via variables d'environnement ou fichier de config chmod 600.
- Logs sans mot de passe (redaction auto).
- Notifications sur webhook : attention à l'exposition d'URLs sensibles.
Ressources
- Documentation : https://github.com/ftpgrab/ftpgrab#readme
- Exemples YAML : https://github.com/ftpgrab/ftpgrab/tree/main/example
- Releases : https://github.com/ftpgrab/ftpgrab/releases
Pages Liées
- cat-file-transfer-and-sync — Catégorie parente
- app-sftpgo — SFTP server
- app-rclone — Multi-cloud sync
- app-gomft — Managed File Transfer
- recettes-docker-compose — Modèles de stacks