Installation

Déployer BilloraX sur un VPS Debian/Ubuntu en moins de 15 minutes.

Dernière mise à jour : 19 avril 2026

Prérequis

  • VPS Debian 12 ou Ubuntu 22/24 LTS
  • Node.js 20+ et npm
  • PostgreSQL 15+
  • Nginx
  • Un nom de domaine pointant vers le VPS

Installer Node.js 20+

Le dépôt officiel NodeSource permet d'installer une version récente de Node.js sans passer par la version obsolète packagée par Debian/Ubuntu.

bash
# Ajouter le dépôt NodeSource (Node.js 20)
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -

# Installer Node.js (npm est inclus)
apt-get install -y nodejs

# Vérifier les versions
node -v   # v20.x.x
npm -v
Remplace setup_20.x par setup_22.x si tu veux Node.js 22 (LTS plus récent).

Installer PostgreSQL 15+

PostgreSQL 15 est disponible dans les dépôts officiels de Debian 12 et Ubuntu 22/24. Sur Debian 13 (Trixie), PostgreSQL 17 est disponible par défaut.

bash
# Installer PostgreSQL
apt-get install -y postgresql postgresql-contrib

# Démarrer et activer le service
systemctl enable --now postgresql

# Vérifier la version
psql --version

Créer la base de données BilloraX

Connecte-toi au serveur PostgreSQL avec l'utilisateur système postgres, puis crée un utilisateur et une base dédiés.

sql
# Ouvrir le shell PostgreSQL
sudo -u postgres psql

-- Dans psql :
CREATE USER billorax WITH PASSWORD 'ton_mot_de_passe';
CREATE DATABASE billorax OWNER billorax;
GRANT ALL PRIVILEGES ON DATABASE billorax TO billorax;
\q
💡
Note le mot de passe choisi — il sera nécessaire dans le fichier .env (DATABASE_URL).

Installer Nginx

bash
apt-get install -y nginx

# Démarrer et activer le service
systemctl enable --now nginx

# Vérifier que Nginx répond
curl -I http://localhost

Cloner le dépôt

bash
git clone https://github.com/Xeerac/billorax /var/www/billorax
cd /var/www/billorax

Variables d'environnement

Copie le fichier d'exemple et renseigne les variables obligatoires.

bash
cp .env.example .env
nano .env
💡
Les variables indispensables sont DATABASE_URL, NEXTAUTH_SECRET, NEXTAUTH_URL et les informations SMTP.

Installer les dépendances et migrer la base

bash
npm install
npx prisma db push
npx prisma db seed

Build et démarrage avec PM2

PM2 maintient l'application en vie et la redémarre automatiquement après un crash ou un reboot.

bash
# Installer PM2 globalement
npm install -g pm2

# Builder l'application
npm run build

# Démarrer avec PM2
pm2 start npm --name billorax -- start

# Sauvegarder pour le démarrage automatique
pm2 save
pm2 startup

Configurer le vhost Nginx

Crée un fichier de configuration pour ton domaine dans sites-available, puis active-le.

bash
# Créer le fichier de config
nano /etc/nginx/sites-available/billorax.com

Contenu du vhost Nginx

nginx
server {
    listen 80;
    server_name billorax.com www.billorax.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        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;
        proxy_cache_bypass $http_upgrade;
    }
}

Activer le vhost et obtenir un certificat SSL

bash
# Activer le vhost
ln -s /etc/nginx/sites-available/billorax.com /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

# Installer Certbot et obtenir le certificat
apt-get install -y certbot python3-certbot-nginx
certbot --nginx -d billorax.com -d www.billorax.com
Certbot configure automatiquement la redirection HTTP → HTTPS et renouvelle le certificat via un timer systemd.