4.9 KiB
4.9 KiB
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 r720dans~/.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+) :
nvmousudo apt install nodejs npm - Go (1.22+) :
sudo apt install golang-goou 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 dansAllowedIPsdu client WireGuard.
3.3 Connexion Cursor
Ctrl+Shift+P→ "Remote-SSH: Connect to Host"- Choisir
r720 - 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 l’onglet 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
- Frontend : http://localhost:5173
- API : http://localhost:18080
- RabbitMQ UI : http://localhost:25672
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 d’attention
/etc/hosts: AvecAPP_DOMAIN=localhost, pas besoin deveza.frdans/etc/hostspour le dev remote.- Storybook :
npm run storybookdansapps/web; forwarder le port 6006. - Performances : Édition et indexation via SSH peuvent être plus lentes ; un lien réseau stable (LAN ou VPN) est important.
- Incus vs Docker : Docker pour le dev (postgres, redis, etc.) ; Incus reste pour la prod (veza-api, veza-front, etc. dans net-veza).
Ordre d’exécution recommandé
- Installer Docker + outils (Node, Go, Rust) sur le R720
- Cloner le repo dans
~/git/veza - Créer les
.env:cp env.remote-r720.example .envetcp apps/web/env.remote-r720.example apps/web/.env - Créer
veza-backend-api/.env(voir Phase 2.3) - Tester :
make infra-up-devpuismake dev-web - Se connecter en Remote-SSH avec Cursor et ouvrir le dossier
- Vérifier le port forwarding et l’accès à http://localhost:5173
- Lancer
make dev-fullet valider le flux complet