Guide d’installation The Lounge
The Lounge est un client IRC web moderne, accessible depuis n’importe quel navigateur, toujours en ligne, multi-utilisateurs et simple à maintenir.
Prérequis
- Un serveur Linux (Debian/Ubuntu conseillé) avec accès SSH.
- Node.js LTS (18+ recommandé) et
npminstallés. - Un utilisateur non-root dédié (ex.
thelounge). - (Optionnel) Nginx ou Apache2 pour servir en HTTPS (reverse proxy).
Installer Node.js (si besoin)
Sur Debian/Ubuntu, via les dépôts :
sudo apt update && sudo apt install -y nodejs npmAstuce : utilise nvm si tu veux gérer plusieurs versions de Node.js.
Installer The Lounge
Installation globale pour rendre la commande thelounge disponible partout :
sudo npm install -g theloungeCréer un utilisateur dédié (recommandé) :
sudo useradd -m -s /bin/bash theloungeConfiguration & premier utilisateur
Connecte-toi en tant qu’utilisateur thelounge puis crée ton compte :
sudo -iu thelounge
thelounge add adminDémarrer en mode “daemon” :
thelounge startPar défaut, The Lounge écoute sur 127.0.0.1:9000. On va publier derrière Nginx ou Apache2 en HTTPS.
Se connecter à irc.discut.biz
Depuis l’interface web de The Lounge, ajoute ce réseau :
- Serveur :
irc.discut.biz - Port :
6697 - SSL/TLS :
Activé - Auto-join :
#Aide(et tes salons) - Identité : ton pseudo (option : IDENTIFY NickServ)
Démarrage automatique (systemd)
1) Créer le service
sudo nano /etc/systemd/system/thelounge.service2) Contenu
[Unit]
Description=The Lounge IRC Web Client
After=network.target
[Service]
Type=simple
User=thelounge
Group=thelounge
ExecStart=/usr/bin/thelounge start --home /home/thelounge/.thelounge
Restart=always
RestartSec=5
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target3) Activer & démarrer
sudo systemctl daemon-reload
sudo systemctl enable thelounge
sudo systemctl start thelounge
sudo systemctl status thelounge --no-pagerReverse proxy Nginx (HTTPS)
1) Installer Nginx
sudo apt install -y nginx2) VHost HTTP ➜ proxy local 9000
sudo nano /etc/nginx/sites-available/thelounge.confserver {
listen 80;
server_name thelounge.discut.biz;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}sudo ln -s /etc/nginx/sites-available/thelounge.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx3) HTTPS Let’s Encrypt
Avec certbot :
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d thelounge.discut.bizAjoute l’entré DNS A/AAAA de thelounge.discut.biz vers ton serveur.
Reverse proxy Apache2 (HTTPS)
1) Activer les modules requis
sudo a2enmod proxy proxy_http proxy_wstunnel headers ssl
sudo systemctl restart apache22) VHost HTTP ➜ proxy local 9000
Crée le vhost et pointe-le sur l’instance The Lounge locale :
sudo nano /etc/apache2/sites-available/thelounge.conf<VirtualHost *:80>
ServerName thelounge.discut.biz
ProxyPreserveHost On
ProxyRequests Off
# HTTP (backend The Lounge)
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
# WebSocket (socket.io)
ProxyPass /socket.io/ ws://127.0.0.1:9000/socket.io/
ProxyPassReverse /socket.io/ ws://127.0.0.1:9000/socket.io/
RequestHeader set X-Forwarded-Proto "http"
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
</VirtualHost>sudo a2ensite thelounge.conf
sudo apache2ctl configtest && sudo systemctl reload apache23) HTTPS Let’s Encrypt
Le plus simple avec certbot :
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d thelounge.discut.biz(Option) VHost HTTPS manuel
<VirtualHost *:443>
ServerName thelounge.discut.biz
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/thelounge.discut.biz/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/thelounge.discut.biz/privkey.pem
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
ProxyPass /socket.io/ ws://127.0.0.1:9000/socket.io/
ProxyPassReverse /socket.io/ ws://127.0.0.1:9000/socket.io/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</VirtualHost>4) Recharger Apache
sudo apache2ctl configtest && sudo systemctl reload apache2Utilise **Nginx OU Apache**, pas les deux sur 80/443 en même temps.
Sécurité & bonnes pratiques
- Compte dédié
thelounge, jamais en root. - Expose uniquement via HTTPS (Nginx/Apache + Let’s Encrypt).
- Mots de passe forts pour les utilisateurs The Lounge.
- Mets à jour régulièrement The Lounge et Node.js.