Documentation

Tout ce qu'il faut pour installer, configurer et utiliser NHC Panel.

🚀 Quick Start
Prérequis
Installation
# En tant que root :
curl -sSL https://nhcpanel.ca/install.sh | bash
Le script installe automatiquement Nginx, PHP (8.2 + 8.3), MariaDB, PowerDNS et acme.sh. Si ces services sont déjà installés, le script les détecte et ne les écrase pas.
⚙️ Après l'installation

À la fin de l'installation, le script affiche vos credentials :

Panel directory: /opt/nhcpanel
Admin port: 2087
Client port: 2083
API key: a1b2c3d4e5f6...
DB root pass: XyZ123...

⚠️ Sauvegardez ces credentials! Ils sont aussi dans /opt/nhcpanel/config/panel.conf

🔌 API REST
Toutes les requêtes nécessitent le header Authorization: Bearer {api_key}
MéthodeEndpointDescription
POST /api/accounts Créer un compte
GET /api/accounts Lister les comptes
GET /api/accounts/{id} Détails d'un compte
POST /api/accounts/{id}/suspend Suspendre un compte
POST /api/accounts/{id}/unsuspend Réactiver un compte
POST /api/accounts/{id}/terminate Terminer un compte
POST /api/domains Ajouter un domaine
GET /api/domains/{account_id} Lister les domaines
DELETE /api/domains/{id} Supprimer un domaine
POST /api/databases Créer une base de données
GET /api/databases/{account_id} Lister les bases de données
DELETE /api/databases/{id} Supprimer une base de données
POST /api/ssl/issue Émettre un certificat SSL
GET /api/ssl/{domain} Statut SSL d'un domaine
POST /api/php/switch Changer la version PHP
GET /api/php/versions Lister les versions PHP installées
GET /api/dns/{domain} Lister les records DNS
POST /api/dns/{domain} Ajouter un record DNS
GET /api/files/list?account_id=1&path=/ Lister un répertoire
POST /api/backups/create Créer un backup
GET /api/stats/{account_id} Métriques d'utilisation
GET /api/server/status Statut du serveur
GET /api/server/services Statut des services
📝 Exemple : Créer un compte
# Créer un compte d'hébergement
curl -X POST https://server:2087/api/accounts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "johndoe",
"domain": "example.com",
"password": "SecurePass123!",
"package": "Default",
"email": "[email protected]"
}'
# Réponse :
{
"success": true,
"account": {
"id": 1,
"username": "johndoe",
"domain": "example.com",
"home_dir": "/home/johndoe",
"ip": "203.0.113.10",
"nameservers": ["ns1.server.com", "ns2.server.com"]
}
}
🔗 Intégration NHC Portal

NHC Panel s'intègre nativement avec NHC Portal (plateforme de facturation pour hébergeurs). Le provisioning est automatique :

  1. Ajoutez votre serveur NHC Panel dans Admin → WHM Servers (type: nhcpanel)
  2. Créez un produit avec provisioning_type = "nhcpanel"
  3. Quand un client paie → le compte est créé automatiquement sur votre serveur
  4. Suspension, réactivation et terminaison sont aussi automatiques

C'est le même flow que cPanel/WHM, mais sans licence.

