ssh utilisateur@adresse_ip_du_serveur
sudo apt update && sudo apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
npm -v
sudo npm install -g pm2
scp -r /chemin/local/projet utilisateur@adresse_ip_du_serveur:/chemin/destination/
git clone https://votre-depot-git.com/projet.git
cd /chemin/destination/projet
nano .env
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/database
JWT_SECRET=votre_secret_jwt
PORT=3000
NODE_ENV=production
npm install --production
npm install --only=dev
npx tsc
ls dist
nano ecosystem.config.js
module.exports = {
apps: [{
name: 'api-app',
script: 'dist/index.js',
instances: 'max',
exec_mode: 'cluster',
env: {
NODE_ENV: 'production',
}
}]
};
pm2 start ecosystem.config.js
pm2 startup
pm2 save
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/mon-app
server {
listen 80;
server_name votre_domaine.com www.votre_domaine.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
sudo ln -s /etc/nginx/sites-available/mon-app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d votre_domaine.com -d www.votre_domaine.com
sudo certbot renew --dry-run
http://votre_domaine.com
(ou https://
si
vous avez configuré SSL)
/api-docs
).
pm2 logs api-app
"type": "module"
),
ce qui nécessite la compatibilité avec Node.js v12+.
npx tsc && pm2 restart api-app
Pour les mises à jour futures, vous pouvez créer un script de déploiement simple qui automatise ces étapes (pull des modifications Git, compilation, redémarrage de l'application).