Statut : Production complète depuis 2026-05-27. Migration Taskori home lab → LORVA terminée.
| Élément | Valeur |
|---|---|
| Provider | OVH — KS-16 Dedicated |
| Localisation | Canada — Beauharnois (BHS) |
| IP publique | 192.99.35.93 |
| CPU | Intel Xeon E3-1245v2 — 4c/8t — 3.4/3.8 GHz |
| RAM | 32 GB DDR3 1333 MHz |
| Stockage | 3×2 To HDD SATA — mdadm RAID-1 (2 actifs + 1 hot spare) — ~1.8 TiB utiles |
| OS (bare metal) | Proxmox 9 |
mdadm RAID-1 (3 disques : 2 actifs + 1 hot spare)
├── ~1.8 TiB utiles
├── Tolérance : 1 disque mort → hot spare reconstruit automatiquement
├── /boot : 1 GiB ext4
├── / : 50 GiB ext4
├── swap : 8 GiB
└── /var/lib/vz : ~1.74 TiB (stockage VMs Proxmox)
Internet → 192.99.35.93 (interface physique Proxmox)
↓ iptables DNAT (Proxmox host — tous ports sauf 8006)
vmbr0 : 10.255.255.1/30 (point-à-point Proxmox ↔ pfSense)
↕
pfSense WAN : 10.255.255.2/30
↓ firewall + NAT + IPsec VPN + Unbound DNS
vmbr2 : trunk VLAN-aware (VLANs 10/20/30/40)
├── VLAN 10 : 10.10.10.0/24 — lorva-infra (GitLab + runners)
├── VLAN 20 : 10.10.20.0/24 — taskori-prod (apps PHP + MariaDB + Redis)
├── VLAN 30 : 10.10.30.0/24 — lorva-public (Traefik + services publics)
└── VLAN 40 : 10.10.40.0/24 — management (Proxmox 10.10.40.10)
| VM | IP | VLAN | RAM | Disk | Rôle principal |
|---|---|---|---|---|---|
| lorva-infra | 10.10.10.10 | 10 | 7 GB | 100 GB | GitLab CE + 9 runners Taskori + runner lorva-shared |
| taskori-prod | 10.10.20.10 | 20 | 11 GB | 150 GB | 9 apps PHP 8.3 + MariaDB 11.4 + Redis |
| lorva-public | 10.10.30.10 | 30 | 7 GB | 150 GB | Traefik v3 + Mailcow + Chatwoot + lorva.dev + Kavita + Wiki.js |
| pfsense | (10.255.255.2) | WAN | 2 GB | 20 GB | Firewall + NAT + VPN + DNS |
Toutes les VMs sont accessibles via VPN IPsec.
ssh [email protected] # lorva-infra
ssh [email protected] # taskori-prod
ssh [email protected] # lorva-public
Proxmox Web UI : https://pve.lorva.dev (accès via VPN)
Traefik v3 tourne sur lorva-public et gère l'ensemble des entrées HTTPS publiques.
*.lorva.dev et domaines individuelsdocker-compose.ymlweb (80, redirect → 443) et websecure (443)Fichier : /opt/traefik/traefik.yml sur lorva-public
certificatesResolvers:
cloudflare:
acme:
email: [email protected]
storage: /acme.json
dnsChallenge:
provider: cloudflare
resolvers:
- "1.1.1.1:53"
labels:
- "traefik.enable=true"
- "traefik.http.routers.monservice.rule=Host(`monservice.lorva.dev`)"
- "traefik.http.routers.monservice.entrypoints=websecure"
- "traefik.http.routers.monservice.tls.certresolver=cloudflare"
docker-compose.yml du servicedocker compose up -dGitLab CE tourne sur lorva-infra (10.10.10.10).
9 runners dédiés, un par dépôt applicatif Taskori :
| Runner | Repo ciblé |
|---|---|
| runner-taskori-api | taskori-api |
| runner-taskori-share | taskori-share |
| runner-taskori-manage | taskori-manage |
| runner-taskori-admin | taskori-admin |
| runner-taskori-auth | taskori-auth |
| runner-taskori-i18n | taskori-i18n |
| runner-taskori-sync | taskori-sync |
| runner-taskori-project | taskori-project |
| runner-taskori-notify | taskori-notify |
Runner générique pour les autres projets (lorva.dev, Wiki.js, etc.).
lorva.dev et taskori.appNote :
mail.btjp.frest le serveur SMTP utilisé pour les emails Taskori côté support (Chatwoot). Il s'agit d'un service externe — ne pas confondre avec l'infrastructure LORVA.
Taskori est déployé sur taskori-prod (10.10.20.10) via Docker Compose.
| Repo | Domaine |
|---|---|
| taskori-api | api.taskori.app |
| taskori-share | share.taskori.app |
| taskori-manage | app.taskori.app |
| taskori-admin | admin.taskori.app |
| taskori-auth | auth.taskori.app |
| taskori-sync | dl.taskori.app |
| taskori-project | project.taskori.app |
Stockées dans les CI/CD variables GitLab (scope : repo concerné). Ne jamais committer de .env contenant des secrets.
mysql -u root -p # depuis taskori-prod uniquement
Les credentials root et par-application sont stockés dans les variables CI GitLab.
Tous les domaines lorva.dev et taskori.app sont gérés sur Cloudflare.
| Domaine | Cible | Notes |
|---|---|---|
*.lorva.dev |
192.99.35.93 | Wildcard → Traefik |
*.taskori.app |
192.99.35.93 | Wildcard → Traefik |
dl.taskori.app |
192.99.35.93 | Taskori Sync downloads |
Le déploiement est entièrement automatisé via les runners GitLab dédiés.
git push origin main
↓
GitLab CI pipeline (runner dédié sur taskori-prod)
↓
Build → Test → Deploy (docker compose pull + up -d)
↓
Service redémarré automatiquement
Important : Ne jamais redémarrer les services manuellement via SSH. Tout passe par le pipeline GitLab.
main (ou la branche configurée)docker-compose.yml avec les labels Traefik appropriés sur lorva-publicdocker compose up -dhttps://pve.lorva.dev (accès via VPN)
Ne pas le faire manuellement. Passer par le pipeline CI/CD (re-run ou nouveau push).
ssh [email protected]
cd /opt/taskori/<repo>
docker compose logs -f --tail=100
DROP DATABASE sur MariaDB taskori-prod — même pour corriger un problème de migrationdocker compose up -dQuand le KS-16 atteindra ses limites (RAM ou stockage), options envisagées :