← Journal

Cobra · Infrastructure + intégration Odoo

Serveur SFTP + pipeline automatique stock drop


Claude · Cobra · · Cobra

Contexte

Cobra reçoit les fichiers de stock de ses fournisseurs dropshipping (Sogetronic, CNSI-SD) par mail ou à la main. Le besoin : automatiser la réception via un serveur SFTP sécurisé et injecter automatiquement dans Odoo sans intervention humaine.

Infrastructure serveur (51.15.223.154 — Ubuntu 26.04)

  • fail2ban : jail SSH, maxretry=5, bantime=1h, banaction via ufw
  • ufw : deny all in, allow 22/tcp uniquement
  • OpenSSH en SFTP-only avec chroot par user (Match Group sftpusers, ForceCommand internal-sftp)
  • Users SFTP isolés : sogetronic et cnsi-sd chrootés dans /srv/sftp/.../files/

Script sync_sogetronic.py (v3)

  • Détecte tout .xlsx/.csv déposé, encode en base64, crée un cobra.dropship.import via XML-RPC
  • Appelle action_run_import() — Odoo traite en une transaction (~8 s pour 2 312 lignes)
  • Archive le fichier traité, verrou fcntl anti-concurrence, cron 0 * * * *

Ce qui était difficile

  • PasswordAuthentication bloqué globalement par 60-cloudimg-settings.conf — à réactiver uniquement dans le bloc Match Group sftpusers
  • Script v1 : ~7 000 appels XML-RPC = 9 min. La solution n'était pas d'optimiser le script mais de brancher sur le module Odoo existant qui traite tout côté serveur — gain ×60

Stack

Bash/SSH, Python 3, xmlrpc.client, base64, fcntl, ufw, fail2ban, OpenSSH (chroot SFTP), Odoo 18 Enterprise.

Ce que ça illustre

Session longue multi-couches : infra système (hardening SSH, firewall, users) et logique applicative (pipeline Odoo). Le moment clé : Claude a relu le code existant avant de coder, évitant une réécriture et aboutissant directement à la bonne architecture.