VPS Linux : les commandes essentielles pour débuter
Un VPS Linux BoxToPlay est une machine virtuelle distante qui fonctionne en permanence sur notre infrastructure. Contrairement à un PC Windows classique, il est généralement livré sans bureau graphique. Vous le pilotez depuis votre propre ordinateur avec un terminal et vous y installez les logiciels qui feront fonctionner votre site, votre bot, votre serveur de jeu ou une autre application.
Ce guide BoxToPlay ne suppose aucune connaissance de Linux. Chaque commande est expliquée avant de passer à la suivante et, lorsqu’un équivalent Windows existe, il est indiqué pour vous aider à retrouver vos repères.
À la fin, vous saurez :
- vous connecter au VPS depuis Windows.
- comprendre et saisir une commande Linux.
- installer et mettre à jour des logiciels.
- créer, modifier, transférer et décompresser des fichiers.
- comprendre les utilisateurs et les permissions.
- lancer une application comme un service.
- consulter les performances et les logs.
- ouvrir uniquement les ports nécessaires.
- préparer une sauvegarde.
Les exemples utilisent Debian ou Ubuntu, l’adresse fictive 203.0.113.10, le compte root et des chemins comme /opt/mon-service. Remplacez toujours ces valeurs par les informations de votre propre serveur.
Les blocs marqués bash se saisissent dans le terminal SSH du VPS, donc dans PuTTY, Termix ou un autre client SSH déjà connecté. Les blocs marqués powershell se saisissent sur votre PC Windows.
Si vous débutez, avancez dans cet ordre :
- Ouvrir une connexion SSH depuis Windows.
- Vérifier le compte connecté et la version Linux.
- Mettre à jour le système.
- Comprendre
root,sudoet la création éventuelle d’un utilisateur. - Apprendre à naviguer, copier et modifier des fichiers.
- Installer les outils utiles.
- Lancer votre application comme service, puis vérifier les logs, le pare-feu et les sauvegardes.
Passer de Windows à un VPS Linux : les repères qui changent
Sur votre PC Windows, vous utilisez généralement des fenêtres, des menus, l’Explorateur de fichiers, le Gestionnaire des tâches et des installateurs graphiques. Un VPS Linux minimal se pilote surtout à distance en ligne de commande, ce qui économise de la mémoire et reste pratique avec une connexion lente. L’affichage change, mais la plupart des actions ont un équivalent familier sous Windows.
| Sous Windows | Sur un VPS Linux |
|---|---|
| Bureau à distance | Connexion SSH |
| Explorateur de fichiers | ls, cd, cp, mv ou client SFTP |
Disques C:\ et D:\ |
Arborescence unique commençant par / |
Antislash \ dans les chemins |
Slash / dans les chemins |
| Exécuter en tant qu’administrateur et contrôle UAC | Commande sudo ou compte root |
| Bloc-notes | Éditeur nano ou vim |
| Gestionnaire des tâches | htop, ps, free et df |
| Console Services | systemctl |
| Observateur d’événements | journalctl et fichiers de logs |
Windows Update ou winget |
Gestionnaire de paquets apt |
| Pare-feu Windows Defender | ufw, nftables ou iptables |
Linux distingue généralement les majuscules et les minuscules. Config.yml, config.yml et CONFIG.yml peuvent donc représenter trois fichiers différents.
Il n’existe pas non plus de lettre de lecteur. Le caractère / représente le sommet de toute l’arborescence, un peu comme la racine d’un disque Windows. Les dossiers /home, /opt, /etc et /var se trouvent tous sous cette même racine. Nous détaillons ces dossiers un peu plus loin, avec leur rôle concret pour héberger une application.
Quel logiciel utiliser depuis Windows ?
Vous n’avez pas besoin d’installer un bureau graphique sur le VPS. Le logiciel de connexion fonctionne sur votre ordinateur Windows et envoie vos commandes au serveur grâce au protocole SSH.
SSH signifie « Secure Shell ». Il crée une connexion chiffrée vers le terminal du VPS. On peut le rapprocher du Bureau à distance sous Windows, mais SSH affiche principalement du texte au lieu d’un bureau complet.
Pour suivre ce guide, il vous faut deux capacités : ouvrir le terminal SSH du VPS et transférer des fichiers en SFTP. Termix regroupe ces deux usages dans une seule application. PuTTY avec WinSCP reste le duo classique si vous préférez séparer le terminal et la gestion des fichiers.
PuTTY : une fenêtre SSH avec des sessions enregistrées
PuTTY convient si vous préférez une application dédiée au terminal SSH. Vous renseignez l’adresse du VPS et son port SSH, puis vous pouvez enregistrer cette connexion.
Téléchargez PuTTY depuis son site officiel.
PuTTY vous servira à ouvrir le terminal du VPS. Une fois connecté, les commandes Linux saisies dans cette fenêtre restent les mêmes que dans ce guide.
WinSCP : l’équivalent visuel de l’Explorateur de fichiers
WinSCP affiche les fichiers du PC d’un côté et ceux du VPS de l’autre. Il se rapproche donc de l’Explorateur Windows.
Choisissez le protocole SFTP. SFTP signifie « SSH File Transfer Protocol » : les fichiers passent dans la connexion SSH chiffrée. Il n’est pas nécessaire d’installer un serveur FTP supplémentaire.
WinSCP est pratique si vous avez choisi PuTTY pour le terminal et que vous voulez un outil séparé pour envoyer une archive, récupérer une sauvegarde ou modifier un petit fichier.
Termix : SSH et fichiers dans une seule interface
Termix réunit notamment un terminal SSH, un gestionnaire de fichiers distant compatible SFTP, des tunnels, des statistiques et une organisation des connexions.
Termix devient donc le choix à recommander en premier si vous voulez tout faire au même endroit : ouvrir le terminal, transférer des fichiers et retrouver vos connexions. PuTTY avec WinSCP reste une alternative classique si vous préférez deux outils séparés, très connus et légers.
Avant de commencer : comment lire une commande Linux
Une commande se compose généralement de trois parties :
commande option argument
- La commande désigne le programme à exécuter, par exemple
ls. - Une option modifie son comportement. Elle commence souvent par
-ou--, comme-hou--help. - Un argument indique l’élément ciblé, par exemple le chemin
/opt/mon-service.
Dans la commande suivante :
ls -lah /opt
lsdemande d’afficher le contenu d’un dossier.-ldemande une liste détaillée.-aaffiche aussi les fichiers cachés.-haffiche les tailles dans un format lisible, comme12Kou4G./optest le dossier à consulter.
Plusieurs options courtes peuvent être regroupées : -lah signifie ici -l -a -h.
Quelques symboles reviendront souvent :
~représente votre dossier personnel, commeC:\Users\VotreNomsous Windows.$USERest une variable qui contient le nom de l’utilisateur connecté, comme$env:USERNAMEdans PowerShell.*est un caractère générique qui représente plusieurs noms.|transmet la sortie d’une commande à la commande suivante, comme le pipeline|de PowerShell.Ctrl+Cinterrompt généralement une commande en cours sans fermer la session SSH.
Repère Windows : une commande Linux joue le même rôle qu’une commande PowerShell. Les noms et les chemins changent, mais la logique « programme + options + cible » reste la même.
Pour ouvrir l’aide intégrée d’une commande :
man ls
ls --help
man lsouvre le manuel complet dels. Utilisez les flèches pour naviguer etqpour quitter.ls --helpaffiche une aide plus courte directement dans le terminal.
Préparer les informations de connexion
Après la livraison d’un VPS BoxToPlay, vous retrouvez généralement dans votre espace client :
- une adresse IPv4 ou un nom d’hôte.
- l’utilisateur SSH initial
root. - un mot de passe initial ou une clé SSH.
- un port SSH, généralement
22.
Le compte root est le super-administrateur de Linux. Chez BoxToPlay, c’est le compte normal de première administration du VPS. Il peut modifier tout le système, comme un compte Administrateur Windows, mais sans les mêmes fenêtres de confirmation. Une erreur saisie en root peut donc avoir des conséquences immédiates.
Conservez ces informations dans un gestionnaire de mots de passe. Ne placez jamais une clé privée dans une archive envoyée au serveur, un dossier partagé ou un dépôt Git.
Si SSH ne répond plus, la console de secours BoxToPlay joue le rôle d’un écran directement branché au VPS. Elle permet de corriger un pare-feu, une mauvaise configuration réseau ou une erreur qui bloque l’accès SSH.
Se connecter pour la première fois avec votre client SSH
Ouvrez le client SSH choisi, par exemple PuTTY ou Termix, puis créez une nouvelle connexion. Renseignez les informations affichées dans votre espace client BoxToPlay :
- Hôte ou adresse :
203.0.113.10. - Port :
22ou le port SSH indiqué. - Protocole :
SSH. - Utilisateur :
root. - Authentification : mot de passe initial ou clé privée.
Dans PuTTY, saisissez l’adresse dans Host Name, vérifiez Port, gardez le type SSH, puis enregistrez la session si vous voulez la retrouver plus tard.
Dans Termix, créez un serveur ou une connexion, puis indiquez l’hôte, le port, l’utilisateur et le mode d’authentification.
Dans WinSCP, choisissez SFTP, indiquez les mêmes informations, puis connectez-vous pour gérer les fichiers. WinSCP ne remplace pas complètement un terminal : gardez PuTTY ou Termix pour saisir les commandes d’administration.
Lors de la première connexion, votre outil affiche l’empreinte de la machine. Cette empreinte est l’identité cryptographique du serveur. Comparez-la avec les informations affichées côté BoxToPlay lorsqu’elles sont disponibles, puis acceptez-la uniquement si l’adresse ciblée est correcte.
Le mot de passe ne s’affiche pas pendant la saisie, pas même sous forme d’astérisques. C’est normal.
Une fois connecté dans le terminal SSH, identifiez votre session avec quatre commandes simples :
whoami
hostname
cat /etc/os-release
uname -r
whoamiaffiche le nom du compte connecté. Cette commande existe également sous Windows.hostnameaffiche le nom de la machine. Elle existe aussi sous Windows.cataffiche le contenu d’un fichier texte. Le fichier/etc/os-releasedécrit la distribution Linux et sa version.uname -raffiche la version du noyau Linux. Le noyau est la partie centrale du système qui communique avec le matériel.
Sur un VPS Ubuntu 24.04 neuf, le retour ressemblait à ceci :
root
vps-demo
PRETTY_NAME="Ubuntu 24.04.4 LTS"
6.8.0-136-generic
La première ligne confirme le compte utilisé. La deuxième indique le nom de la machine. Les deux dernières lignes identifient la distribution Linux et le noyau.
Repère Windows :
cat /etc/os-releaseetuname -rremplissent un rôle proche de la commande PowerShellGet-ComputerInfoou de la fenêtrewinver.
Comprendre sudo, apt et apt-get avant la première mise à jour
Debian et Ubuntu distribuent leurs logiciels sous forme de paquets. Un paquet contient un programme, sa version et les informations nécessaires à son installation. Ces paquets sont téléchargés depuis des dépôts, c’est-à-dire des catalogues officiels configurés sur le serveur.
apt est le gestionnaire de paquets destiné à une utilisation interactive. Il permet de rechercher, installer, mettre à jour ou supprimer des logiciels.
Vous rencontrerez aussi apt-get, avec un tiret. Les deux utilisent les mêmes dépôts et installent les mêmes paquets :
aptprésente un affichage plus lisible pour une personne dans un terminal.apt-getconserve un comportement très stable, souvent préféré dans les scripts automatisés.
Voici deux commandes équivalentes pour mieux reconnaître les deux syntaxes :
Avec apt |
Ancienne syntaxe courante avec apt-get |
Action |
|---|---|---|
apt update |
apt-get update |
Actualiser le catalogue des paquets |
apt install htop |
apt-get install htop |
Installer le paquet htop |
Dans ce guide, nous utilisons apt. Il n’est pas nécessaire d’exécuter ensuite la même action avec apt-get.
sudo signifie « exécuter la prochaine commande avec les droits administrateur ». C’est l’équivalent du clic droit « Exécuter en tant qu’administrateur » et de la confirmation UAC sous Windows.
Repère Windows :
aptse rapproche à la fois de Windows Update pour les mises à jour et dewingetpour l’installation de logiciels. Linux utilise cependant un catalogue commun pour le système et de nombreux programmes.
Sur certaines installations minimales de Debian, sudo peut ne pas encore être installé. Ce cas concerne uniquement une session déjà ouverte avec le compte root. Si le terminal affiche sudo: command not found, utilisez :
apt update
apt install sudo
apt updateactualise le catalogue des paquets sans utilisersudo, puisquerootpossède déjà les droits administrateur.apt install sudotélécharge et installe le paquet qui fournit la commandesudo.
Ne saisissez pas ces deux lignes depuis un compte normal dépourvu de droits administrateur : elles seraient refusées.
Faire les premières mises à jour sans perdre l’accès
Si whoami a affiché root, vous possédez déjà les droits administrateur et pouvez retirer le mot sudo des commandes de cette section. Si vous utilisez un compte d’administration normal, gardez sudo.
Commencez par actualiser le catalogue des logiciels disponibles :
sudo apt update
sudoexécute l’action avec les droits administrateur.aptouvre le gestionnaire de paquets.updatetélécharge la liste actuelle des paquets et de leurs versions.
Cette commande ne met encore aucun logiciel à jour. Elle actualise seulement le catalogue, comme Windows Update lorsqu’il recherche les mises à jour disponibles.
Installez ensuite les mises à jour trouvées :
sudo apt upgrade
upgradecompare les logiciels installés avec le catalogue récupéré parapt update.- APT affiche les paquets concernés, l’espace disque nécessaire et demande une confirmation.
Lisez le résumé, puis saisissez Y et appuyez sur Entrée pour accepter. Dans une commande automatisée, on peut ajouter -y pour répondre automatiquement « oui » :
sudo apt upgrade -y
Pour une première utilisation, la version sans -y est préférable, car elle vous permet de lire ce que le système va modifier.
Repère Windows :
apt updatecorrespond à la recherche des mises à jour.apt upgradecorrespond à leur téléchargement et leur installation.
Régler le fuseau horaire et vérifier l’horloge
Une heure correcte est indispensable pour comprendre les logs, exécuter les tâches planifiées au bon moment et vérifier les certificats HTTPS. Commencez par afficher la configuration actuelle :
timedatectl status
timedatectlconsulte et configure l’heure du système.statusaffiche l’heure locale, l’heure universelle UTC, le fuseau horaire et l’état de la synchronisation réseau.- Aucun
sudon’est nécessaire, car cette commande ne modifie rien.
Exemple de retour sur un VPS Ubuntu 24.04 neuf :
Local time: Sun 2026-08-02 00:59:56 UTC
Universal time: Sun 2026-08-02 00:59:56 UTC
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
La sortie reste souvent en anglais. Ici, System clock synchronized: yes indique que l’horloge est synchronisée, et NTP service: active indique que la synchronisation réseau fonctionne. Selon la version de Debian ou Ubuntu, cette synchronisation peut être gérée par chrony ou systemd-timesyncd. N’installez pas un second service de temps sans avoir identifié celui qui fonctionne déjà.
Affichez les fuseaux disponibles si vous ne connaissez pas leur nom exact :
timedatectl list-timezones
list-timezonesaffiche les identifiants reconnus, par exempleEurope/Paris.- Utilisez les flèches pour parcourir la liste et appuyez sur
qpour quitter si elle s’ouvre dans un lecteur.
Définissez ensuite le fuseau correspondant à votre région :
sudo timedatectl set-timezone Europe/Paris
sudoautorise la modification d’un réglage système.set-timezonechange le fuseau horaire utilisé pour afficher les dates.Europe/Parisest l’identifiant de l’exemple à remplacer si vous travaillez dans une autre région.
Relancez timedatectl status pour vérifier le résultat.
Repère Windows : ces commandes correspondent aux réglages Date et heure de Windows. Le fuseau influence l’affichage des dates, tandis que la synchronisation NTP joue le rôle de l’option « Régler l’heure automatiquement ».
Vérifier les mises à jour automatiques de sécurité
Une vérification manuelle avec apt update et apt upgrade reste utile, mais un serveur connecté en permanence doit aussi recevoir régulièrement ses correctifs de sécurité. Ubuntu installe généralement le paquet unattended-upgrades par défaut. Une image Debian ou une image minimale peut ne pas l’avoir ou ne pas l’avoir activé.
Vérifiez d’abord si le paquet est installé :
apt policy unattended-upgrades
apt policyaffiche la version installée et la version disponible d’un paquet.unattended-upgradesest le paquet qui peut installer automatiquement les mises à jour autorisées.- La mention
Installed: (none)signifie que le paquet n’est pas installé.
Vérifiez ensuite les planifications APT connues de systemd :
systemctl list-timers apt-daily.timer apt-daily-upgrade.timer --no-pager
systemctl list-timersaffiche les tâches déclenchées à une heure planifiée.apt-daily.timeractualise périodiquement les informations des paquets.apt-daily-upgrade.timerlance le traitement des mises à jour automatiques.--no-pageraffiche le résultat directement dans le terminal.
Si le paquet est absent et que vous souhaitez activer ce mécanisme sur Debian ou Ubuntu :
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
apt install unattended-upgradesinstalle le mécanisme de mise à jour automatique.dpkg-reconfigurerouvre l’assistant de configuration du paquet déjà installé.- Répondez oui à la proposition d’activer les mises à jour automatiques de sécurité.
Ce mécanisme ne met pas automatiquement à jour toutes les applications téléchargées manuellement ni tous les dépôts ajoutés par un tiers. Continuez à surveiller votre service, ses sauvegardes et ses propres annonces de sécurité.
Certaines mises à jour du noyau ou de composants centraux demandent un redémarrage. Ne redémarrez pas au milieu d’une opération : vérifiez vos sauvegardes, prévoyez l’interruption puis utilisez, uniquement lorsqu’un redémarrage est demandé :
sudo reboot
sudodemande les droits administrateur.rebootferme les services puis redémarre le VPS.- La connexion SSH se coupe immédiatement et doit redevenir disponible après le démarrage.
Repère Windows :
unattended-upgradesjoue un rôle proche de l’installation automatique des mises à jour de sécurité par Windows Update.sudo rebootcorrespond à Redémarrer, pas à Arrêter.
Créer un nouvel utilisateur Linux (optionnel)
Sur un VPS BoxToPlay, l’administration se fait généralement avec le compte root. Créer un autre utilisateur n’est donc pas une étape obligatoire pour débuter. Cette commande est surtout utile si vous voulez séparer un accès, créer un compte pour une autre personne ou comprendre la logique des utilisateurs Linux.
Pour créer un utilisateur simple :
sudo adduser utilisateur
id utilisateur
sudo adduser utilisateurcrée l’utilisateur, son mot de passe et son dossier personnel/home/utilisateuravec les droits administrateur.id utilisateuraffiche l’identifiant, le groupe principal et les groupes de l’utilisateur.
Par défaut, cet utilisateur n’est pas administrateur. Si vous voulez lui permettre d’exécuter des commandes avec sudo, ajoutez-le explicitement au groupe sudo :
sudo usermod -aG sudo utilisateur
id utilisateur
sudo usermodmodifie un utilisateur existant avec les droits administrateur.- L’option
-asignifie « ajouter sans retirer les groupes déjà présents ». - L’option
-G sudoajoute l’utilisateur au groupe nommésudo.
Repère Windows : créer l’utilisateur seul ressemble à un compte local standard. L’ajouter au groupe
sudorevient à lui donner la possibilité d’élever certaines commandes, comme un compte Windows placé dans le groupe Administrateurs.
Si vous testez ce nouveau compte, gardez votre session root ouverte, ouvrez une deuxième connexion avec utilisateur, puis lancez :
sudo whoami
sudoexécute uniquementwhoamiavec les droits administrateur.- La réponse attendue est
root, car la commande a temporairement été exécutée comme super-administrateur.
Gardez toujours la session root ouverte pendant une modification de SSH ou du pare-feu. Elle sert de voie de secours si une nouvelle connexion échoue.
Utiliser une clé SSH depuis Windows
Une clé SSH repose sur deux fichiers :
- la clé privée reste sur votre PC et ne doit jamais être partagée.
- la clé publique est copiée sur le VPS et peut être communiquée sans révéler la clé privée.
Ce mécanisme remplace l’envoi d’un mot de passe à chaque connexion.
Dans PowerShell, créez une clé :
ssh-keygen -t ed25519 -a 100
ssh-keygenest le générateur de clés fourni avec OpenSSH.-t ed25519sélectionne le type de clé Ed25519, moderne et largement pris en charge.-a 100renforce la protection de la clé privée lorsque vous définissez une phrase secrète.
Le chemin proposé est généralement C:\Users\VotreNom\.ssh\id_ed25519. Le fichier sans extension est privé. Le fichier terminé par .pub est public.
Repère Windows : PuTTY propose l’outil graphique PuTTYgen pour accomplir la même opération. Une clé SSH n’est pas l’équivalent exact du mot de passe Windows : elle ressemble davantage à un certificat personnel conservé sur votre ordinateur.
Pour ajouter la clé publique au compte root sans effacer d’autres clés déjà autorisées, vous pouvez utiliser PowerShell :
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | ssh [email protected] "umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys"
Get-Contentlit le fichier public sur Windows.$env:USERPROFILEcontient le chemin de votre profil Windows, par exempleC:\Users\VotreNom.|envoie le contenu de la clé publique à la commande suivante.ssh [email protected]exécute ici une commande distante sur le compteroot.umask 077force la création de fichiers privés pour ce compte.mkdir -p ~/.sshcrée le dossier.sshs’il n’existe pas.cat >> ~/.ssh/authorized_keysajoute la clé à la fin du fichier au lieu de remplacer les clés existantes.
Termix et le client OpenSSH de Windows peuvent utiliser directement la clé privée créée avec ssh-keygen. Pour PuTTY, ouvrez PuTTYgen, choisissez Conversions > Import key, sélectionnez la clé privée OpenSSH, puis enregistrez-la au format .ppk. WinSCP peut également utiliser ce fichier .ppk pour l’authentification.
Repère Windows : le dossier
.sshest caché parce que son nom commence par un point. Il joue un rôle proche du dossier de profil qui conserve les informations d’authentification d’un utilisateur Windows.
Testez ensuite une nouvelle connexion root dans Termix avec la clé OpenSSH, ou dans PuTTY avec le fichier .ppk créé par PuTTYgen. Votre outil peut demander la phrase secrète de la clé, mais il ne doit plus demander le mot de passe du compte Linux.
Ne désactivez pas l’authentification par mot de passe et ne changez pas la configuration SSH avant d’avoir confirmé que la clé fonctionne dans une nouvelle session et que la console de secours BoxToPlay est accessible.
Vous pouvez continuer à administrer le VPS avec root. Si vous avez créé un utilisateur supplémentaire, configurez sa clé SSH séparément dans le fichier ~/.ssh/authorized_keys de ce compte.
Comprendre les dossiers utiles pour l’hébergement
Commencez par explorer sans modifier de fichier :
pwd
ls -lah
cd /opt
ls -lah
cd ~
pwdsignifie « print working directory » et affiche le chemin du dossier actuel. L’équivalent PowerShell estGet-Location.ls -lahaffiche le contenu détaillé, y compris les éléments cachés, avec des tailles lisibles. L’équivalent PowerShell estGet-ChildItem -Force.cd /optdéplace votre terminal dans le dossier/opt. L’équivalent PowerShell estSet-Location.- Le deuxième
ls -lahaffiche le contenu de/opt. cd ~revient dans votre dossier personnel.
Les principaux emplacements sont :
/root: dossier personnel du compteroot, proche deC:\Users\Administrateur./home/utilisateur: dossier personnel d’un utilisateur créé avecadduser, proche deC:\Users\Utilisateur./opt/mon-service: emplacement courant pour une application autonome, proche deC:\Program Files\MonService./etc/mon-service: configuration système, sans équivalent Windows unique./var/lib/mon-service: données persistantes d’une application, proche deC:\ProgramData\MonService./var/log: nombreux journaux du système et des applications, proche de l’Observateur d’événements et des dossiers de logs Windows./var/www: fichiers d’un serveur web classique, proche deC:\inetpub\wwwrootavec IIS./tmp: fichiers temporaires, proche de%TEMP%.
Un chemin commençant par / est absolu : il part de la racine. Un chemin sans / initial est relatif au dossier affiché par pwd.
Créer le dossier d’une application
Créez un emplacement dans /opt :
sudo mkdir -p /opt/mon-service
sudo chown "$USER":"$(id -gn)" /opt/mon-service
cd /opt/mon-service
pwd
mkdircrée un dossier. Son équivalent PowerShell estNew-Item -ItemType Directory.-pcrée aussi les dossiers parents manquants et ne signale pas d’erreur si le dossier existe déjà.sudoest nécessaire car un utilisateur normal ne peut pas écrire directement dans/opt.chownchange le propriétaire du dossier."$USER":"$(id -gn)"signifie « l’utilisateur connecté et son groupe principal ».cdentre dans le nouveau dossier.pwdconfirme que le terminal se trouve bien au bon endroit.
Repère Windows :
chownse rapproche du changement de propriétaire dans l’onglet Sécurité des propriétés d’un dossier.
Créer, copier, renommer et supprimer des fichiers
Exécutez ces commandes une ligne après l’autre :
mkdir -p config sauvegardes
touch config/config.yml
cp config/config.yml config/config.yml.bak
mv config/config.yml.bak sauvegardes/config.yml.bak
ls -lah config sauvegardes
mkdir -p config sauvegardescrée deux sous-dossiers. PowerShell utiliseraitNew-Item -ItemType Directory.touch config/config.ymlcrée un fichier vide s’il n’existe pas. PowerShell peut utiliserNew-Item -ItemType File.cp source destinationcopie un fichier. L’équivalent PowerShell estCopy-Item.mv source destinationdéplace ou renomme un fichier. L’équivalent PowerShell estMove-Item.ls -lah config sauvegardesaffiche le contenu des deux dossiers pour vérifier le résultat.
Pour supprimer le fichier de sauvegarde :
rm sauvegardes/config.yml.bak
rmsupprime le fichier indiqué.- L’équivalent PowerShell est
Remove-Item.
Une suppression avec rm ne passe généralement pas par une corbeille. Vérifiez toujours le chemin avant d’appuyer sur Entrée, surtout avec sudo, l’option récursive -r ou le caractère générique *.
Lire et modifier un fichier
Pour afficher entièrement un fichier court :
cat config/config.yml
catécrit le contenu dans le terminal.- L’équivalent PowerShell est
Get-Content. catne permet pas de modifier le fichier.
Pour parcourir un fichier long page par page :
less config/config.yml
lessouvre un lecteur dans le terminal.- Les flèches et les touches Page précédente/Page suivante permettent de se déplacer.
- Appuyez sur
qpour quitter. - Sous Windows, la commande
morefournit une lecture paginée plus simple.
Si Nano n’est pas installé sur l’image de départ, installez-le d’abord :
sudo apt install nano
apt installinstalle le paquet demandé.nanoest le paquet qui fournit l’éditeur utilisé dans les exemples suivants.
Pour modifier le fichier :
nano config/config.yml
nanoest un éditeur de texte dans le terminal, proche du Bloc-notes.Ctrl+Oenregistre.Entréeconfirme le nom du fichier.Ctrl+Xferme l’éditeur.Ctrl+Wrecherche un texte.
Pour un fichier système appartenant à root, créez d’abord une copie puis ouvrez l’original avec les droits administrateur :
sudo cp /etc/mon-service/config.yml /etc/mon-service/config.yml.bak
sudo nano /etc/mon-service/config.yml
- La première ligne utilise
cpavecsudopour créer une copie.bak. - La seconde ouvre le fichier original dans Nano avec les droits nécessaires.
Repère Windows : cela revient à copier un fichier de configuration puis à ouvrir le Bloc-notes en tant qu’administrateur.
Envoyer une archive depuis Windows
Avec WinSCP, créez une connexion SFTP vers l’adresse du VPS, son port SSH et le compte root. Envoyez d’abord l’archive dans /root, le dossier personnel de root, plutôt que directement dans un chemin système final.
La même opération peut être effectuée dans PowerShell :
scp "$env:USERPROFILE\Downloads\mon-service.zip" [email protected]:/root/
scpcopie le fichier dans la connexion SSH.- Le premier chemin est le fichier présent dans le dossier Téléchargements de Windows.
- La partie située après l’espace est la destination Linux.
- Le
/final indique que l’on conserve le nommon-service.zip.
Pour envoyer un dossier complet :
scp -r "$env:USERPROFILE\Documents\mon-service" [email protected]:/root/
-rsignifie « récursif » :scpcopie le dossier et tout son contenu.
Pour télécharger une sauvegarde du VPS vers Windows, inversez la source et la destination :
scp [email protected]:/root/mon-service-backup.tar.gz "$env:USERPROFILE\Downloads\"
- La source distante apparaît maintenant en premier.
- Le dossier Téléchargements de Windows devient la destination.
Repère Windows : WinSCP fournit le même résultat par glisser-déposer, comme entre deux fenêtres de l’Explorateur.
Vous pouvez aussi ouvrir un mode de transfert interactif :
sftp [email protected]
sftpouvre une session dédiée aux fichiers.put fichier.zipenvoie un fichier.get fichier.ziptélécharge un fichier.lsaffiche les fichiers distants.exitferme la session SFTP.
Comprendre et extraire les archives
Un fichier ZIP ou tar.gz regroupe plusieurs fichiers. ZIP est courant sous Windows. Sous Linux, tar.gz est également très répandu : tar regroupe les fichiers et gzip les compresse.
Installez les outils ZIP :
sudo apt update
sudo apt install unzip zip
apt updateactualise le catalogue, comme expliqué précédemment.apt installdemande l’installation des paquets qui suivent.unzippermet d’extraire et d’inspecter les ZIP.zippermet de créer un ZIP.- APT affiche les dépendances et demande confirmation avant l’installation.
Repère Windows : PowerShell propose
Expand-ArchiveetCompress-Archive. L’application 7-Zip remplit également ce rôle avec une interface graphique.
Avant d’extraire une archive, affichez son contenu :
unzip -l ~/mon-service.zip
tar -tzf ~/mon-service.tar.gz | head -n 30
unzip -lliste le contenu du ZIP sans l’extraire.- Dans
tar -tzf,tsignifie « lister »,zindique une compression gzip etfannonce le nom du fichier. |envoie cette liste à la commande suivante.head -n 30limite l’affichage aux 30 premières lignes.
Exemple de retour avec une archive tar.gz simple :
mon-service/
mon-service/config/
mon-service/config/config.yml
Si vous voyez des chemins absolus comme /etc/..., des chemins qui remontent avec ../ ou des fichiers inattendus, arrêtez-vous avant l’extraction et vérifiez la source de l’archive.
Créez un dossier isolé et extrayez le ZIP :
mkdir -p ~/imports
unzip ~/mon-service.zip -d ~/imports
ls -la ~/imports/mon-service
mkdir -pcrée le dossier de destination.unzipouvre l’archive.-dindique le dossier dans lequel les fichiers doivent être placés.ls -lapermet de vérifier le dossier extrait avant de le copier vers l’emplacement final.
Pour un fichier tar.gz :
mkdir -p ~/imports
tar -xzf ~/mon-service.tar.gz -C ~/imports
ls -la ~/imports/mon-service
- Dans
-xzf,xsignifie « extraire »,zindique gzip etfannonce le fichier source. -Cdemande àtarde se placer dans le dossier indiqué avant l’extraction.- Adaptez
~/imports/mon-servicesi l’archive contient un autre dossier racine.
Pour une archive tar.xz, utilisez :
tar -xJf ~/mon-service.tar.xz -C ~/imports
Jremplacezcar la compression utilisée est XZ et non gzip.
Après avoir vérifié les fichiers du dossier extrait, copiez son contenu dans le dossier final :
sudo cp -a ~/imports/mon-service/. /opt/mon-service/
cpcopie les fichiers.-aactive le mode archive : copie récursive tout en conservant au mieux les dates, permissions et liens./.signifie « le contenu de ce dossier » et évite de créer un niveaumon-servicesupplémentaire.sudopermet d’écrire dans/opt.
N’extrayez jamais une archive inconnue directement dans /, /etc ou /opt. Inspectez-la et utilisez d’abord un dossier isolé dans votre espace personnel.
Installer la boîte à outils d’administration
Installez les utilitaires courants :
sudo apt update
sudo apt install nano htop curl wget git unzip zip jq rsync tmux tree ncdu lsof ca-certificates ufw
- La première ligne actualise le catalogue de paquets.
- La seconde demande à APT d’installer tous les paquets listés. APT calcule automatiquement leurs dépendances et demande confirmation.
Chaque paquet répond à un besoin :
nano: éditeur de texte, proche du Bloc-notes.htop: vue interactive des processus, proche du Gestionnaire des tâches.curl: interroge une adresse web ou une API depuis le terminal.wget: télécharge un fichier depuis une URL.git: récupère et met à jour le code d’un projet.unzipetzip: gèrent les archives ZIP. La commandetarest généralement déjà présente sur Debian et Ubuntu, mais vous la retrouverez souvent dans les guides d’installation.jq: lit et filtre du JSON, commeConvertFrom-Jsondans PowerShell.rsync: copie et synchronise efficacement des dossiers, proche derobocopy.tmux: conserve une session terminal même si SSH se déconnecte. Il n’existe pas d’équivalent Windows exact.tree: affiche les dossiers sous forme d’arbre. La commandetreeexiste aussi sous Windows.ncdu: explore l’espace disque, proche de l’affichage Stockage de Windows.lsof: indique quels processus utilisent des fichiers ou des ports, proche du Moniteur de ressources.ca-certificates: fournit les autorités de certification utilisées pour vérifier les connexions HTTPS.ufw: simplifie la gestion du pare-feu Linux.
Installez ensuite uniquement le runtime demandé par votre application, par exemple Java, Node.js, Python, PHP ou Docker. Un runtime est le moteur nécessaire à l’exécution du programme.
Si votre service utilise Docker ou Docker Compose, suivez notre guide Installer Docker sur Linux.
Comprendre les propriétaires et les permissions
Linux ne donne pas les mêmes droits à tout le monde. Chaque fichier et chaque dossier possède un propriétaire, un groupe, puis des droits pour le propriétaire, le groupe et les autres utilisateurs. C’est ce qui empêche un service, un script ou un utilisateur local de lire ou modifier des fichiers qui ne le concernent pas.
Affichez les droits d’un dossier et d’un fichier :
ls -ld /opt/mon-service
ls -l /opt/mon-service/config/config.yml
Exemple de sortie :
drwxr-x--- 3 monservice monservice 4096 Aug 2 02:34 /opt/mon-service
-rw-r----- 1 monservice monservice 17 Aug 2 02:34 /opt/mon-service/config/config.yml
Le début de chaque ligne indique le type et les droits :
dindique un dossier,-indique un fichier.rsignifie lecture.wsignifie écriture.xsignifie exécution pour un fichier, ou accès à l’intérieur d’un dossier.- Les trois premiers droits concernent le propriétaire.
- Les trois suivants concernent le groupe.
- Les trois derniers concernent tous les autres utilisateurs.
Dans l’exemple, le dossier /opt/mon-service peut être lu et traversé par le propriétaire et le groupe, mais pas par les autres utilisateurs. Le fichier config.yml peut être lu et modifié par son propriétaire, lu par le groupe, et reste invisible pour les autres.
Créez un compte réservé à l’application, puis attribuez-lui tout le dossier :
sudo useradd --system --user-group --home-dir /opt/mon-service --shell /usr/sbin/nologin monservice
sudo chown -R monservice:monservice /opt/mon-service
useraddcrée ici le comptemonservice.--systemcrée un compte technique plutôt qu’un utilisateur humain.--user-groupcrée aussi un groupemonservice.--home-dirdéfinit le dossier associé au compte.--shell /usr/sbin/nologinempêche une connexion interactive avec ce compte.chown -Rchange récursivement le propriétaire et le groupe de tout le dossier.
Repère Windows : un compte de service Linux ressemble à un compte dédié utilisé par un service Windows.
chownetchmodremplissent le rôle des propriétaires et ACL NTFS visibles dans l’onglet Sécurité.
Protégez un fichier de configuration contenant un secret :
sudo chmod 640 /opt/mon-service/config/config.yml
6donne lecture et écriture au propriétaire.4donne seulement la lecture au groupe.0ne donne aucun accès aux autres.
Pour changer les droits de tout un répertoire déjà rempli, utilisez une commande récursive :
sudo chmod -R u=rwX,g=rX,o= /opt/mon-service
chmod -Rapplique les droits à tout le contenu existant.u=rwXdonne lecture et écriture au propriétaire, avec accès aux dossiers.g=rXdonne lecture et accès aux dossiers au groupe.o=retire tous les droits aux autres utilisateurs.- Le
Xmajuscule ajoute le droit d’exécution seulement aux dossiers et aux fichiers déjà exécutables, ce qui évite de rendre tous les fichiers exécutables par erreur.
Cette commande est utile après l’extraction d’une archive, un transfert SFTP ou une restauration de sauvegarde, quand les fichiers n’ont pas le bon propriétaire ou des droits trop ouverts.
N’utilisez pas chmod -R 777 pour résoudre un problème. 777 autorise tous les utilisateurs à lire, modifier et exécuter les fichiers. Cela masque le vrai problème et affaiblit fortement la sécurité.
Surveiller le CPU, la mémoire et le disque
Ouvrez la vue interactive des processus :
htop
htop affiche notamment le CPU, la mémoire et les processus. Utilisez les flèches pour naviguer et F10 ou q pour quitter.
Repère Windows :
htopest l’équivalent le plus proche du Gestionnaire des tâches.
Pour un diagnostic rapide :
uptime
free -h
df -h
du -sh /opt/mon-service
ps aux --sort=-%mem | head
uptimeaffiche depuis combien de temps le VPS fonctionne et sa charge moyenne.free -haffiche la mémoire vive et le swap avec des unités lisibles.df -haffiche l’espace libre et occupé sur chaque système de fichiers.du -sh /opt/mon-servicecalcule la taille totale du dossier.-srésume et-hrend la taille lisible.ps auxaffiche tous les processus.--sort=-%memplace les processus utilisant le plus de mémoire en premier.| headconserve les premières lignes de cette liste.
Exemple de retour simplifié pour uptime, free -h et df -h / :
00:59:56 up 4:08, 1 user, load average: 0.00, 0.00, 0.00
Mem: 15Gi 554Mi 14Gi
Swap: 7.8Gi 0B 7.8Gi
/dev/sda2 99G 12G 83G 12% /
La charge moyenne proche de 0.00 indique un serveur peu sollicité. La ligne Mem montre la mémoire utilisée et disponible. La ligne montée sur / indique ici que le disque principal est utilisé à 12 %.
Repère Windows : le Gestionnaire des tâches couvre le CPU, la mémoire et les processus. L’application Paramètres > Stockage et l’Explorateur couvrent l’espace disque.
Affichez les ports sur lesquels des programmes attendent des connexions :
sudo ss -tulpn
ssaffiche les connexions et sockets réseau.-tinclut TCP.-uinclut UDP.-lconserve les ports en écoute.-paffiche le processus concerné.-naffiche les numéros de port au lieu de noms de services.sudopermet d’obtenir davantage d’informations sur les processus.
Exemple de lignes utiles :
tcp LISTEN 0 4096 0.0.0.0:22 0.0.0.0:* users:(("sshd"))
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx"))
0.0.0.0:22 signifie que SSH écoute sur toutes les interfaces IPv4. 127.0.0.1:8080 signifierait au contraire que le service écoute seulement depuis le VPS lui-même.
Repère Windows : utilisez le Moniteur de ressources,
netstat -anoouGet-NetTCPConnectiondans PowerShell.
Vérifiez qu’une application web répond localement sur le port 8080 :
curl -I http://127.0.0.1:8080
curlcontacte l’adresse indiquée.-Idemande uniquement les en-têtes HTTP, pas toute la page.127.0.0.1désigne toujours la machine elle-même. On l’appelle aussilocalhost.8080est le port de l’exemple.
Repère Windows :
Test-NetConnection 127.0.0.1 -Port 8080vérifie l’ouverture du port.Invoke-WebRequestpeut interroger la page HTTP.
Tester d’abord 127.0.0.1 permet de distinguer une application qui ne démarre pas d’une application fonctionnelle mais bloquée par le pare-feu.
Faire fonctionner une application comme un service
Une application lancée directement dans le terminal peut s’arrêter lorsque la session SSH se ferme. systemd est le gestionnaire de services utilisé par Debian et Ubuntu. Il peut démarrer l’application automatiquement au démarrage du VPS et la relancer en cas d’échec.
Repère Windows :
systemdetsystemctlcorrespondent à la console Services et à la commandesc.exe.
Dans cet exemple, l’application fournit le script /opt/mon-service/start.sh. Adaptez toujours ce chemin à la documentation du logiciel.
Rendez le script exécutable et attribuez les fichiers au compte de service :
sudo chmod +x /opt/mon-service/start.sh
sudo chown -R monservice:monservice /opt/mon-service
chmod +xajoute le droit d’exécuter le script.chown -Rattribue récursivement l’application au comptemonservice.
Créez le fichier qui décrit le service :
sudo nano /etc/systemd/system/mon-service.service
nanoouvre l’éditeur.sudopermet d’écrire dans le dossier système/etc/systemd/system.- L’extension
.serviceindique à systemd qu’il s’agit d’un service.
Ajoutez :
[Unit]
Description=Mon service hébergé
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=monservice
Group=monservice
WorkingDirectory=/opt/mon-service
ExecStart=/opt/mon-service/start.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Chaque directive a un rôle :
Descriptiondonne un nom lisible au service.Afterattend que le réseau soit considéré comme disponible.Wantsdemande également l’activation de cette cible réseau.Type=simpleindique que le processus lancé reste au premier plan.UseretGroupchoisissent le compte technique.WorkingDirectorydéfinit le dossier de travail.ExecStartindique l’exécutable et ses arguments. Ce n’est pas une ligne shell libre : pour enchaîner plusieurs commandes, utilisercd, charger des variables ou lancernpm start, passez plutôt par un script comme/opt/mon-service/start.sh.Restart=on-failurerelance le programme s’il s’arrête avec une erreur.RestartSec=5attend cinq secondes avant une relance.WantedBy=multi-user.targetpermet l’activation au démarrage normal du VPS.
Enregistrez avec Ctrl+O, confirmez avec Entrée, puis quittez avec Ctrl+X.
Demandez à systemd de relire les fichiers et démarrez le service :
sudo systemctl daemon-reload
sudo systemctl enable --now mon-service
sudo systemctl status mon-service --no-pager
systemctlpilote systemd.daemon-reloadrelit les fichiers.serviceaprès une création ou une modification.enableconfigure le démarrage automatique lors des prochains redémarrages.--nowdemande aussi un démarrage immédiat.statusaffiche l’état actuel et les dernières lignes de log.--no-pageraffiche directement le résultat sans ouvrir le lecteurless.
Consultez les logs en direct :
sudo journalctl -u mon-service -f
journalctllit le journal de systemd.-u mon-servicefiltre les messages du service indiqué.-fsuit les nouveaux messages en temps réel.- Utilisez
Ctrl+Cpour arrêter le suivi.
Repère Windows :
journalctlremplit un rôle proche de l’Observateur d’événements. L’option-fressemble à un journal qui se met à jour en direct.
Les commandes courantes sont :
sudo systemctl restart mon-service
sudo systemctl stop mon-service
sudo systemctl start mon-service
sudo systemctl disable mon-service
restartarrête puis redémarre le service.stopl’arrête.startle démarre.disableretire son démarrage automatique sans forcément arrêter le processus déjà lancé.
Un statut failed n’indique pas la cause. Consultez journalctl pour trouver le fichier manquant, le port occupé ou le problème de permission.
Ouvrir uniquement les ports nécessaires
Un port est une porte logique associée à un service réseau. SSH écoute généralement sur 22, HTTP sur 80 et HTTPS sur 443. Votre application peut utiliser un autre port, comme 8080.
Un programme peut répondre sur 127.0.0.1 tout en restant inaccessible depuis Internet. Il faut alors vérifier son adresse d’écoute, le pare-feu Linux et les règles réseau disponibles côté BoxToPlay.
UFW signifie « Uncomplicated Firewall ». Il fournit des commandes plus simples au-dessus du système de pare-feu Linux.
Commencez par afficher son état :
sudo ufw status
ufwpilote le pare-feu.statusindique s’il est actif et liste ses règles.- Cette commande ne modifie rien.
Repère Windows : UFW correspond à l’interface simplifiée du Pare-feu Windows Defender.
Sur un serveur où UFW n’est pas encore actif, le retour peut simplement être :
Status: inactive
Cela signifie que l’outil est présent, mais que ce pare-feu n’applique pas encore de règles.
Vérifiez que le profil SSH prédéfini existe :
sudo ufw app list
app listaffiche les profils d’applications enregistrés dans UFW.- Vérifiez que
OpenSSHapparaît avant d’utiliser ce nom de profil.
Autorisez SSH avant toute première activation. Pour un site web derrière Nginx ou Apache, ouvrez ensuite les ports publics habituels :
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status numbered
allow OpenSSHajoute la règle prédéfinie qui conserve l’accès SSH d’administration.allow 80/tcpautorise HTTP, souvent utilisé pour la redirection et la validation de certificat.allow 443/tcpautorise HTTPS.status numberedaffiche les règles avec un numéro utile pour les gérer plus tard.
N’ouvrez 8080/tcp que si vous voulez volontairement exposer directement une application qui écoute sur ce port. Pour une application web placée derrière un reverse proxy, gardez plutôt l’application sur 127.0.0.1:8080 et n’ouvrez pas ce port sur Internet.
Si votre port SSH est différent de 22, vérifiez que la règle OpenSSH correspond bien à votre configuration ou autorisez explicitement le port personnalisé avant d’activer UFW.
Si UFW est encore inactif et que vous souhaitez l’utiliser :
sudo ufw enable
sudo ufw status verbose
enableactive le pare-feu et applique les règles préparées.status verboseaffiche un état plus détaillé.
Gardez la session SSH actuelle ouverte et ouvrez immédiatement une deuxième connexion. Si elle fonctionne, la règle SSH est correcte.
Repère Windows : dans le Pare-feu Windows Defender, cette opération correspond à la création de règles de trafic entrant puis à l’activation du profil de pare-feu.
Si l’image système ou la configuration livrée sur le VPS gère déjà le pare-feu avec nftables ou iptables, n’activez pas UFW par-dessus. Consultez d’abord la configuration existante sans la modifier :
sudo nft list ruleset
sudo iptables -S
nft list rulesetaffiche toutes les règles connues de nftables.iptables -Saffiche les règles iptables actuelles sous forme de commandes.- Ces deux commandes sont en lecture seule. Suivez ensuite la méthode de la distribution ou la documentation BoxToPlay liée à ces règles.
Ajouter un nom de domaine, un reverse proxy et HTTPS
Une application web écoute souvent seulement sur 127.0.0.1:8080. Un reverse proxy comme Nginx reçoit les connexions publiques sur 80 et 443, puis les transmet à l’application interne.
Si l’application n’intègre pas déjà une authentification fiable, ne l’exposez pas directement à tout Internet. Ajoutez une protection dédiée, par exemple une authentification Basic Auth dans Nginx, une restriction IP ou un accès privé.
L’ordre habituel est le suivant :
- Créer l’enregistrement DNS du domaine vers l’adresse IP du VPS.
- Garder l’application sur un port local quand c’est possible.
- Configurer Nginx pour le domaine.
- Tester la configuration.
- Obtenir un certificat HTTPS.
Installez Nginx :
sudo apt install nginx
Créez un fichier de site :
sudo nano /etc/nginx/sites-available/exemple.com
Ajoutez une configuration de base, en remplaçant exemple.com et le port interne :
server {
listen 80;
server_name exemple.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
listen 80accepte les connexions HTTP.server_nameindique le domaine concerné.proxy_passtransmet la requête vers l’application locale.- Les en-têtes
X-Real-IP,X-Forwarded-ForetX-Forwarded-Protoaident l’application à connaître l’adresse du visiteur et le protocole d’origine.
Activez le site avec un lien symbolique :
sudo ln -s /etc/nginx/sites-available/exemple.com /etc/nginx/sites-enabled/exemple.com
Testez la configuration avant de recharger Nginx :
sudo nginx -t
Un retour sain ressemble à ceci :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Rechargez seulement après ce succès :
sudo systemctl reload nginx
Pour générer un certificat HTTPS sur Debian ou Ubuntu avec Nginx, installez Certbot puis lancez l’assistant Nginx :
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d exemple.com
python3-certbot-nginxpermet à Certbot de lire et d’adapter la configuration Nginx.certbot --nginxdemande le certificat et peut ajouter automatiquement la configuration HTTPS.- Remplacez
exemple.compar votre domaine réel et suivez les questions affichées.
Repère Windows : IIS peut remplir un rôle comparable de serveur web, reverse proxy et terminaison TLS.
Créer une sauvegarde
Une sauvegarde utile doit couvrir les fichiers de configuration, les données persistantes, les bases de données éventuelles et les secrets nécessaires à une restauration.
L’exemple ci-dessous sauvegarde seulement le dossier /opt/mon-service. Si votre application utilise MySQL, MariaDB, PostgreSQL ou une autre base de données, prévoyez aussi un export dédié de cette base.
Créez une archive datée du dossier de l’application :
backup=~/backups/mon-service-$(date +%F-%H%M).tar.gz
mkdir -p ~/backups
sudo tar -czf "$backup" -C /opt mon-service
sudo chown "$USER":"$(id -gn)" "$backup"
chmod 600 "$backup"
tar -tzf "$backup" | head
backup=...prépare le nom du fichier une seule fois afin de le réutiliser dans les commandes suivantes.mkdir -p ~/backupscrée le dossier de sauvegarde dans votre espace personnel.tar -czfcrée (c) une archive compressée avec gzip (z) dans le fichier (f) indiqué.$(date +%F-%H%M)exécute la commandedateet insère la date et l’heure dans le nom, par exemple2026-07-28-1530.-C /opt mon-servicedemande àtarde se placer dans/optpuis d’archiver le dossiermon-service.chownrend l’archive au compte connecté afin qu’il puisse la télécharger.chmod 600limite la lecture et l’écriture de l’archive à son propriétaire, car une sauvegarde peut contenir des secrets.tar -tzfliste ensuite le contenu pour vérifier que l’archive est lisible.
Exemple de retour :
mon-service/
mon-service/config/
mon-service/config/config.yml
Cette vérification ne prouve pas que toute restauration fonctionnera, mais elle détecte déjà une archive illisible ou vide.
Repère Windows : PowerShell peut créer des ZIP avec
Compress-Archive. L’Horodatage ajouté au nom joue le même rôle qu’un nom de sauvegarde daté.
Pour synchroniser les fichiers sans les compresser :
mkdir -p ~/backups/mon-service
sudo rsync -a /opt/mon-service/ ~/backups/mon-service/
sudo chown -R "$USER":"$(id -gn)" ~/backups/mon-service
- La première ligne crée la destination.
rsync -acopie récursivement en conservant les principales métadonnées.- Le
/final de/opt/mon-service/signifie « copier le contenu du dossier ». chown -Rattribue récursivement la copie à l’utilisateur connecté.
Repère Windows :
rsyncest proche derobocopy, qui sait recopier uniquement les différences.
Téléchargez ensuite les sauvegardes importantes sur un autre système avec WinSCP, SFTP ou scp. Une copie située uniquement sur le même disque disparaît avec ce disque.
Les sauvegardes proposées côté BoxToPlay sont une protection supplémentaire. Elles ne remplacent pas les sauvegardes propres à l’application. Testez régulièrement une restauration.
Entretenir le VPS
Pour une vérification régulière :
sudo apt update
sudo apt upgrade
sudo systemctl --failed
df -h
free -h
apt updaterecherche les versions actuellement disponibles.apt upgradepropose leur installation.systemctl --failedliste les services systemd actuellement en échec.df -hvérifie l’espace disque.free -hvérifie la mémoire.
Repère Windows : cela regroupe le rôle de Windows Update, de la console Services, du Gestionnaire des tâches et de l’affichage Stockage.
Lisez les changements proposés avant une mise à jour importante, puis vérifiez l’état et les logs de vos services.
La méthode universelle pour héberger un service
Quel que soit le logiciel choisi, vous pouvez suivre cet ordre :
- Lire ses prérequis et identifier le runtime, les ports et les dossiers persistants.
- Se connecter en SSH avec le compte
rootBoxToPlay. - Installer uniquement les dépendances nécessaires avec
apt. - Créer un dossier dédié dans
/optou utiliser le chemin recommandé. - Envoyer ou télécharger les fichiers depuis leur source officielle.
- Inspecter puis extraire les archives dans un dossier isolé.
- Créer un compte de service et appliquer les permissions adaptées.
- Placer la configuration et les secrets avec des droits restrictifs.
- Lancer le programme localement et lire ses logs.
- Configurer son démarrage durable avec systemd ou Docker.
- Tester le port sur
127.0.0.1. - Configurer le pare-feu, le DNS, le reverse proxy et HTTPS selon le besoin.
- Préparer une sauvegarde et vérifier une restauration.
Si l’application se prête mieux aux conteneurs, continuez avec notre guide : Installer Docker sur Linux : guide pratique pour bien démarrer.
Votre checklist avant de mettre un service en ligne
Avant de considérer votre VPS prêt, vérifiez que :
- vous comprenez les commandes avant de les exécuter.
- le fuseau horaire est correct et l’horloge est synchronisée.
- votre stratégie de mises à jour automatiques de sécurité est connue.
- vous savez vous connecter avec
rootet, si vous créez un autre utilisateur, vous savez s’il possèdesudo. - votre clé SSH fonctionne dans une deuxième session.
- l’application possède son propre dossier et son propre utilisateur lorsque c’est possible.
- les secrets ne sont pas lisibles par tous les comptes.
- le service redémarre après un reboot.
- les logs sont accessibles avec
journalctl. - le service répond d’abord sur
127.0.0.1. - seuls SSH, HTTP, HTTPS et les ports réellement nécessaires sont ouverts.
- le DNS et HTTPS sont configurés pour une interface publique.
- une sauvegarde existe sur une autre machine.
- vous savez comment restaurer cette sauvegarde.
Vous n’avez pas besoin de connaître tout Linux avant d’héberger votre premier service. En comprenant ce que font SSH, sudo, apt, les chemins, les permissions, systemd, le pare-feu et les logs, vous disposez déjà des bases nécessaires pour suivre la majorité des guides d’installation.
Pour mettre ces étapes en pratique sur Debian ou Ubuntu, vous pouvez configurer un VPS Linux BoxToPlay et avancer une commande à la fois.
