Dans le cadre de ma formation, j'ai mis en place un serveur personnel appelé idk, sur lequel j'ai installé et configuré Ubuntu Server 24.10. Ce projet m'a permis de mettre en pratique plusieurs compétences techniques en systèmes et réseaux, tout en gagnant en autonomie sur la gestion d'un environnement serveur complet.
J'ai installé Ubuntu Server 24.10 sur un ancien PC que j'utilise comme serveur. J'ai configuré l'accès SSH, installé Nginx comme serveur web, PostgreSQL pour la gestion de base de données, et Docker pour l'exécution de services en conteneurs. J'ai également appris à gérer les utilisateurs et les permissions Linux pour sécuriser l'accès au serveur.
Voici les commandes utilisées pour installer les différents services :
sudo apt update && sudo apt upgradesudo apt install nginxsudo apt install docker.iosudo systemctl start docker && sudo systemctl enable dockerdocker run --name postgres-container -e POSTGRES_PASSWORD=motdepasse -d -p 5432:5432 postgres
Chaque service a ensuite été testé localement via son port ou son interface de gestion pour vérifier son bon fonctionnement.
Après l’installation de Nginx, j’ai configuré un hôte virtuel pour héberger mon site web. J’ai modifié le fichier de configuration
situé dans /etc/nginx/sites-available/ et créé un lien symbolique vers sites-enabled :
sudo nano /etc/nginx/sites-available/moonset.fr
# Exemple de configuration :
server {
listen 80;
server_name moonset.fr;
root /var/www/idk;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
J’ai ensuite activé le site et rechargé Nginx :
sudo ln -s /etc/nginx/sites-available/moonset.fr /etc/nginx/sites-enabled/
sudo systemctl reload nginx
Pour le nom de domaine, j’ai configuré un enregistrement DNS de type A chez mon fournisseur de domaine, pointant vers l’adresse IP publique de mon serveur.
Voilà le site :
Ce fichier me permet de lancer PostgreSQL avec persistance de données en une seule commande.
version: '3.8'
services:
postgres:
image: postgres:17
container_name: postgres-container
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: [mot de passe normalement]
POSTGRES_DB: db_video
ports:
- "5432:5432"
volumes:
- ./postgres-data:/var/lib/postgresql/data
Commande pour le lancer : docker-compose up -d docker-compose down
Voici un exemple de script que j'ai rédigé pour mettre à jour les services automatiquement :
#!/bin/bash
echo "Mise à jour de la liste des paquets..."
sudo apt update
echo "Mise à niveau des paquets..."
sudo apt upgrade -y
echo "Nettoyage des paquets inutiles..."
sudo apt autoremove -y
echo "Mise à jour terminée."
Ce projet m'a permis de mieux comprendre le fonctionnement d'un système Linux, de me familiariser avec Docker, et de devenir plus autonome dans l'administration système. J'ai également pris conscience de l'importance de la sécurité et de la gestion des permissions.
Points forts : Autonomie, installation fonctionnelle, bonne compréhension de Docker
Difficultés : Problèmes de permissions avec PostgreSQL, réseau Wi-Fi instable
Axes d'amélioration : Approfondir les réseaux, scripting plus avancé, sécurisation du serveur