1# Lecture en direct du compte Vultr de FLEXYLEAD — 13 septembre 2026 2 3**Agent :** agent principal de session · **Régime :** lecture seule, GET uniquement, API Vultr v2 4**Clé employée :** jeton d'accès de Gregory, remis le 13/09, conservé en `600` dans le scratchpad, jamais recopié 5**Fenêtre des appels :** 2026-09-13 **10:19:00Z → 10:25Z** · ~20 appels, tous en lecture 6**Omission délibérée :** `/v2/object-storage/{id}` **n'a pas été appelé** — il renvoie les clés S3 en clair. Rien ne l'exigeait. 7 8--- 9 10## 1. La question centrale est tranchée 11 12**FAIT** — `GET /v2/instances` : le compte contient **une seule machine**, et son `main_ip` est **`95.179.222.52`**. 13 14C'est l'adresse relevée ce matin par DNS inverse comme appartenant à Vultr Holdings LLC Paris. **La machine Vultr est donc bien celle de FLEXYLEAD.** L'hypothèse concurrente soulevée par le cadrage d'infrastructure — une machine personnelle de Marco, cas déjà documenté chez Hetzner — est **éliminée**. 15 16Son unique trace dans le corpus jusqu'à aujourd'hui était une ligne de régime de travail du 09/09 (`preuves-fond-2026-09-09.md:4`), sans attribution. Elle est désormais attribuée. 17 18## 2. Fiche de la machine 19 20**FAIT** — `GET /v2/instances/e85e088c-9f07-41a2-9956-f2e0574bd0a8` : 21 22| | | 23|---|---| 24| Nom et hôte | `flexylead-vultr-vx1-paris` | 25| Adresses | **`95.179.222.52`** · IPv6 `2001:19f0:6801:0a76:5400:06ff:fea8:fd7a` (réseau `2001:19f0:6801:a76::/64`) | 26| Région | **`cdg` — Paris** | 27| Gamme | `vx1-g-4c-16g-240s` — 4 cœurs, 16 384 Mo, 240 Go | 28| Système | Debian 13 x64 (trixie), `os_id` 2625 | 29| État | `active` · `server_status: ok` · `power_status: running` | 30| Créée le | **08/09/2026 à 17:11:34 UTC** | 31| Quota de transfert | 1 042 Go | 32| Frais courus | 17,45 $ | 33 34**FAIT — quatre champs vides qui comptent :** 35- **`firewall_group_id` : vide.** Aucun groupe de pare-feu Vultr attaché. `GET /v2/firewalls` : **0 groupe sur tout le compte.** 36- **`internal_ip` : vide**, `vpcs: []`, `vpc_only: false` — **aucun réseau privé.** 37- **`snapshot_id` et `image_id` : vides** — machine créée depuis une image système, pas depuis un instantané. 38- **`user_scheme: root`** — la machine s'utilise en `root`. 39 40**FAIT** — `GET /v2/ssh-keys` : **0 clé SSH enregistrée sur le compte.** 41 42**Conséquence, niveau SUGGÉRÉ, à porter au dossier :** le port 22 est ouvert (constaté ce matin depuis un poste extérieur), la machine s'utilise en `root`, aucune clé SSH n'est déclarée, et aucun pare-feu Vultr ne filtre. **L'accès administrateur se fait donc très probablement par mot de passe `root` sur un port ouvert à l'internet.** Le champ `default_password` existe dans la réponse de l'API — il n'a pas été lu et n'a pas à l'être. 43 44**SUGGÉRÉ** — Puisqu'aucun pare-feu n'existe côté Vultr, le filtrage des ports 80 et 443 observé ce matin depuis l'extérieur est **fait sur la machine elle-même** (table de filtrage locale), ou bien aucun service n'y écoute. 45 46## 3. Aucune sauvegarde, d'aucune sorte 47 48**FAIT**, trois lectures concordantes : 49- `GET /v2/snapshots` → **0 instantané** 50- `GET /v2/backups` → **0 sauvegarde** 51- `GET /v2/instances/{id}/backup-schedule` → **`{"enabled": false}`**, aucun horaire, aucune prochaine occurrence 52 53**C'est le constat le plus actionnable de cette lecture**, et il porte sur la machine qui reçoit la production en ce moment même (§4). Il prolonge et confirme sur le nouvel hébergeur un constat déjà porté au dossier : aucune sauvegarde constatée, alors que la plateforme Apteva publie un composant `backup` (v0.3.6 « native Go instance folder backups », `plateforme-mouvement-2026-09-09.md:32`). 54 55## 4. La bascule des données a lieu ce matin 56 57**FAIT** — `GET /v2/instances/{id}/bandwidth`, transfert par jour depuis la création : 58 59| Jour | Entrant | Sortant | 60|---|---:|---:| 61| 08/09 (création à 17:11) | 55,5 Go | 13,1 Go | 62| 09/09 | 2,1 Go | 2,5 Go | 63| 10/09 | 3,3 Go | 3,4 Go | 64| 11/09 | 3,2 Go | 3,2 Go | 65| 12/09 | 0,9 Go | 0,7 Go | 66| **13/09 (jusqu'à 10:19)** | **288,1 Go** | **96,7 Go** | 67| **Total** | **353,1 Go** | **119,6 Go** | 68 69**FAIT** — `GET /v2/object-storage` : **un stockage objet, `flexylead-vultr-storage-amsterdam`, créé le 13/09 à 07:16:58 UTC**, région **`ams` — Amsterdam**, hôte S3 `ams1.vultrobjects.com`, état actif. Facturé 4 heures au moment de la lecture. 70 71**Le faisceau est net, et tout converge sur cette matinée :** 72 73| Heure UTC, 13/09 | Fait établi | Source | 74|---|---|---| 75| 07:16:58 | création du stockage objet à Amsterdam | `/v2/object-storage` | 76| 08:14:18 | binaire Apteva 0.51.3 reconstruit | `/api/version` | 77| 08:20:21→08:20:47 | redémarrage échelonné des agents de staging | `/api/instances` | 78| 09:47:39→09:47:40 | redémarrage échelonné des **quatre agents de production** | `/api/instances`, deux relevés | 79| 10:19 | 288 Go entrants et 97 Go sortants sur la journée | `/v2/instances/{id}/bandwidth` | 80 81**FAIT** — Un facteur **~100** sépare le transfert d'aujourd'hui de celui des quatre jours précédents (288 Go contre 0,9 à 3,3 Go). 82 83**SUGGÉRÉ, et fortement** — **La bascule des données vers Vultr est en cours ce matin.** Le profil est celui d'une machine qui tire des données d'ailleurs (288 Go entrants) et en pousse vers un stockage objet créé deux heures plus tôt (97 Go sortants). L'ordre de grandeur est compatible avec les 96,66 Go d'audio déjà basculés sur Scaleway le 06/09, et au-delà. 84 85**Ce que cela change pour un constat de la lecture Apteva** : le redémarrage des quatre agents de production à 09:47:40, survenu deux minutes après nos premiers appels, trouve ici une explication bien plus vraisemblable qu'une conséquence de nos lectures — **une matinée de migration active, avec redémarrages en série**. Le niveau reste `HYPOTHÈSE` ; c'est au contradicteur de trancher sur le code, mais le faisceau circonstanciel a changé de côté. 86 87## 5. Ce que le compte ne contient pas 88 89**FAIT** — Toutes ces lectures renvoient zéro élément : `/v2/bare-metals` (aucun serveur dédié), `/v2/load-balancers`, `/v2/blocks` (aucun volume), `/v2/databases`, `/v2/reserved-ips`, `/v2/startup-scripts`, `/v2/domains` (**aucune zone DNS chez Vultr** — le domaine reste chez Google), `/v2/billing/invoices` (**aucune facture émise à ce jour**). 90 91**FAIT** — **`GET /v2/account/activity` renvoie 404.** Le cadrage d'infrastructure signalait l'absence de journal d'actions comme son affirmation la plus fragile : **elle est vérifiée**. Il n'existe pas de journal d'actions lisible par l'API v2. **Conséquence : on ne saura jamais par cette voie qui a créé le stockage objet à 07:16 ni qui a agi sur le compte.** Seuls des relevés datés régulièrement, comme celui-ci, tiennent lieu de mémoire. 92 93**FAIT** — Toujours **aucun serveur dédié**, alors que Marco décrivait du matériel dédié (Ryzen PRO 3600, 6 cœurs / 12 fils, 32 Go, 2 × 1 To NVMe). La réserve du 08/09 tient : **ce n'est pas la machine annoncée**, et cinq jours plus tard elle n'a pas été remplacée. 94 95## 6. Coût réel — et l'écart avec le budget annoncé 96 97**FAIT** — `GET /v2/billing/pending-charges` : 98 99| Produit | Détail | Unités | Prix unitaire | Total | 100|---|---|---:|---:|---:| 101| Vultr Cloud Compute | `95.179.222.52 (16384 MB) [flexylead-vultr-vx1-paris]` | 114 heures | 0,153 $ | **17,45 $** | 102| Object Storage | `Standard (flexylead-vultr-storage-amsterdam)` | 4 heures | 0,0268 $ | 0,11 $ | 103| | | | | **17,56 $** | 104 105**FAIT** — `GET /v2/account` : `balance` **−10** (soit 10 $ d'avoir), `pending_charges` **17,56 $**, aucune facture émise. 106 107**PROJECTION, et à présenter comme telle** — 0,153 $/heure sur un mois plein (730 h) = **111,7 $/mois pour la seule machine**, hors stockage objet (0,0268 $/h ≈ 19,6 $/mois si maintenu). Soit **de l'ordre de 130 $/mois**. Ce n'est **pas une dépense constatée** : le compte n'a émis **aucune facture**, et les frais courus au moment du relevé sont de 17,56 $ pour 114 heures. Le tarif horaire, lui, est facturé et vérifié. 108 109**Le budget porté au dossier était « environ 45 €/mois »**, niveau `SUGGÉRÉ` (`contre-audit-migration-2026-09-03.md:113`). **L'écart est d'un facteur proche de 2,5.** À rapprocher d'un fait déjà établi : Apteva a corrigé « Vultr VX1 catalog **pricing** » le 08/09 à 18:11, soit **une heure après** la création de cette machine (`plateforme-mouvement-2026-09-09.md:34`) — le tarif affiché au moment du choix venait d'un catalogue contemporain de son propre correctif. **À porter à `audit-argent`.** 110 111**FAIT — le quota de transfert n'est pas un sujet**, contrairement à ce qu'un premier calcul pouvait suggérer. `GET /v2/account/bandwidth`, cycle du 01/09 au 13/09 10:14 : **354 Go entrants, 120 Go sortants**, pour **1 042 crédits acquis à ce jour** et **4 891 projetés** sur le mois complet, plus 2 048 crédits gratuits. Dépassement : **0**, au tarif de 0,01 $/Go. Même en poursuivant la bascule, la marge est large. 112 113## 7. Comptes et droits — l'état du 08/09 a tenu 114 115**FAIT** — `GET /v2/users` : **trois utilisateurs**. 116 117| Compte | Adresse | Accès programmatique | Droits | Sensibles | 118|---|---|---|---:|---| 119| JEREMY NORMAND | `j.normand@flexylead.com` | **non** | 17 | `manage_users`, `billing`, `provisioning`, `upgrade` | 120| Gregory DELALOEUF | `flexylead.gestion@gmail.com` | oui | 16 | `manage_users`, `billing`, `provisioning`, `upgrade` | 121| Marc Olivier Schwartz | `marcolivierschwartz@gmail.com` | oui | 14 | `provisioning`, `upgrade` | 122 123**FAIT** — **Le retrait de `manage_users` et `billing` au compte de Marco, appliqué le 08/09 à 18:25, a tenu.** Cinq jours plus tard, il ne les a pas récupérés. Le compte du propriétaire garde son accès programmatique désactivé. 124 125**FAIT** — `GET /v2/account` : `org_name` et `company_name` = **FLEXYLEAD GROUP**, siège 3 La Billiaie, Béganne, et **`TAXID: FR10949256226`** — **le numéro de TVA déposé le 08/09 est désormais enregistré sur le compte.** Le point ouvert du 08/09 est clos. 126 127**Rappel de constat, inchangé** — Deux des trois accès reposent sur des boîtes Gmail personnelles (Marco, Gregory). La chaîne de propriété passe par des messageries que FLEXYLEAD ne contrôle pas. Et `flexylead.gestion@gmail.com` est une boîte partagée, également utilisée comme identifiant du compte administrateur n°1 d'Apteva. 128 129## 8. Ce qui reste à établir 130 1311. **Que contient le stockage objet d'Amsterdam** et d'où viennent les 288 Go entrants. L'API Vultr ne donne ni le volume ni le contenu d'un bucket ; le savoir exige une lecture S3, donc les clés — que nous n'avons pas lues et ne demanderons pas sans nécessité. 1322. **Pourquoi le compute est à Paris et le stockage objet à Amsterdam.** Le point était signalé le 08/09 comme irréversible sans nouvelle migration. Deux régions, deux latences, et du transfert entre elles. 1333. **Si la machine sert déjà la production** ou si elle ne fait que recevoir des données. Le DNS pointe encore intégralement sur Hetzner, l'instance Apteva répond depuis Hetzner, et les ports 80/443 de la machine Vultr sont filtrés depuis l'extérieur. **SUGGÉRÉ : réception de données, pas encore mise en service.** 1344. **Qui a agi ce matin sur le compte** — non établissable, faute de journal d'actions (§5). 135 136## 9. À signaler à Jeremy, par ordre d'urgence 137 1381. **Aucune sauvegarde sur la machine qui reçoit la production.** Ni instantané, ni sauvegarde planifiée, ni volume séparé. Un incident disque aujourd'hui perd ce qui a été transféré ce matin. Le service de sauvegarde existe chez Vultr, il n'est pas activé. 1392. **Accès administrateur par mot de passe `root` sur un port 22 ouvert, sans pare-feu Vultr, sans aucune clé SSH déclarée.** 1403. **Le coût réel est de l'ordre de 130 $/mois**, contre environ 45 € annoncés. 1414. **Ce n'est toujours pas la machine annoncée** — instance cloud, pas serveur dédié, cinq jours après. 1425. **Il n'existe aucun journal d'actions.** Toute traçabilité repose sur des relevés datés pris à la main. 143 144--- 145 146*Ce document décrit le compte Vultr de FLEXYLEAD GROUP au 13/09/2026 entre 10:19 et 10:25 UTC. Une bascule de données était en cours pendant la lecture : l'état a changé pendant que nous le lisions.* 147