# IliaCloud — Instructions pour Claude

## Architecture

- **Frontend** : React 18 + Vite + Tailwind — dans `frontend/`
- **Backend** : Node.js + Express + PostgreSQL — dans `backend/`
- **Déploiement** : Docker Swarm sur VPS OVH (141.94.42.172)
- **Reverse proxy** : Traefik avec HTTPS/Let's Encrypt
- **URLs prod** :
  - Frontend : https://app.iliacloud.com
  - API : https://api.iliacloud.com

## Accès VPS

```bash
ssh ubuntu@141.94.42.172
```

Le code source est dans `~/iliacloud/` sur le VPS (backend/, frontend/, docker-compose.yml).

## Workflow de déploiement

1. **Modifier le code** localement dans `/home/taaazzz/projects/iliacloud/`
2. **Lancer les tests** :
   ```bash
   cd backend && npx vitest run
   cd frontend && npx vitest run
   ```
3. **Synchroniser les fichiers modifiés** vers le VPS :
   ```bash
   scp fichier_modifie ubuntu@141.94.42.172:~/iliacloud/chemin/vers/fichier
   ```
4. **Rebuild les images Docker** sur le VPS :
   ```bash
   ssh ubuntu@141.94.42.172 "cd ~/iliacloud/backend && docker build -t iliacloud-backend:latest ."
   ssh ubuntu@141.94.42.172 "cd ~/iliacloud/frontend && docker build -t iliacloud-frontend:latest ."
   ```
5. **Redéployer le stack** :
   ```bash
   ssh ubuntu@141.94.42.172 "cd ~/iliacloud && docker stack deploy -c docker-compose.yml iliacloud"
   ```
6. **Forcer le refresh** des services (pour utiliser les nouvelles images) :
   ```bash
   ssh ubuntu@141.94.42.172 "docker service update --force iliacloud_frontend && docker service update --force iliacloud_backend"
   ```

## Stack Docker Swarm (sur le VPS)

- `iliacloud_frontend` — Nginx servant le build Vite (port 80)
- `iliacloud_backend` — Node.js Express (port 3000)
- `iliacloud_postgres` — PostgreSQL 16-alpine avec volume persistant

## Tests

- **Backend** : Vitest, fichiers dans `backend/tests/`
- **Frontend** : Vitest + React Testing Library, fichiers dans `frontend/tests/`
- Toujours écrire/mettre à jour les tests à chaque modification de code

## Serveurs gérés par l'utilisateur

- VPS OVH principal : 141.94.42.172 (héberge aussi IliaCloud)
- VPS Pologne (temporaire, jusqu'au 20 avril 2026) : 51.75.55.185
- Les hébergements web mutualisés OVH ne sont PAS compatibles (pas de SSH système)

## Conventions

- Langue de l'UI : français
- Langue du code/commentaires : français (JSDoc en français)
- Framework de test : Vitest (backend et frontend)
- CSS : Tailwind avec thème dark (slate/indigo)
- État : React Context (AuthContext, ServerContext)
- Plans : Free / Pro (12EUR/mois) / Business (35EUR/mois) / Enterprise (99EUR/mois)
- API : cookies httpOnly + CSRF + rate limiting
