Documentation de Deploiement - Portfolio avec Nginx
Table des matieres
- Vue d'ensemble
- Prerequis
- Architecture
- Installation
- Configuration Nginx
- Deploiement
- Depannage
- Maintenance
Vue d'ensemble
Ce document decrit le processus de deploiement du portfolio statique sur un serveur utilisant Nginx comme serveur web. Le site est accessible via l'adresse IP 192.168.X.X sur le port 3000.
Informations du projet
- Nom du projet : Mon Portfolio
- Type : Site statique
- Serveur Web : Nginx
- Adresse IP : 192.168.X.X
- Port : 3000
- Chemin source :
/home/cedric/portfolio/_site - Domaine : cedric.littlenuage.com
Prerequis
Avant de commencer, assurez-vous d'avoir :
- Un serveur Linux (Ubuntu/Debian recommande)
- Acces root ou sudo
- Nginx installe
- Les fichiers du site dans
/home/cedric/portfolio/_site
Architecture
Deployment Documentation - Portfolio with Nginx
Table of Contents
- Overview
- Prerequisites
- Architecture
- Installation
- Nginx Configuration
- Deployment
- Troubleshooting
- Maintenance
Overview
This document describes the deployment process of the static portfolio on a server using Nginx as the web server. The site is accessible via the IP address 192.168.X.X on port 3000.
Project Information
- Project Name: My Portfolio
- Type: Static website
- Web Server: Nginx
- IP Address: 192.168.X.X
- Port: 3000
- Source Path:
/home/cedric/portfolio/_site - Domain: cedric.littlenuage.com
Prerequisites
Before starting, make sure you have:
- A Linux server (Ubuntu/Debian recommended)
- Root or sudo access
- Nginx installed
- Site files in
/home/cedric/portfolio/_site
Architecture
+-------------------+
| Client Web |
| 192.168.X.X |
+--------+----------+
| Port 3000
|
+--------v----------+
| Nginx |
| Web Server |
+--------+-----------+
|
+--------v----------+
| HTML Files |
| _site/ |
+--------------------+
Flux de requete :
- L'utilisateur accede a
http://192.168.X.X:3000 - Nginx recoit la requete sur le port 3000
- Nginx sert les fichiers statiques depuis
/home/cedric/portfolio/_site - Le navigateur affiche le site
Installation
Etape 1 : Installer Nginx
Request Flow:
- User accesses
http://192.168.X.X:3000 - Nginx receives the request on port 3000
- Nginx serves static files from
/home/cedric/portfolio/_site - The browser displays the site
Installation
Step 1: Install Nginx
# Update packages / Mettre a jour les paquets
sudo apt update
# Install Nginx / Installer Nginx
sudo apt install nginx -y
# Verify installation / Verifier l'installation
nginx -v
Etape 2 : Verifier le statut de Nginx
Step 2: Verify Nginx Status
# Check that Nginx is active / Verifier que Nginx est actif
sudo systemctl status nginx
# Start Nginx if needed / Demarrer Nginx si necessaire
sudo systemctl start nginx
# Enable Nginx at startup / Activer Nginx au demarrage
sudo systemctl enable nginx
Configuration Nginx
Creer le fichier de configuration
Nginx Configuration
Create the Configuration File
sudo nano /etc/nginx/sites-available/mon-portfolio
Configuration du site
Ajoutez cette configuration :
Site Configuration
Add this configuration:
server {
# Listening port / Port d'ecoute
listen 3000;
# Accepted server names / Noms de serveur acceptes
server_name 192.168.X.X cedric.littlenuage.com www.cedric.littlenuage.com;
# Site root directory / Repertoire racine du site
root /home/cedric/portfolio/_site;
# Default index files / Fichiers index par defaut
index index.html index.htm;
# Request handling / Gestion des requetes
location / {
try_files $uri $uri/ =404;
}
# Logs (optional / optionnel)
access_log /var/log/nginx/portfolio_access.log;
error_log /var/log/nginx/portfolio_error.log;
}
Activer le site
Enable the Site
# Create symbolic link / Creer un lien symbolique
sudo ln -s /etc/nginx/sites-available/mon-portfolio /etc/nginx/sites-enabled/
# Verify configuration / Verifier la configuration
sudo nginx -t
# Reload Nginx / Recharger Nginx
sudo systemctl reload nginx
Deploiement
Etape 1 : Preparer les fichiers du site
Deployment
Step 1: Prepare Site Files
# Create directory if needed / Creer le repertoire si necessaire
mkdir -p /home/cedric/portfolio/_site
# Verify files exist / Verifier que les fichiers existent
ls -la /home/cedric/portfolio/_site
Etape 2 : Configurer les permissions
Step 2: Configure Permissions
# Set proper permissions / Donner les bonnes permissions
sudo chmod -R 755 /home/cedric/portfolio/_site
# Change owner (optional) / Changer le proprietaire (optionnel)
sudo chown -R www-data:www-data /home/cedric/portfolio/_site
Etape 3 : Configurer le pare-feu
Step 3: Configure the Firewall
# Allow port 3000 / Autoriser le port 3000
sudo ufw allow 3000
# Allow Nginx / Autoriser Nginx
sudo ufw allow 'Nginx Full'
# Check status / Verifier le statut
sudo ufw status
Etape 4 : Redemarrer Nginx
Step 4: Restart Nginx
# Test configuration / Tester la configuration
sudo nginx -t
# Restart Nginx / Redemarrer Nginx
sudo systemctl restart nginx
# Verify Nginx is listening on port 3000
sudo netstat -tlnp | grep 3000
Etape 5 : Tester le site
Step 5: Test the Site
# Local test / Test en local
curl http://localhost:3000
# Test with IP / Test avec l'IP
curl http://192.168.X.X:3000
Ouvrez votre navigateur et accedez a : http://192.168.X.X:3000
Depannage
Le site ne s'ouvre pas
1. Verifier que Nginx tourne
Solution : Si inactif, demarrer Nginx avec sudo systemctl start nginx
2. Verifier que le port 3000 est ouvert
Solution : Si le port n'est pas liste, verifier la configuration Nginx
3. Consulter les logs d'erreur
Open your browser and navigate to: http://192.168.X.X:3000
Troubleshooting
The Site Won't Open
1. Verify Nginx is Running
Solution: If inactive, start Nginx with sudo systemctl start nginx
2. Verify Port 3000 is Open
Solution: If the port is not listed, check the Nginx configuration
3. Check Error Logs
# Nginx logs
sudo tail -50 /var/log/nginx/error.log
# Site logs / Logs du site
sudo tail -50 /var/log/nginx/portfolio_error.log
4. Verifier les permissions
Solution : Corriger les permissions avec sudo chmod -R 755 /home/cedric/portfolio/_site
5. Tester la configuration Nginx
Solution : Si erreur de syntaxe, corriger le fichier de configuration
6. Verifier le pare-feu
Solution : Ouvrir le port 3000 avec sudo ufw allow 3000
Erreur 404 Not Found
- Verifier que
index.htmlexiste dans/home/cedric/portfolio/_site - Verifier le chemin
rootdans la configuration Nginx
Erreur 403 Forbidden
Probleme de permissions. Solution :
4. Verify Permissions
Solution: Fix permissions with sudo chmod -R 755 /home/cedric/portfolio/_site
5. Test Nginx Configuration
Solution: If syntax error, fix the configuration file
6. Check the Firewall
Solution: Open port 3000 with sudo ufw allow 3000
404 Not Found Error
- Verify that
index.htmlexists in/home/cedric/portfolio/_site - Check the
rootpath in the Nginx configuration
403 Forbidden Error
Permission issue. Solution:
sudo chmod -R 755 /home/cedric/portfolio/_site
sudo chown -R www-data:www-data /home/cedric/portfolio/_site
Maintenance
Mettre a jour le site
Maintenance
Update the Site
# 1. Place new files in _site / Placer les nouveaux fichiers dans _site
cp -r /path/to/new/files/* /home/cedric/portfolio/_site/
# 2. Verify permissions / Verifier les permissions
sudo chmod -R 755 /home/cedric/portfolio/_site
# 3. Reload Nginx (optional for static files) / Recharger Nginx (optionnel)
sudo systemctl reload nginx
Commandes utiles
Useful Commands
# Restart Nginx / Redemarrer Nginx
sudo systemctl restart nginx
# Reload configuration without interruption / Recharger sans interruption
sudo systemctl reload nginx
# Stop Nginx / Arreter Nginx
sudo systemctl stop nginx
# View real-time logs / Voir les logs en temps reel
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/portfolio_access.log
# Test configuration / Tester la configuration
sudo nginx -t
# View active connections / Voir les connexions actives
sudo netstat -tlnp | grep nginx
Sauvegardes
Backups
# Backup Nginx configuration / Sauvegarder la configuration Nginx
sudo cp /etc/nginx/sites-available/mon-portfolio /etc/nginx/sites-available/mon-portfolio.bak
# Backup site files / Sauvegarder les fichiers du site
tar -czf portfolio-backup-$(date +%Y%m%d).tar.gz /home/cedric/portfolio/_site
Checklist de deploiement
- Nginx installe et actif
- Fichier de configuration cree dans
/etc/nginx/sites-available/ - Lien symbolique cree dans
/etc/nginx/sites-enabled/ - Configuration Nginx testee (
nginx -t) - Fichiers du site presents dans
/home/cedric/portfolio/_site - Permissions correctes (755)
- Port 3000 ouvert dans le pare-feu
- Nginx redemarre
- Site accessible via
http://192.168.X.X:3000
Notes supplementaires
Pour passer en production sur le port 80
Si vous souhaitez rendre le site accessible sans specifier le port :
Deployment Checklist
- Nginx installed and active
- Configuration file created in
/etc/nginx/sites-available/ - Symbolic link created in
/etc/nginx/sites-enabled/ - Nginx configuration tested (
nginx -t) - Site files present in
/home/cedric/portfolio/_site - Correct permissions (755)
- Port 3000 open in the firewall
- Nginx restarted
- Site accessible via
http://192.168.X.X:3000
Additional Notes
Switch to Production on Port 80
If you want to make the site accessible without specifying the port:
server {
listen 80;
server_name cedric.littlenuage.com www.cedric.littlenuage.com;
root /home/cedric/portfolio/_site;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Ajouter HTTPS avec Let's Encrypt
Add HTTPS with Let's Encrypt
# Install Certbot / Installer Certbot
sudo apt install certbot python3-certbot-nginx
# Obtain an SSL certificate / Obtenir un certificat SSL
sudo certbot --nginx -d cedric.littlenuage.com -d www.cedric.littlenuage.com
Ressources
Derniere mise a jour : 2025-01-01
Auteur : Cedric
Version : 1.0
Resources
Last Updated: 2025-01-01
Author: Cedric
Version: 1.0