Initial vault setup
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
---
|
||||
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
|
||||
```yaml
|
||||
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
|
||||
```bash
|
||||
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` :
|
||||
```yaml
|
||||
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
|
||||
Reference in New Issue
Block a user