No results
2
Déploiement
Claude edited this page 2026-05-16 12:31:25 +02:00
Déploiement
Prérequis
- Docker >= 24 et Docker Compose v2
- Un domaine avec HTTPS (obligatoire pour les notifications push et le Service Worker PWA)
- Git
Installation
git clone https://forge.nesquiikhost.fr/NesquiikLab/NoxIRC.git
cd NoxIRC
Créer le fichier .env :
POSTGRES_USER=noxirc
POSTGRES_PASSWORD=motdepasse_securise
POSTGRES_DB=noxirc
SECRET_KEY=64_caracteres_aleatoires_ici
PORT=80
PUBLIC_URL=https://noxirc.example.com
UPLOAD_MAX_SIZE_MB=10
Générer une SECRET_KEY :
openssl rand -hex 32
Variables d'environnement
| Variable | Défaut | Description |
|---|---|---|
POSTGRES_USER |
noxirc |
Utilisateur PostgreSQL |
POSTGRES_PASSWORD |
noxirc |
À changer en production |
POSTGRES_DB |
noxirc |
Nom de la base de données |
SECRET_KEY |
changeme64chars |
Clé JWT — 64 caractères aléatoires |
PORT |
80 |
Port exposé par le frontend |
PUBLIC_URL |
(vide) | URL publique complète (ex: https://noxirc.example.com) |
UPLOAD_MAX_SIZE_MB |
10.0 |
Taille maximale d'un fichier uploadé |
UPLOAD_ALLOWED_TYPES |
image/jpeg,image/png,... |
Types MIME acceptés |
ACCESS_TOKEN_EXPIRE_MINUTES |
60 |
Durée de vie de l'access token |
REFRESH_TOKEN_EXPIRE_DAYS |
7 |
Durée de vie du refresh token |
PUBLIC_URLest nécessaire pour que les URLs des fichiers uploadés soient absolues et accessibles depuis l'extérieur.
Lancement
docker compose up -d --build
Les migrations Alembic s'exécutent automatiquement au démarrage du backend.
# Vérifier que tout tourne
docker compose ps
curl http://localhost/health
Premier compte administrateur
Le premier compte créé n'est pas admin automatiquement. Pour promouvoir le premier admin, se connecter directement à la base de données :
docker compose exec postgres psql -U noxirc -c \
"UPDATE users SET is_admin = true WHERE username = 'tonpseudo';"
Ensuite, les promotions suivantes se font depuis le panel admin.
Mise à jour
git pull
docker compose up -d --build
Les migrations sont appliquées automatiquement.
Reverse proxy Nginx (HTTPS)
HTTPS est obligatoire pour les notifications push et le Service Worker :
server {
listen 443 ssl http2;
server_name noxirc.example.com;
ssl_certificate /etc/letsencrypt/live/noxirc.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/noxirc.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
}
}
server {
listen 80;
server_name noxirc.example.com;
return 301 https://$host$request_uri;
}
Avec Certbot : certbot --nginx -d noxirc.example.com
Volumes persistants
| Volume | Contenu |
|---|---|
postgres_data |
Base de données |
redis_data |
Cache Redis |
uploads |
Fichiers uploadés par les utilisateurs |
plugins_dir |
Plugins installés |