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

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

Pages Liées