# VPS check — NAV V2 prérequis

Date : 2026-04-14

---

## NocoDB

- **Version exacte** : `0.301.5` (release `2026.04.0`)
- **Image Docker** : `nocodb/nocodb:latest` (tag latest, mais version réelle récupérée via API)
- **Port interne** : `8080` → mappé sur `8070` en externe
- **API version à utiliser** : **v1.x** (confirmé : `http://localhost:8080/api/v1/version` répond correctement)
- **Table IDs connues** (depuis `/opt/nav-carte/.env`) :
  - `NUXT_ORG_TABLE_ID=m08t7g5v4wch6wb`
  - `NUXT_AVIS_TABLE_ID=m4hub7cdutgec47`
- **Implications pour le dev** :
  - API v1 (NocoDB >= 0.100.x) — utiliser `/api/v1/db/data/noco/{baseId}/{tableId}`
  - Auth via token API (à récupérer dans NocoDB Settings > Tokens)
  - Doc officielle v1 : https://docs.nocodb.com/developer-resources/rest-APIs/overview

---

## Listmonk SMTP

- **Provider** : Resend
- **Host** : `smtp.resend.com`
- **Port** : `465`
- **TLS** : oui (SSL implicite sur 465)
- **Username** : `resend`
- **From email** : `newsletter@trans-former.fr`
- **From name** : `Jules Neny`
- **Password** : **stocké dans** `/opt/vps-kit/.env` (variable `SMTP_PASSWORD`)

  Jules : récupère-le avec :
  ```bash
  ssh vps-hetzner "grep SMTP_PASSWORD /opt/vps-kit/.env"
  ```

- **Réutilisation dans NAV V2** : OUI — utiliser directement les mêmes credentials Resend en SMTP
  - Alternative légère : utiliser l'**API HTTP Resend** (plus simple qu'SMTP dans un worker Python/Node)
  - API key Resend dans `/opt/vps-kit/.env` variable `RESEND_API_KEY` (à vérifier)

  ```bash
  ssh vps-hetzner "grep -i resend /opt/vps-kit/.env | grep -v SMTP"
  ```

---

## NAV V1 — Deploy path

- **Chemin** : `/opt/nav-carte/`
- **Type** : Build Nuxt statique (pas de container Docker — `.output/` présent)
- **Config** : `/opt/nav-carte/.env`
  - `NUXT_NOCODB_URL=http://localhost:8070`
  - Table IDs ci-dessus
- **Pas de docker-compose** — servi probablement via Caddy ou node process direct

---

## Bonus infra

- **Espace disque** : 38 GB total / **9.7 GB libre** (73% utilisé — attention)
- **RAM** : 7.5 GB total / 4.7 GB disponible (cache inclus) — correct
- **Swap** : 2 GB / 1.3 GB libre
- **crawl4ai installé** : **non** (ni container Docker, ni pip global)

### Stack Docker actif

| Container | Image | Port externe |
|-----------|-------|-------------|
| nocodb | nocodb/nocodb:latest | 8070 |
| astro-site | astro-site | 8090 |
| listmonk | listmonk/listmonk:v4.1.0 | 9000 |
| n8n | n8nio/n8n:1.40.0 | 5678 |
| coolify | coolify:4.0.0-beta.470 | 8000 |
| castopod | castopod:1.15.5 | 8081 |
| gitea | gitea:latest | 3030 |
| heyform | heyform community | 3000 |
| umami | umami:postgresql-v2.13.2 | 3001 |
| uptime-kuma | uptime-kuma:1.23.13 | 3002 |

---

## Recommandations pour NAV V2

- [x] **SMTP réutilisable : OUI** — Resend `smtp.resend.com:465`, username `resend`, from `newsletter@trans-former.fr`. Password dans `/opt/vps-kit/.env`
- [x] **NocoDB API à utiliser : v1.x** — endpoint `/api/v1/db/data/noco/{baseId}/{tableId}` avec token API
- [x] **crawl4ai : à installer** — pas présent sur le VPS. Option A : `docker run unclecode/crawl4ai` (container léger). Option B : `pip install crawl4ai` dans un venv Python sur le VPS.
- [x] **Espace disque : surveiller** — 9.7 GB libre. Si le worker NAV V2 génère des logs/cache, prévoir rotation.
- [x] **Alternative SMTP recommandée** : utiliser l'**API HTTP Resend** directement (pas SMTP) — plus fiable, pas de timeouts TLS, même provider.

  ```python
  import resend
  resend.api_key = "re_..."
  resend.Emails.send({"from": "newsletter@trans-former.fr", "to": ["jules@..."], ...})
  ```

### Actions manuelles requises (Jules)

1. **Récupérer le SMTP password Resend** :
   ```bash
   ssh vps-hetzner "grep SMTP_PASSWORD /opt/vps-kit/.env"
   ```

2. **Récupérer le token API NocoDB** (pour le worker NAV V2) :
   - Aller sur `http://[VPS]:8070` → Settings → API Tokens → créer un token `nav-v2-worker`

3. **Vérifier si une API key Resend existe** (alternative plus propre que SMTP) :
   ```bash
   ssh vps-hetzner "grep -i resend /opt/vps-kit/.env"
   ```
