ZNC 1.10.1 en Docker — migration du bouncer IRC vers le serveur centralisé
ZNC en Docker — migration et mise à jour du bouncer IRC vers Docker Compose
Dixième étape : migrer ZNC (bouncer IRC) depuis une installation standalone
vers Docker Compose, avec mise à jour vers ZNC 1.10.1.
Paramètres à personnaliser
Remplacez chaque {{VARIABLE}} par vos propres valeurs avant d’utiliser ce guide.
| Variable | Description | Exemple |
|---|---|---|
{{IP_ANCIEN}} |
IP du serveur source | 203.0.113.10 |
{{IP_NOUVEAU}} |
IP du serveur cible | 198.51.100.20 |
{{HOSTNAME_ANCIEN}} |
Hostname de l’ancien serveur | ns1234567 |
{{HOSTNAME_NOUVEAU}} |
Hostname du nouveau serveur | ns7654321 |
{{PORT_SSH_ANCIEN}} |
Port SSH de l’ancien serveur | 22222 |
{{PORT_SSH_NOUVEAU}} |
Port SSH du nouveau serveur | 22223 |
{{DOMAINE_GAMING}} |
Domaine gaming | exemple-gaming.fr |
{{ZNC_ADMIN}} |
Administrateur ZNC | monAdmin |
{{ZNC_USER_1}} |
Utilisateur ZNC 1 | user1 |
{{ZNC_USER_2}} |
Utilisateur ZNC 2 | user2 |
{{ZNC_USER_3}} |
Utilisateur ZNC 3 | user3 |
{{DOMAINE_IRC}} |
Sous-domaine ZNC (optionnel) | irc.exemple.com |
Contexte
ZNC est un bouncer IRC (BNC) avancé qui reste connecté aux serveurs IRC
en permanence, même lorsque l’utilisateur est déconnecté. Il conserve
l’historique des messages, maintient la présence sur les canaux, et permet à
plusieurs clients IRC de se connecter simultanément au même compte.
Contrairement aux clients IRC classiques, ZNC centralise la connexion et partage l’état
entre tous les clients connectés (web, mobile, desktop).
Actuellement, ZNC 1.8.2 (paquet Debian 11) tourne comme un service systemd
(znc.service) sur l’ancien serveur dédié ({{IP_ANCIEN}},
{{HOSTNAME_ANCIEN}}) sous l’utilisateur _znc, avec ses données dans
/home/znc/.znc/ (2,4 Go, 4 utilisateurs actifs).
On migre vers Docker Compose sur le nouveau serveur ({{IP_NOUVEAU}}, {{HOSTNAME_NOUVEAU}},
SSH port {{PORT_SSH_NOUVEAU}}), où tournent déjà Odoo 17, Odoo 8, Akeneo PIM, ownCloud,
TeamSpeak 3 et EmuLinker.
Architecture cible : 1 conteneur Docker (image officielle znc:1.10.1)
avec port 4353/tcp exposé directement (pas de reverse proxy).
ZNC utilise le même port pour les connexions IRC et l’interface web admin.
La migration inclut une mise à jour de ZNC 1.8.2 vers 1.10.1 (dernière version stable).
ZNC gère automatiquement la migration du format de configuration znc.conf
au premier démarrage.
1) Diagnostiquer l’installation actuelle
Première étape : se connecter à l’ancien serveur et identifier la version
de ZNC, le port d’écoute, le répertoire de données, et l’utilisateur système.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# Se connecter à l'ancien serveur ssh -p {{PORT_SSH_ANCIEN}} root@{{IP_ANCIEN}} # Trouver le processus ZNC ps aux | grep znc # Version actuelle znc --version # Trouver le répertoire de données find /home -name "znc.conf" -type f 2>/dev/null ls -la /home/*/.znc/ 2>/dev/null # Vérifier les ports utilisés ss -tlnp | grep znc # Vérifier si c'est un service systemd systemctl status znc 2>/dev/null || systemctl list-units | grep znc # Taille des données du -sh /home/*/.znc/ 2>/dev/null |
Pourquoi ce diagnostic ? Avant la migration, nous devons connaître
la version actuelle (pour comprendre l’ampleur de la mise à jour vers 1.10.1),
le port d’écoute (pour le reproduire dans Docker), et l’emplacement des données
(configuration, certificats, logs de buffer). Ces informations garantissent une migration
complète sans perte de données.
1.1 Résumé de l’installation
Résumé de notre installation :
- Version : ZNC 1.8.2+deb2+deb11u1 (paquet Debian 11, mise à jour vers 1.10.1)
- Répertoire de données :
/home/znc/.znc/(2,4 Go) - Port d’écoute : 4353 (TCP, port personnalisé, SSL activé)
- Interface web :
AllowWeb = truesur le même port (intégrée dans ZNC) - Utilisateur système :
_znc(utilisateur Debian par défaut pour ZNC) - Service :
znc.service(systemd, enabled) - Processus :
/usr/bin/znc -f --datadir=/home/znc/.znc - Modules globaux :
identfile,adminlog,log - Réseau IRC : QuakeNet (
193.27.78.5:6667— euroserv.fr.quakenet.org) - Certificat SSL :
znc.pem(mai 2015, utilisé pour cert + clé + DH) - Utilisateurs ZNC : 4 ({{ZNC_USER_1}}, {{ZNC_USER_2}}, {{ZNC_USER_3}}, {{ZNC_ADMIN}}) — 17 répertoires dans
users/dont certains inactifs - Administrateur :
{{ZNC_ADMIN}}(seul user avecAdmin = true) - Mots de passe : SHA-256 (seront migrés en Argon2id par ZNC 1.10.1)
- Mémoire utilisée : 11,4 Mo
1.2 Fichiers critiques à préserver
configs/znc.conf— configuration complète (4 utilisateurs actifs, réseaux IRC,
canaux, modules activés, paramètres SSL)znc.pem— certificat SSL auto-signé du bouncer (mai 2015, connexions client → ZNC)znc.pem.old— ancien certificat (backup)users/— répertoires utilisateur (logs de buffer, certificats clients, paramètres individuels)moddata/— données des modules (logs persistés, notes, historique de commandes)modules/— modules compilés personnalisés (répertoire présent mais probablement vide)
Tout le répertoire ~/.znc/ doit être copié :
ZNC stocke non seulement la configuration dans znc.conf, mais aussi l’historique
des messages (buffers), les certificats SSL, les données des modules, et les paramètres
utilisateur. Copier uniquement znc.conf résulterait en une perte de l’historique
et nécessiterait de recréer le certificat SSL.
2) Créer la structure des répertoires Docker
Sur le nouveau serveur :
|
1 2 |
mkdir -p /home/docker/znc/data mkdir -p /home/docker/znc/backup |
data/— sera monté comme/znc-datadans le conteneur (tout le répertoire ZNC)backup/— pour stocker les exports temporaires de l’ancien serveur
Docker Compose v2 : si ce n’est pas déjà fait lors des migrations
précédentes (Odoo, TeamSpeak, EmuLinker), installer Docker Compose v2 avec
apt install docker-compose-plugin. Les commandes utilisent docker compose
(avec espace) au lieu de docker-compose (avec tiret).
3) Créer le docker-compose.yml
|
1 |
nano /home/docker/znc/docker-compose.yml |
Contenu :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
services: znc: image: znc:1.10.1 container_name: znc-server restart: always ports: - "4353:4353" volumes: - ./data:/znc-data networks: - znc-network networks: znc-network: name: znc-network |
Points clés :
znc:1.10.1— image officielle Docker de ZNC, dernière version stable.
Mise à jour depuis ZNC 1.8.2 (Debian 11)ports: "4353:4353"— port personnalisé configuré dans notreznc.conf
(le port standard IRC SSL est 6697, mais notre installation utilise 4353)./data:/znc-data— bind mount pour toutes les données ZNC (configuration,
utilisateurs, certificats, modules, logs)- Pas de
network_mode: host— contrairement à EmuLinker, ZNC n’a besoin
que d’un ou deux ports TCP, le NAT Docker est acceptable
Port personnalisé : notre installation utilise le port 4353
(au lieu du port standard 6697). Ce port est défini dans znc.conf (section
) et doit correspondre au mapping dans docker-compose.yml.
Mise à jour automatique de la configuration : on utilise directement
l’image znc:1.10.1 même si l’ancien serveur tourne une version plus ancienne.
ZNC gère la migration de configuration automatiquement au premier démarrage —
il met à jour le format de znc.conf si nécessaire et crée
un backup znc.conf.pre-1.10.1 de l’ancienne version. Aucune intervention manuelle requise.
4) Exporter les données depuis l’ancien serveur
|
1 2 3 4 5 6 7 8 9 10 11 |
# Sur l'ancien serveur ssh -p {{PORT_SSH_ANCIEN}} root@{{IP_ANCIEN}} # Arrêter ZNC proprement (important pour la cohérence des données) systemctl stop znc # Vérifier que le processus est arrêté ps aux | grep znc # Créer une archive de backup (2,4 Go) tar czf /tmp/znc-backup.tar.gz -C /home/znc .znc/ |
Arrêter ZNC avant l’export : ZNC écrit les fichiers de configuration
et les buffers sur disque lors d’un arrêt propre. Copier les fichiers pendant que ZNC tourne
peut donner une configuration incohérente (buffers tronqués, fichiers en cours d’écriture).
Utiliser systemctl stop znc ou znc --quit pour un arrêt propre,
jamais kill -9.
5) Transférer via rsync
Depuis le nouveau serveur :
|
1 2 3 4 |
# Copier tout le répertoire .znc/ dans le volume Docker (2,4 Go) rsync -avz --progress -e "ssh -p {{PORT_SSH_ANCIEN}}" \ root@{{IP_ANCIEN}}:/home/znc/.znc/ \ /home/docker/znc/data/ |
Durée estimée : 2,4 Go entre serveurs OVH (réseau interne ~1 Gbps),
le transfert prend moins d’une minute.
6) Adapter la configuration pour Docker
Après le transfert, vérifier certains paramètres de configuration
pour s’assurer qu’ils sont compatibles avec l’environnement Docker.
|
1 |
nano /home/docker/znc/data/configs/znc.conf |
Paramètres à vérifier :
- Port d’écoute (section Listener) — doit correspondre au mapping Docker
- Adresse IP d’écoute (BindHost) — supprimer l’ancienne IP si présente
- SSL — vérifier que SSL reste activé
- Chemins SSL absolus (critique) — supprimer les 3 lignes
SSLCertFile,
SSLDHParamFile,SSLKeyFilequi pointent vers/home/znc/.znc/
(chemin inexistant en Docker)
6.1 Port d’écoute
Chercher la section dans znc.conf :
|
1 2 3 4 5 6 7 8 9 |
<Listener listener0> AllowIRC = true AllowWeb = true IPv4 = true IPv6 = false Port = 4353 SSL = true URIPrefix = / </Listener> |
Le port 4353 doit correspondre à celui exposé
dans docker-compose.yml ("4353:4353").
Ne pas le changer sauf si on veut migrer vers un port différent.
AllowIRC + AllowWeb : notre Listener accepte
à la fois les connexions IRC (clients bouncers) et les connexions web (interface admin)
sur le même port 4353. C’est le comportement standard de ZNC.
6.2 Adresse IP d’écoute (BindHost)
Vérifier qu’il n’y a pas de ligne BindHost = {{IP_ANCIEN}} (ancienne IP)
dans la section :
|
1 2 3 4 5 |
# Si présent, supprimer ou commenter cette ligne : # BindHost = {{IP_ANCIEN}} # Ou la remplacer par : BindHost = 0.0.0.0 |
BindHost et Docker : si BindHost est configuré avec
l’ancienne IP ({{IP_ANCIEN}}), le supprimer ou le remplacer par 0.0.0.0.
En Docker, ZNC doit écouter sur toutes les interfaces (0.0.0.0) pour que le port mapping
fonctionne. Une ancienne IP bloquerait les connexions entrantes.
6.3 SSL activé
Vérifier que SSL = true dans la section Listener.
Notre installation utilise SSL sur le port 4353. Le certificat znc.pem (mai 2015)
est copié automatiquement avec le rsync. Il continuera à fonctionner même après
la mise à jour vers ZNC 1.10.1.
6.4 Chemins SSL (critique)
La configuration de l’ancien serveur contient des chemins absolus pour le certificat SSL :
|
1 2 3 4 |
# Ancien serveur (chemins dans znc.conf) : SSLCertFile = /home/znc/.znc/znc.pem SSLDHParamFile = /home/znc/.znc/znc.pem SSLKeyFile = /home/znc/.znc/znc.pem |
Ces chemins n’existent pas dans le conteneur Docker.
En Docker, le répertoire de données est /znc-data/ (pas /home/znc/.znc/).
Si ces lignes restent inchangées, ZNC ne démarrera pas :
Unable to load certificate.
Correction : supprimer ces 3 lignes de znc.conf.
|
1 2 3 4 |
# Supprimer ou commenter ces 3 lignes : # SSLCertFile = /home/znc/.znc/znc.pem # SSLDHParamFile = /home/znc/.znc/znc.pem # SSLKeyFile = /home/znc/.znc/znc.pem |
Pourquoi supprimer plutôt que corriger ?
Quand ces lignes sont absentes, ZNC utilise automatiquement
comme certificat, clé et paramètres DH.
Le conteneur Docker définit --datadir=/znc-data, donc ZNC trouvera
le certificat à /znc-data/znc.pem — exactement là où le rsync
l’a copié. Pas besoin de coder le chemin en dur.
Migration 1.8.2 → 1.10.1 : au premier démarrage avec ZNC 1.10.1,
le bouncer mettra à jour automatiquement le format de znc.conf.
Un backup de l’ancien fichier est créé automatiquement (znc.conf.pre-1.10.1).
Les mots de passe sont migrés de SHA-256 vers Argon2id (si disponible).
7) Ouvrir les ports dans le firewall
Sur l’ancien serveur, 3 règles firewall étaient configurées pour ZNC.
Sur le nouveau serveur, seul le port principal est nécessaire :
|
1 2 3 4 5 6 7 8 |
# Port ZNC bouncer + web admin (4353/tcp) /usr/local/vesta/bin/v-add-firewall-rule ACCEPT 0.0.0.0/0 4353 TCP ZNC-Bouncer # Appliquer les règles /usr/local/vesta/bin/v-update-firewall # Vérifier que la règle est active iptables -L INPUT -n | grep 4353 |
Résultat attendu :
|
1 |
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:4353 |
7.1 Règles de l’ancien serveur (pour référence)
L’ancien serveur avait 3 règles firewall pour ZNC :
ACCEPT TCP 4353 0.0.0.0/0(znc-Bouncer) — port d’écoute ZNC.
À recréer sur le nouveau serveurACCEPT TCP 6667 193.27.78.5(znc-Quakenet-euroserv.fr.quakenet.org) —
autorise les connexions depuis le serveur IRC QuakeNet.
Pas nécessaire sur le nouveau serveur : les connexions vers QuakeNet
sont sortantes (initiateées par ZNC), gérées par le conntrack du firewallACCEPT TCP 113 0.0.0.0/0(znc-Ident) — protocole ident (RFC 1413),
utilisé par le moduleidentfile.
Optionnel : voir note ci-dessous
Port 113 (ident) en Docker : le module identfile chargé
dans notre znc.conf écrit un fichier .oidentd.conf pour que
le démon oidentd réponde aux requêtes ident des serveurs IRC.
En Docker, oidentd n’est pas installé dans le conteneur.
Si aucun serveur IRC n’exige de réponse ident (QuakeNet ne l’exige pas pour les bouncers),
cette règle n’est pas nécessaire.
Utiliser MyVestaCP CLI : toujours utiliser les commandes MyVestaCP
(v-add-firewall-rule, v-update-firewall) pour modifier le firewall,
jamais iptables directement. Les règles ajoutées avec iptables
seraient perdues au prochain redémarrage du serveur.
8) Arrêter l’ancien ZNC
Avant de démarrer le nouveau serveur Docker, arrêter définitivement l’ancien
pour éviter les conflits de connexion :
|
1 2 3 4 5 6 7 8 9 10 |
ssh -p {{PORT_SSH_ANCIEN}} root@{{IP_ANCIEN}} # Arrêter le service systemctl stop znc # Désactiver le démarrage automatique systemctl disable znc # Vérifier que le processus est arrêté ps aux | grep znc |
9) Démarrer ZNC Docker
Retour sur le nouveau serveur :
|
1 2 |
cd /home/docker/znc/ docker compose up -d |
Vérifier que le conteneur est en cours d’exécution :
|
1 2 |
docker compose ps docker compose logs znc |
Vérifier que le port est bien en écoute :
|
1 |
ss -tlnp | grep 4353 |
Résultat attendu :
|
1 |
tcp LISTEN 0 128 0.0.0.0:4353 0.0.0.0:* |
Premier démarrage après mise à jour : au premier démarrage
après la migration vers ZNC 1.10.1, le bouncer peut prendre quelques secondes supplémentaires
pour migrer la configuration vers le nouveau format. Les logs afficheront des messages indiquant
la conversion de znc.conf. C’est normal.
10) Tester la connexion
Tester que ZNC répond correctement sur le port configuré :
|
1 2 3 4 5 6 7 8 |
# Vérifier que le port est en écoute ss -tlnp | grep 4353 # Tester la connexion SSL (devrait afficher le certificat) openssl s_client -connect 127.0.0.1:4353 # Tester l'accès au panel web admin (si le module webadmin est activé) curl -k https://127.0.0.1:4353 |
Interface web admin : l’interface web admin de ZNC est accessible sur le même
port que les connexions IRC. Ouvrir https://{{IP_NOUVEAU}}:4353 dans un navigateur
(accepter le certificat auto-signé). Notre configuration a AllowWeb = true
dans le Listener, donc l’interface web est active.
Se connecter avec le compte admin {{ZNC_ADMIN}}.
Module webadmin non chargé : notre znc.conf
ne charge pas le module webadmin globalement. L’interface web basique fonctionne
(login, changement de mot de passe), mais pour l’administration complète (gestion des utilisateurs,
réseaux, modules), ajouter dans la section globale de znc.conf :
LoadModule = webadmin. Alternativement, l’utilisateur {{ZNC_ADMIN}} a le module
controlpanel chargé, qui permet l’administration via des commandes IRC
(/msg *controlpanel help).
11) Configurer les clients IRC
Mettre à jour la configuration des clients IRC pour pointer vers le nouveau serveur :
11.1 Paramètres de connexion
- Serveur :
{{IP_NOUVEAU}}(ou nom de domaine si configuré) - Port :
4353 - SSL : activé
- Mot de passe :
utilisateur:motdepasse(format ZNC standard) - Nom d’utilisateur :
utilisateur(ouutilisateur/réseau
pour se connecter à un réseau spécifique)
11.2 Mise à jour DNS (si applicable)
Nom de domaine : si un domaine est configuré pour ZNC
(exemple : {{DOMAINE_IRC}} ou bouncer.example.com),
mettre à jour l’enregistrement DNS A vers {{IP_NOUVEAU}}.
Après propagation DNS (quelques minutes à quelques heures), les clients
pourront se connecter via le nom de domaine au lieu de l’IP.
11.3 Accepter le certificat SSL
Le certificat ZNC est auto-signé (znc.pem, mai 2015).
Les clients IRC qui étaient connectés à l’ancien serveur ont déjà accepté
ce certificat. Seule l’adresse IP change — les clients devront confirmer
le certificat pour la nouvelle IP.
Certificat ancien : le certificat date de 2015. Il est recommandé
de le regénérer après la migration avec
docker compose exec znc /opt/znc/bin/znc --makepem. Les clients devront accepter
le nouveau certificat une seule fois.
12) Désactiver définitivement l’ancien serveur
Une fois la migration validée et tous les clients connectés au nouveau serveur :
|
1 2 3 4 |
# Sur l'ancien serveur (si pas déjà fait) ssh -p {{PORT_SSH_ANCIEN}} root@{{IP_ANCIEN}} systemctl stop znc systemctl disable znc |
Dépannage
ZNC ne démarre pas : « Permission denied »
Cause : le conteneur ZNC officiel tourne avec l’UID 1000.
Sur l’ancien serveur, les fichiers appartiennent à _znc (UID variable selon
le système). Après le rsync, les UID ne correspondent peut-être pas.
|
1 2 3 4 5 6 7 8 9 |
# Vérifier les permissions ls -la /home/docker/znc/data/ # Corriger les permissions (le conteneur ZNC utilise UID 1000) chown -R 1000:1000 /home/docker/znc/data/ # Redémarrer le conteneur docker compose down docker compose up -d |
Cette étape sera probablement nécessaire : sur l’ancien serveur,
les fichiers appartiennent à _znc (UID Debian). L’image Docker officielle
utilise UID 1000. Le chown est quasi-obligatoire après le transfert.
Erreur SSL : « Unable to load certificate »
Cause la plus probable : les chemins SSL absolus dans znc.conf
pointent vers l’ancien répertoire (/home/znc/.znc/znc.pem) qui n’existe pas
dans le conteneur Docker.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Vérifier si znc.conf contient des chemins absolus grep "SSLCertFile\|SSLDHParamFile\|SSLKeyFile" /home/docker/znc/data/configs/znc.conf # Si oui, supprimer ces 3 lignes (voir section 6.4) # ZNC utilisera automatiquement /znc-data/znc.pem # Vérifier que le certificat existe dans le bon répertoire ls -la /home/docker/znc/data/znc.pem # Regénérer le certificat si manquant docker compose exec znc /opt/znc/bin/znc --makepem # Redémarrer docker compose restart znc |
« Invalid Password » après la migration
Symptôme : la connexion SSL réussit (TLSv1.3), ZNC répond,
mais le mot de passe est rejeté avec « Invalid Password ».
Les logs Docker ne montrent aucune erreur.
Causes possibles :
- Migration SHA-256 → Argon2id : ZNC 1.10.1 tente de migrer les hash
de mots de passe de SHA-256 (1.8.2) vers Argon2id. Si la migration échoue silencieusement,
les hash deviennent invalides - Format d’authentification client : le client IRC doit envoyer le mot de passe
au formatutilisateur:motdepasse(ouutilisateur/réseau:motdepasse)
dans le champ « Server Password » - Mot de passe oublié : si le mot de passe n’a pas été utilisé
depuis longtemps, il peut simplement être oublié
Solution — regénérer le mot de passe :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# 1. Générer un nouveau hash de mot de passe docker compose exec znc /opt/znc/bin/znc --makepass # Entrer le nouveau mot de passe quand demandé # ZNC affiche un bloc avec Method, Hash et Salt # 2. Arrêter ZNC pour modifier la config docker compose down # 3. Éditer znc.conf et remplacer le bloc <Pass> de l'utilisateur nano /home/docker/znc/data/configs/znc.conf # Chercher la section de l'utilisateur (ex: {{ZNC_ADMIN}}) et remplacer : # <Pass password> # Method = ... # Hash = ... # Salt = ... # </Pass> # par les valeurs générées par --makepass # 4. Redémarrer ZNC docker compose up -d |
Alternative via le web admin : si le module webadmin est chargé,
on peut changer le mot de passe directement depuis l’interface web
(https://{{IP_NOUVEAU}}:4353) sans éditer znc.conf manuellement.
Mais il faut d’abord pouvoir se connecter — d’où la méthode manuelle ci-dessus.
Les clients ne peuvent pas se connecter
Causes possibles :
- Le firewall bloque le port
- Le port dans
docker-compose.ymlne correspond pas à celui dansznc.conf BindHostest configuré avec l’ancienne IP
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Vérifier le firewall iptables -L INPUT -n | grep 4353 # Vérifier que le port est en écoute ss -tlnp | grep 4353 # Vérifier le port dans docker-compose.yml grep "ports:" -A2 /home/docker/znc/docker-compose.yml # Vérifier le port dans znc.conf grep "Port =" /home/docker/znc/data/configs/znc.conf # Vérifier BindHost dans znc.conf (ne doit pas être l'ancienne IP) grep "BindHost" /home/docker/znc/data/configs/znc.conf # Vérifier les logs Docker docker compose logs znc --tail=100 |
Le panel web admin ne répond pas
Cause : le module webadmin n’est pas activé dans znc.conf.
|
1 2 3 4 5 |
# Vérifier si le module webadmin est chargé grep -i "webadmin" /home/docker/znc/data/configs/znc.conf # Si absent, l'ajouter dans la section globale de znc.conf nano /home/docker/znc/data/configs/znc.conf |
Ajouter dans la section globale (avant les sections ) :
|
1 |
LoadModule = webadmin |
Redémarrer ZNC :
|
1 |
docker compose restart znc |
Erreur : « Config file version mismatch »
Cause : ZNC 1.10.1 détecte le format 1.8.2 de znc.conf
et tente de le migrer automatiquement. Ce n’est normalement pas une erreur bloquante.
|
1 2 3 4 5 6 7 8 9 10 |
# Vérifier les logs pour voir si la migration a réussi docker compose logs znc # Si la migration échoue, vérifier le backup automatique ls -la /home/docker/znc/data/configs/znc.conf.pre-1.10.1 # En dernier recours, restaurer le backup et réessayer cp /home/docker/znc/data/configs/znc.conf.pre-1.10.1 \ /home/docker/znc/data/configs/znc.conf docker compose restart znc |
Récapitulatif de l’architecture finale
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Services Docker sur {{IP_NOUVEAU}} ({{HOSTNAME_NOUVEAU}}) ────────────────────────────────────────────── Applications web (via reverse proxy MyVestaCP) : ├── Odoo 17 → 127.0.0.1:8069/8169/8269/8369 ├── Odoo 8 → 127.0.0.1:8469 ├── Akeneo PIM → 127.0.0.1:8480 └── ownCloud → 127.0.0.1:8490 Serveurs de jeux et communication (ports exposés directement) : ├── TeamSpeak 3 → 9987/udp, 9988/udp, 30033/tcp ├── EmuLinker → 27888/udp (+ 27886-27944, 54715-54730) └── ZNC → 4353/tcp (IRC bouncer + web admin SSL) Domaine {{DOMAINE_GAMING}} : ├── TeamSpeak 3 → :9988 (serveur virtuel 2) └── EmuLinker → :27888 (Kaillera) |
Liste complète des ports utilisés :
8069/8169/8269/8369— Odoo 17 (via reverse proxy)8469— Odoo 8 (via reverse proxy)8480— Akeneo PIM (via reverse proxy)8490— ownCloud (via reverse proxy)9987/udp+9988/udp— TeamSpeak 3 voix (direct)10011/tcp— TeamSpeak 3 ServerQuery (localhost seulement)30033/tcp— TeamSpeak 3 transfert fichiers (direct)27886-27944/udp— EmuLinker Kaillera (direct, host network)54715-54730/udp— EmuLinker P2P (direct, host network)4353/tcp— ZNC IRC bouncer + web admin (direct)
À suivre
ZNC est maintenant opérationnel en Docker avec la dernière version stable (1.10.1).
Dans les prochains articles :
- Counter-Strike 1.6 en Docker — migration du serveur de jeu CS 1.6
- Sauvegardes automatisées — stratégie de backup pour tous les services Docker
- Monitoring et alertes — surveillance centralisée des conteneurs
0 commentaire