# Mise à jour manuelle de code-server – LXC BASTION

Cette procédure permet de mettre à jour **code-server** installé sous forme de paquet Debian (`.deb`) sur le LXC **BASTION**.

## 1. Informations de l'installation

<table id="bkmrk-%C3%89l%C3%A9ment-valeur-utili"><thead><tr><th>Élément</th><th>Valeur</th></tr></thead><tbody><tr><td>Utilisateur</td><td>`nancre`</td></tr><tr><td>Architecture</td><td>`amd64`</td></tr><tr><td>Installation</td><td>Paquet Debian officiel</td></tr><tr><td>Binaire</td><td>`/usr/bin/code-server`</td></tr><tr><td>Installation</td><td>`/usr/lib/code-server`</td></tr><tr><td>Configuration</td><td>`/home/nancre/.config/code-server/config.yaml`</td></tr><tr><td>Données utilisateur</td><td>`/home/nancre/.local/share/code-server`</td></tr><tr><td>Service systemd</td><td>`code-server@nancre.service`</td></tr><tr><td>Port</td><td>`8080/TCP`</td></tr></tbody></table>

## 2. Vérifier la version actuelle

Avant toute modification, vérifier la version installée :

```
dpkg -l | grep code-server
/usr/bin/code-server --version

```

Exemple :

```
ii  code-server  4.130.0  amd64  Run VS Code in the browser.

4.130.0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx with Code 1.130.0

```

## 3. Vérifier que le service fonctionne

```
sudo systemctl status code-server@nancre.service --no-pager

```

Le service doit être :

```
Active: active (running)

```

Vérifier également que le port 8080 est à l'écoute :

```
sudo ss -ltnp | grep ':8080'

```

On doit retrouver une écoute sur :

```
0.0.0.0:8080

```

## 4. Sauvegarder la configuration

Avant la mise à jour, sauvegarder la configuration et les données utilisateur.

```
cp -a ~/.config/code-server \
~/.config/code-server.backup-$(date +%Y%m%d-%H%M%S)

cp -a ~/.local/share/code-server \
~/.local/share/code-server.backup-$(date +%Y%m%d-%H%M%S)

```

Vérifier que les sauvegardes existent :

```
ls -ld ~/.config/code-server.backup-*
ls -ld ~/.local/share/code-server.backup-*

```

## 5. Définir la version cible

Remplacer `4.137.0` par la version souhaitée.

```
export CODE_SERVER_VERSION="4.137.0"

```

Pour vérifier :

```
echo "$CODE_SERVER_VERSION"

```

## 6. Télécharger le paquet officiel

Se placer dans le répertoire temporaire :

```
cd /tmp

```

Télécharger le paquet Debian correspondant à l'architecture AMD64 :

```
wget "https://github.com/coder/code-server/releases/download/v${CODE_SERVER_VERSION}/code-server_${CODE_SERVER_VERSION}_amd64.deb"

```

Vérifier que le fichier existe :

```
ls -lh "/tmp/code-server_${CODE_SERVER_VERSION}_amd64.deb"

```

## 7. Vérifier le paquet avant installation

Afficher les informations du paquet :

```
dpkg-deb -I "/tmp/code-server_${CODE_SERVER_VERSION}_amd64.deb" | grep -E 'Package:|Version:|Architecture:'

```

Le résultat doit indiquer :

```
Package: code-server
Version: 4.137.0
Architecture: amd64

```

## 8. Installer la nouvelle version

```
sudo dpkg -i "/tmp/code-server_${CODE_SERVER_VERSION}_amd64.deb"

```

Si des dépendances sont signalées comme manquantes, exécuter :

```
sudo apt-get install -f

```

Puis vérifier de nouveau le paquet :

```
dpkg -l | grep code-server

```

## 9. Vérifier la nouvelle version

```
/usr/bin/code-server --version

```

Le résultat doit correspondre à la version cible.

Exemple pour la version 4.137.0 :

```
4.137.0 b11dabdaca0d3369986975be285db92c8795cea5 with Code 1.137.0

```

## 10. Recharger la configuration systemd

L'installation d'un nouveau paquet peut modifier les fichiers systemd. Recharger le gestionnaire systemd :

```
sudo systemctl daemon-reload

```

Cette étape est importante si systemd affiche le message :

```
Warning: The unit file, source configuration file or drop-ins
of code-server@nancre.service changed on disk.
Run 'systemctl daemon-reload' to reload units.

```

## 11. Redémarrer code-server

```
sudo systemctl restart code-server@nancre.service

```

Vérifier immédiatement le service :

```
sudo systemctl status code-server@nancre.service --no-pager

```

Le service doit être :

```
Active: active (running)

```

## 12. Vérifier les logs

Afficher les dernières lignes du journal :

```
sudo journalctl -u code-server@nancre.service -n 50 --no-pager

```

En cas de problème, rechercher les erreurs :

```
sudo journalctl -u code-server@nancre.service --no-pager | grep -Ei 'error|failed|fatal'

```

## 13. Vérifier le port d'écoute

```
sudo ss -ltnp | grep ':8080'

```

Le port doit être ouvert sur :

```
0.0.0.0:8080

```

