mirror of
https://github.com/Ladebeze66/coffreobsidian.git
synced 2025-12-16 21:47:45 +01:00
126 lines
3.7 KiB
Markdown
126 lines
3.7 KiB
Markdown
|
||
# 🚀 Automatiser le lancement de Strapi, Next.js et FastAPI au démarrage de Windows Server 2025
|
||
|
||
## 🎯 Objectif
|
||
|
||
Automatiser le lancement des 3 services suivants au **démarrage du serveur** :
|
||
|
||
| Service | Dossier | Commande |
|
||
|-----------|----------------------------------------|------------------------------------------------------------|
|
||
| **Strapi** | `J:\my-next-site\cmsbackend\` | `npm run develop` |
|
||
| **Next.js** | `J:\my-next-site\` | `npm run dev` |
|
||
| **FastAPI** | `J:\my-next-site\llm-api\` | `uvicorn api:app --host 0.0.0.0 --port 8000` |
|
||
|
||
## ✅ Stratégie recommandée
|
||
|
||
Utiliser un **script PowerShell** lancé via le **Planificateur de tâches Windows** :
|
||
|
||
- Simple à maintenir
|
||
- Exécution dans des fenêtres indépendantes
|
||
- Redémarrage automatique après un redémarrage
|
||
- Pas besoin de créer un service Windows
|
||
|
||
---
|
||
|
||
## 🧰 Étape 1 – Créer le script PowerShell
|
||
|
||
### 📄 Script : `start-my-site.ps1`
|
||
|
||
```powershell
|
||
# Lancer Strapi
|
||
Start-Process powershell -ArgumentList "cd 'J:\my-next-site\cmsbackend'; npm run develop" -WindowStyle Normal
|
||
|
||
# Lancer Next.js
|
||
Start-Process powershell -ArgumentList "cd 'J:\my-next-site'; npm run dev" -WindowStyle Normal
|
||
|
||
# Lancer FastAPI
|
||
Start-Process powershell -ArgumentList "cd 'J:\my-next-site\llm-api'; uvicorn api:app --host 0.0.0.0 --port 8000" -WindowStyle Normal
|
||
```
|
||
|
||
> 💾 Sauvegarder ce script dans un emplacement fixe (ex. : `J:\my-next-site\start-my-site.ps1`)
|
||
|
||
---
|
||
|
||
## 🧰 Étape 2 – Créer une tâche planifiée
|
||
|
||
### 🧭 Ouvrir le planificateur
|
||
|
||
- `Win + R` → `taskschd.msc`
|
||
|
||
### ⚙️ Onglet **Général**
|
||
|
||
- **Nom** : `Lancer mes services web`
|
||
- Coche : `Exécuter avec les autorisations maximales`
|
||
- Choisir un **compte administrateur**
|
||
|
||
### ⚙️ Onglet **Déclencheurs**
|
||
|
||
- **Nouveau**
|
||
- Déclencheur : `Au démarrage`
|
||
- Délai (optionnel) : `30 secondes`
|
||
- Cocher : `Activé`
|
||
|
||
### ⚙️ Onglet **Actions**
|
||
|
||
- **Programme/script** : `powershell.exe`
|
||
- **Ajouter des arguments** :
|
||
```bash
|
||
-ExecutionPolicy Bypass -File "J:\my-next-site\start-my-site.ps1"
|
||
```
|
||
|
||
### ⚙️ Onglet **Conditions**
|
||
|
||
- Décocher : `Démarrer uniquement si l’ordinateur est sur secteur`
|
||
|
||
### ⚙️ Onglet **Paramètres**
|
||
|
||
- Coche :
|
||
- `Autoriser l’exécution de la tâche à la demande`
|
||
- `Redémarrer en cas d’échec`
|
||
- `Réessayer toutes les 1 min`
|
||
- (optionnel) `Arrêter si la tâche dure trop longtemps`
|
||
|
||
---
|
||
|
||
## 🔁 Gestion des plantages
|
||
|
||
Le planificateur peut relancer automatiquement le script si les options sont activées.
|
||
Cependant, pour une meilleure résilience, tu peux envisager :
|
||
|
||
## ⚡️ Bonus : Utiliser `pm2` pour Node.js
|
||
|
||
```bash
|
||
npm install -g pm2
|
||
|
||
# Lancer Strapi
|
||
cd J:\my-next-site\cmsbackend
|
||
pm2 start npm --name strapi -- run develop
|
||
|
||
# Lancer Next.js
|
||
cd J:\my-next-site
|
||
pm2 start npm --name next -- run dev
|
||
|
||
# Sauvegarder et rendre permanent
|
||
pm2 save
|
||
pm2 startup
|
||
```
|
||
|
||
PM2 permet de :
|
||
- Redémarrer automatiquement en cas de crash
|
||
- Avoir des logs
|
||
- Démarrer avec le système
|
||
|
||
---
|
||
|
||
## ✅ Résumé
|
||
|
||
| Élément | Action |
|
||
|--------------|------------------------------------------------------------------------|
|
||
| Script PS1 | `start-my-site.ps1` avec `Start-Process` pour chaque service |
|
||
| Planificateur| Tâche lancée **au démarrage**, en **admin**, avec **PowerShell** |
|
||
| Résilience | Gérée via **planificateur** ou via **PM2** pour Node.js |
|
||
|
||
---
|
||
|
||
> ✉️ Besoin : export `.ps1` prêt à l’emploi ou `.xml` du planificateur ? Demande-moi !
|