📄 Fichier de configuration
Le fichier principal est /opt/nhcpanel/config/panel.conf
[panel]
hostname = server.example.com
admin_port = 2087
api_key = your_api_key_here
[database]
host = localhost
name = nhcpanel
[dns]
ns1 = ns1.example.com
ns2 = ns2.example.com
[limits_default]
disk_mb = 5120
bandwidth_mb = 102400
🏗️ Architecture v2.0
NHC Panel utilise une architecture router + views + handlers. Chaque page = 1 fichier, chaque action = 1 handler.
/opt/nhcpanel/
├── public/
│ ├── admin/index.php # Router admin (port 2087)
│ ├── client/index.php # Router client (port 2083)
│ ├── assets/panel.css # CSS dark theme
│ └── phpmyadmin/ # phpMyAdmin 5.2.1
├── app/
│ ├── views/client/ # 77 views client
│ ├── views/admin/ # 60 views admin
│ ├── handlers/client/ # 48 handlers client
│ └── handlers/admin/ # 35 handlers admin
├── api/ # API REST (15 controllers)
├── config/bootstrap.php # DB, constants, helpers
├── daemon/ # Bandwidth, backup, license crons
├── scripts/deploy.sh # Deploiement en 1 commande
└── schema.sql # Schema MySQL
👑 Admin Panel (port 2087) — 60 pages
Gestion
  • Dashboard avec stats serveur
  • Comptes (CRUD + provisioning reel)
  • Packages (disk, BW, limites)
  • DNS Zones (PowerDNS)
  • Backups + Backup Config
  • Resellers + ACL
  • Account Search / Transfer
  • Migration cPanel/DirectAdmin
Serveur
  • Service Manager (start/stop/restart)
  • Firewall (iptables) + IP Deny
  • Process Manager (kill)
  • PHP Manager (install, FPM)
  • MySQL Manager (processlist, variables)
  • Nginx Config Editor
  • Email Config (Postfix, DKIM)
  • Server Monitoring + Cleanup
Securite
  • Security Advisor (9 checks)
  • Admin 2FA (TOTP)
  • Brute Force Protection
  • Audit Log (filtres + CSV)
  • Auto-Suspend (disk/BW)
  • DNSSEC
SSL & DNS
  • Auto-SSL (acme.sh)
  • SSL Overview (tous les certs)
  • DNS Cluster (slave nodes)
  • Webhooks (Slack, Discord)
  • System Updates
  • CloudLinux Integration
👤 Client Panel (port 2083) — 77 pages
Hebergement
  • Dashboard cPanel-style (categories + stats)
  • Domains + Aliases + Wildcard
  • MySQL Databases + DB Tools
  • File Manager (upload, edit, rename, chmod, compress)
  • FTP Accounts
  • Cron Jobs + Presets + Log
  • Backups + Restore
  • DNS Zone Editor
Email
  • Email Accounts (CRUD)
  • Forwarders + Catch-All
  • Autoresponders
  • Email Filters (Sieve)
  • Email Deliverability (SPF/DKIM/DMARC)
  • Track Delivery (maillog)
  • Email Disk Usage
  • Webmail (Roundcube port 2096)
Developpement
  • Web Terminal (SSH in browser)
  • WordPress Toolkit
  • App Installer (8 apps + WP-CLI)
  • Quick Installer (one-click)
  • Git (clone, pull, deploy)
  • MultiPHP per Domain
  • PHP INI Editor
  • Node.js / Python
Securite & Outils
  • SSL/TLS (Let's Encrypt)
  • SSH Keys + 2FA
  • IP Blocker + Hotlink Protection
  • Virus Scanner (ClamAV)
  • Security Log
  • PHP Error Viewer
  • Network Tools (dig, ping, whois)
  • Site Publisher (5 templates)
🚀 Deploiement
Apres chaque mise a jour du panel, deployez en une commande :
bash /opt/nhcpanel/scripts/deploy.sh
Le script telecharge le tar.gz, extrait, fixe les permissions (phpMyAdmin, sessions, signature), verifie la syntaxe PHP et affiche le nombre de views/handlers deployes.
🔌 Ports
PortServiceDescription
2087Admin PanelWHM-like — gestion serveur, comptes, packages
2083Client PanelcPanel-like — gestion hebergement client
2096WebmailRoundcube webmail
80/443WebSites web des clients (Nginx)
53DNSPowerDNS authoritative
25/587SMTPPostfix mail server
993/143IMAPDovecot mail retrieval
Écosystème NHC : 🌐 NHC Hosting 🚀 NHC Portal 🖥️ NHC Panel 🔑 NHC Manager 📡 NHC Uptime 🛡️ NHC Security