first_commit
This commit is contained in:
153
GTA_P_V2/setup-complete.ps1
Normal file
153
GTA_P_V2/setup-complete.ps1
Normal file
@@ -0,0 +1,153 @@
|
||||
Write-Host "=== Configuration complète du projet GTA ===" -ForegroundColor Cyan
|
||||
|
||||
# 1. Créer la structure
|
||||
Write-Host "`n1. Création de la structure..." -ForegroundColor Yellow
|
||||
$dirs = @(
|
||||
"C:\GTA\project\public\backend",
|
||||
"C:\GTA\project\public\backend\uploads",
|
||||
|
||||
"C:\GTA\project\src"
|
||||
)
|
||||
|
||||
foreach ($dir in $dirs) {
|
||||
if (!(Test-Path $dir)) {
|
||||
New-Item -Path $dir -ItemType Directory -Force | Out-Null
|
||||
Write-Host " ✓ Créé: $dir" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
# 2. Backend package.json
|
||||
Write-Host "`n2. Création de package.json..." -ForegroundColor Yellow
|
||||
$backendPackage = @"
|
||||
{
|
||||
"name": "gta-backend",
|
||||
"version": "1.0.0",
|
||||
"description": "GTA Backend API",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
"start": "node server.js",
|
||||
"dev": "nodemon server.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"express": "^4.18.2",
|
||||
"mysql2": "^3.6.5",
|
||||
"cors": "^2.8.5",
|
||||
"dotenv": "^16.3.1",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"@microsoft/microsoft-graph-client": "^3.0.7",
|
||||
"@azure/identity": "^4.0.0",
|
||||
"body-parser": "^1.20.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
}
|
||||
}
|
||||
"@
|
||||
|
||||
Set-Content -Path "C:\GTA\project\backend\package.json" -Value $backendPackage
|
||||
Write-Host " ✓ package.json créé" -ForegroundColor Green
|
||||
|
||||
# 3. Backend .env
|
||||
Write-Host "`n3. Création de .env..." -ForegroundColor Yellow
|
||||
$envContent = @"
|
||||
DB_HOST=mysql
|
||||
DB_USER=wpuser
|
||||
DB_PASSWORD=-2b/)ru5/Bi8P[7_
|
||||
DB_NAME=DemandeConge
|
||||
PORT=3000
|
||||
NODE_ENV=production
|
||||
AZURE_TENANT_ID=9840a2a0-6ae1-4688-b03d-d2ec291be0f9
|
||||
AZURE_CLIENT_ID=4bb4cc24-bac3-427c-b02c-5d14fc67b561
|
||||
AZURE_CLIENT_SECRET=gvf8Q~545Bafn8yYsgjW~QG_P1lpzaRe6gJNgb2t
|
||||
AZURE_GROUP_ID=c1ea877c-6bca-4f47-bfad-f223640813a0
|
||||
EMAIL_FROM=gtanoreply@ensup.eu
|
||||
UPLOAD_DIR=./uploads
|
||||
MAX_FILE_SIZE=5242880
|
||||
"@
|
||||
|
||||
Set-Content -Path "C:\GTA\project\backend\.env" -Value $envContent
|
||||
Write-Host " ✓ .env créé" -ForegroundColor Green
|
||||
|
||||
# 4. Backend server.js
|
||||
Write-Host "`n4. Création de server.js..." -ForegroundColor Yellow
|
||||
$serverJs = @"
|
||||
require('dotenv').config();
|
||||
const express = require('express');
|
||||
const cors = require('cors');
|
||||
|
||||
const app = express();
|
||||
const PORT = process.env.PORT || 3000;
|
||||
|
||||
app.use(cors());
|
||||
app.use(express.json());
|
||||
|
||||
app.get('/health', (req, res) => {
|
||||
res.json({
|
||||
status: 'ok',
|
||||
timestamp: new Date().toISOString(),
|
||||
env: {
|
||||
dbHost: process.env.DB_HOST,
|
||||
dbName: process.env.DB_NAME
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
app.get('/api/test', (req, res) => {
|
||||
res.json({ message: 'Backend GTA opérationnel!' });
|
||||
});
|
||||
|
||||
app.listen(PORT, '0.0.0.0', () => {
|
||||
console.log(\`✓ Serveur démarré sur le port \${PORT}\`);
|
||||
});
|
||||
"@
|
||||
|
||||
Set-Content -Path "C:\GTA\project\backend\server.js" -Value $serverJs
|
||||
Write-Host " ✓ server.js créé" -ForegroundColor Green
|
||||
|
||||
# 5. Backend Dockerfile
|
||||
Write-Host "`n5. Création de Dockerfile..." -ForegroundColor Yellow
|
||||
$dockerfile = @"
|
||||
FROM node:18-alpine AS base
|
||||
|
||||
RUN apk add --no-cache curl mysql-client
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
|
||||
RUN if [ -f package-lock.json ]; then \
|
||||
npm ci --omit=dev; \
|
||||
else \
|
||||
npm install --production; \
|
||||
fi && npm cache clean --force
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN mkdir -p /app/uploads && chmod 755 /app/uploads
|
||||
|
||||
RUN addgroup -g 1001 -S nodejs && \
|
||||
adduser -S nodejs -u 1001 && \
|
||||
chown -R nodejs:nodejs /app
|
||||
|
||||
USER nodejs
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
|
||||
CMD curl -f http://localhost:3000/health || exit 1
|
||||
|
||||
CMD ["node", "server.js"]
|
||||
"@
|
||||
|
||||
Set-Content -Path "C:\GTA\project\backend\DockerfileGTA.backend" -Value $dockerfile
|
||||
Write-Host " ✓ Dockerfile créé" -ForegroundColor Green
|
||||
|
||||
# 6. Afficher le résumé
|
||||
Write-Host "`n=== Configuration terminée ===" -ForegroundColor Green
|
||||
Write-Host "`nFichiers créés:" -ForegroundColor Cyan
|
||||
Get-ChildItem C:\GTA\project\public\Backend | Select-Object Name, Length
|
||||
|
||||
Write-Host "`n=== Prochaines étapes ===" -ForegroundColor Yellow
|
||||
Write-Host "1. cd C:\GTA" -ForegroundColor White
|
||||
Write-Host "2. docker-compose up --build -d" -ForegroundColor White
|
||||
Write-Host "3. docker-compose logs -f backend" -ForegroundColor White
|
||||
Reference in New Issue
Block a user