## 14. Tester localement

Tester la réponse HTTP de code-server :

```
curl -I http://127.0.0.1:8080

```

Une réponse :

```
HTTP/1.1 401 Unauthorized

```

est normale puisque l'authentification par mot de passe est activée dans `config.yaml`.

## 15. Vérifier la configuration

```
cat ~/.config/code-server/config.yaml

```

Configuration actuelle attendue :

```
bind-addr: 0.0.0.0:8080
auth: password
password: 'MON_MOT_DE_PASSE'
cert: false

```

**Ne pas modifier le mot de passe pendant une simple mise à jour.**

## 16. Test fonctionnel dans le navigateur

Ouvrir l'URL habituelle de code-server et vérifier :

- connexion à code-server ;
- ouverture du workspace ;
- terminal intégré ;
- Git ;
- extensions ;
- extension Codex/OpenAI ;
- accès aux fichiers du workspace.

## 17. Vérification finale

Exécuter :

```
echo "=== VERSION ==="
 /usr/bin/code-server --version

echo "=== PAQUET ==="
dpkg -l | grep code-server

echo "=== SERVICE ==="
sudo systemctl is-active code-server@nancre.service

echo "=== PORT ==="
sudo ss -ltnp | grep ':8080'

```

La mise à jour est considérée comme réussie si :

- la version correspond à la version cible ;
- le paquet est en état `ii` ;
- le service retourne `active` ;
- le port 8080 est à l'écoute ;
- l'interface web fonctionne.

---

## 18. Procédure de rollback

En cas de problème après la mise à jour, il est possible de revenir à la version précédente.

### 18.1 Identifier la version précédente

```
grep code-server /var/log/dpkg.log | tail -20

```

On peut également consulter :

```
ls -lh /tmp/code-server_*.deb

```

Si le paquet précédent a été conservé dans `/tmp`, il peut être réinstallé directement.

### 18.2 Télécharger l'ancienne version

Définir la version précédente :

```
export OLD_VERSION="4.130.0"

```

Télécharger le paquet :

```
cd /tmp

wget "https://github.com/coder/code-server/releases/download/v${OLD_VERSION}/code-server_${OLD_VERSION}_amd64.deb"

```

### 18.3 Réinstaller l'ancienne version

```
sudo dpkg -i "/tmp/code-server_${OLD_VERSION}_amd64.deb"

```

### 18.4 Recharger systemd

```
sudo systemctl daemon-reload

```

### 18.5 Redémarrer code-server

```
sudo systemctl restart code-server@nancre.service

```

### 18.6 Vérifier le rollback

```
/usr/bin/code-server --version

sudo systemctl status code-server@nancre.service --no-pager

sudo ss -ltnp | grep ':8080'

```

La version précédente doit être affichée et le service doit être `active (running)`.

## 19. Rollback de la configuration utilisateur

Si la mise à jour a également provoqué un problème avec la configuration ou les extensions, arrêter code-server :

```
sudo systemctl stop code-server@nancre.service

```

Identifier la sauvegarde créée avant la mise à jour :

```
ls -ld ~/.config/code-server.backup-*
ls -ld ~/.local/share/code-server.backup-*

```

Restaurer la configuration :

```
rm -rf ~/.config/code-server
cp -a ~/.config/code-server.backup-YYYYMMDD-HHMMSS ~/.config/code-server

```

Restaurer les données utilisateur uniquement si nécessaire :

```
rm -rf ~/.local/share/code-server
cp -a ~/.local/share/code-server.backup-YYYYMMDD-HHMMSS ~/.local/share/code-server

```

Redémarrer :

```
sudo systemctl start code-server@nancre.service

```

<div id="bkmrk-%E2%9A%A0%EF%B8%8F-attention-%3A-rempl">**⚠️ Attention :** remplacer `YYYYMMDD-HHMMSS` par le nom exact de la sauvegarde. Ne pas supprimer les sauvegardes avant d'avoir validé le fonctionnement de la nouvelle version.</div>## 20. Commandes rapides – mise à jour

Pour une mise à jour ultérieure déjà validée, la séquence minimale est :

```
export CODE_SERVER_VERSION="X.Y.Z"

cd /tmp

wget "https://github.com/coder/code-server/releases/download/v${CODE_SERVER_VERSION}/code-server_${CODE_SERVER_VERSION}_amd64.deb"

sudo dpkg -i "/tmp/code-server_${CODE_SERVER_VERSION}_amd64.deb"

sudo systemctl daemon-reload

sudo systemctl restart code-server@nancre.service

/usr/bin/code-server --version

sudo systemctl status code-server@nancre.service --no-pager

sudo ss -ltnp | grep ':8080'

```

## 21. Résumé de l'architecture

```
Utilisateur : nancre
        │
        ▼
code-server@nancre.service
        │
        ▼
/usr/bin/code-server
        │
        ▼
/usr/lib/code-server
        │
        ▼
0.0.0.0:8080
        │
        ▼
Reverse proxy / accès web

```

**Important :** le service à utiliser est `code-server@nancre.service`. Le service utilisateur `code-server.service` n'est pas celui qui exécute l'instance actuelle.