veza/docs/REMOTE_DEV_R720.md

4.9 KiB
Raw Permalink Blame History

Développement Veza sur R720 (Remote-SSH)

Guide pour développer Veza sur le serveur Dell PowerEdge R720 depuis un laptop via Cursor Remote-SSH. Le laptop devient un terminal léger ; tout le compute (Docker, tests, builds) tourne sur le R720.

Prérequis

  • R720 initialisé selon le guide (Debian 13, WireGuard, nftables, Suricata, Incus)
  • Cursor installé sur le laptop
  • Connexion SSH vers le R720 (Host r720 dans ~/.ssh/config)

Phase 1 — Installation sur le R720

1.1 Docker

# Sur le R720 (en SSH)
sudo apt update && sudo apt install -y docker.io docker-compose-plugin
sudo usermod -aG docker senke
# Reconnecter pour activer le groupe : exit && ssh r720

1.2 Outils de développement

  • Node.js (20+) : nvm ou sudo apt install nodejs npm
  • Go (1.22+) : sudo apt install golang-go ou go.dev/dl
  • Rust : curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Optionnel : air (hot reload Go), cargo-watch (hot reload Rust)

1.3 Cloner le projet

mkdir -p ~/git
cd ~/git
git clone <url-du-repo> veza
cd veza

Phase 2 — Configuration des variables d'environnement

2.1 Racine du projet

cp env.remote-r720.example .env

Le fichier env.remote-r720.example contient APP_DOMAIN=localhost et les URLs localhost pour le port forwarding Cursor.

2.2 Frontend (apps/web)

cp apps/web/env.remote-r720.example apps/web/.env
# ou apps/web/.env.local

2.3 Backend (veza-backend-api)

Le backend charge son .env depuis veza-backend-api/. Créez-le avec les mêmes valeurs :

cat > veza-backend-api/.env << 'EOF'
APP_DOMAIN=localhost
DATABASE_URL=postgres://veza:devpassword@localhost:15432/veza?sslmode=disable
REDIS_URL=redis://localhost:16379
RABBITMQ_URL=amqp://veza:devpassword@localhost:15672/
CORS_ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000
JWT_SECRET=dev-secret-key-minimum-32-characters-long
EOF

2.4 Stream server (veza-stream-server)

Si vous lancez le stream server en local, créez veza-stream-server/.env avec :

DATABASE_URL=postgres://veza:devpassword@localhost:15432/veza?sslmode=disable
REDIS_URL=redis://localhost:16379

Phase 3 — Connexion Cursor Remote-SSH

3.1 SSH config (laptop)

Vérifiez ~/.ssh/config :

Host r720
  HostName 192.168.0.102
  User senke
  IdentityFile ~/.ssh/r720
  ServerAliveInterval 60

3.2 Accès distant (hors LAN)

  • Sur le LAN : SSH vers 192.168.0.102
  • Hors LAN : activez WireGuard sur le laptop, puis SSH. Si le VPN ne route pas 192.168.0.0/24, ajoutez cette plage dans AllowedIPs du client WireGuard.

3.3 Connexion Cursor

  1. Ctrl+Shift+P → "Remote-SSH: Connect to Host"
  2. Choisir r720
  3. Ouvrir le dossier /home/senke/git/veza (ou le chemin réel du clone)

Phase 4 — Workflow de développement

4.1 Démarrage

# 1. Infra Docker (postgres, redis, rabbitmq, clamav, minio)
make infra-up-dev

# 2. Migrations (si nécessaire)
make db-migrate

# 3. Lancer le dev complet (backend + stream + web avec hot reload)
make dev-full

Ou par service :

make infra-up-dev
make dev-web          # frontend seul
make dev-backend-api  # backend Go seul
make dev-stream-server # stream Rust seul

4.2 Port forwarding Cursor

Cursor détecte généralement les serveurs (Vite, etc.) et propose le forwarding. Sinon, vérifiez longlet Ports :

Port Service
5173 Vite (web)
18080 Backend API
18082 Stream
15432 PostgreSQL
16379 Redis
25672 RabbitMQ UI
6006 Storybook

4.3 Accès depuis le laptop

Phase 5 — Tests

# Tous les tests (infra doit être up pour les tests backend)
make test

# Par service
make test-backend-api
make test-stream-server
make test-web

Points dattention

  1. /etc/hosts : Avec APP_DOMAIN=localhost, pas besoin de veza.fr dans /etc/hosts pour le dev remote.
  2. Storybook : npm run storybook dans apps/web ; forwarder le port 6006.
  3. Performances : Édition et indexation via SSH peuvent être plus lentes ; un lien réseau stable (LAN ou VPN) est important.
  4. Incus vs Docker : Docker pour le dev (postgres, redis, etc.) ; Incus reste pour la prod (veza-api, veza-front, etc. dans net-veza).

Ordre dexécution recommandé

  1. Installer Docker + outils (Node, Go, Rust) sur le R720
  2. Cloner le repo dans ~/git/veza
  3. Créer les .env : cp env.remote-r720.example .env et cp apps/web/env.remote-r720.example apps/web/.env
  4. Créer veza-backend-api/.env (voir Phase 2.3)
  5. Tester : make infra-up-dev puis make dev-web
  6. Se connecter en Remote-SSH avec Cursor et ouvrir le dossier
  7. Vérifier le port forwarding et laccès à http://localhost:5173
  8. Lancer make dev-full et valider le flux complet