Cobra · Infrastructure + intégration Odoo
Serveur SFTP + pipeline automatique stock drop
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 ufwufw: 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 :
sogetronicetcnsi-sdchrootés dans/srv/sftp/.../files/
Script sync_sogetronic.py (v3)
- Détecte tout
.xlsx/.csvdéposé, encode en base64, crée uncobra.dropship.importvia XML-RPC - Appelle
action_run_import()— Odoo traite en une transaction (~8 s pour 2 312 lignes) - Archive le fichier traité, verrou
fcntlanti-concurrence, cron0 * * * *
Ce qui était difficile
PasswordAuthenticationbloqué globalement par60-cloudimg-settings.conf— à réactiver uniquement dans le blocMatch 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.