Sites web
Le module Hosting permet à un admin de créer un site web sans écrire de fichier compose. Chaque site est un projet Docker Compose standard généré par le panel : il démarre avec docker compose up -d même si le panel est arrêté.
Réservé aux admins. Nécessite HOSTING_ENABLED=true et un Traefik en fonctionnement.
Activer le module
Ajoutez ces variables au .env de l'API, puis redémarrez l'API :
| Variable | Rôle | Défaut |
|---|---|---|
HOSTING_ENABLED | Active le module | false |
HOSTING_TRAEFIK_NETWORK | Réseau Docker externe partagé avec Traefik | obligatoire |
HOSTING_STACKS_DIRECTORY | Emplacement des projets compose | /data/compose |
HOSTING_SITES_DIRECTORY | Emplacement des fichiers des sites (en général le répertoire SFTP) | /data/websites/hosted |
Les deux répertoires doivent exister, être accessibles en écriture et montés au même chemin dans le conteneur de l'API (-v /data/compose:/data/compose). Sinon, l'API refuse de démarrer. Le réseau Traefik n'est pas vérifié au démarrage : s'il manque, les déploiements échouent.
Points d'entrée Traefik, résolveur de certificats et limites de ressources : voir la référence de configuration.
Créer un site
-
Ouvrez Hébergement → Sites et cliquez sur Nouvel hébergement.
-
Suivez les étapes :
Étape Ce que vous choisissez Type Le modèle (tableau ci-dessous) Site Nom, Répertoire du site (nouveau, ou existant et partagé avec des utilisateurs SFTP), Racine web, Domaines, HTTPS, Rediriger HTTP vers HTTPS PHP et ressources Version de PHP, limites de mémoire et de CPU, réglages php.ini, Modules PHPAvancé Routage (Symfony, Laravel ou règles personnalisées), Variables d'environnement, directives php.iniet virtual host supplémentaires, RéseauxRécapitulatif Vérifiez, puis Créer l'hébergement -
Suivez le déploiement dans l'onglet Dernière opération du site.


loch hosting create blog --template php-nginx --php 8.4 --domain blog.example.com --https --redirect-https
Toutes les options : guide CLI Hosting.
Modèles
| Modèle | Libellé | Pour |
|---|---|---|
php-nginx | PHP + Nginx | La plupart des applications PHP (WordPress, Laravel, Symfony) |
php-apache | PHP + Apache | Les applications qui reposent sur .htaccess |
nginx | Statique (Nginx) | Sites HTML, applications monopages |
apache | Statique (Apache) | Fichiers statiques avec prise en charge de .htaccess |
Les modèles utilisent les images webdevops. Versions de PHP : 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.4 (chacune aussi en -alpine) et 5.6. 8.4 est présélectionnée. Une version dont le support de sécurité est terminé porte le badge Obsolète.
Domaines et HTTPS
Traefik route les domaines vers le site. N'activez HTTPS qu'une fois le DNS de chaque domaine pointé vers le serveur : sinon le certificat ne peut pas être émis.
Limites
| Réglage | Règle |
|---|---|
| Nom | Lettres minuscules, chiffres, tirets, 32 caractères au plus. Non modifiable ensuite |
| Domaines | 20 au plus |
| Variables d'environnement | 100 au plus. Les variables gérées par le panel (PHP_*, WEB_DOCUMENT_ROOT, APPLICATION_*, CONTAINER_*, LD_*) sont refusées |
| Limite de mémoire | Désactivée (illimitée), ou de 64 Mo à HOSTING_MAX_MEMORY_MB |
| Limite de CPU | Désactivée (illimitée), ou de 0,1 à HOSTING_MAX_CPUS |
| Réseaux | 16 au plus |
Quand le conteneur atteint sa limite de mémoire, Docker le tue : laissez la limite désactivée sauf besoin réel de plafonner.
Réseaux privés
Un site atteint les services managés par les réseaux qu'il rejoint (par exemple svc-postgres-17). Quand le module services est activé, le réseau partagé services est présélectionné. Voir Réseaux privés.
Modifier un site
- Ouvrez le site, onglet Paramètres.
- Modifiez les réglages, puis cliquez sur Enregistrer et redéployer.
Le répertoire du site et le nom ne peuvent pas être modifiés. Changer les réseaux redéploie le site (quelques secondes d'interruption).
loch hosting update blog --domain www.blog.example.com
Redéployer, démarrer, arrêter
| Action | Effet |
|---|---|
| Redéployer | Recrée le conteneur à partir des réglages actuels. Cochez Télécharger la dernière image pour obtenir les correctifs PHP et serveur web |
| Démarrer / Arrêter / Redémarrer | Agit sur les conteneurs, sans modifier les fichiers |
loch hosting deploy blog --pull
Supprimer un site
- Cliquez sur Supprimer sur le site.
- Cochez Supprimer aussi les fichiers du site uniquement si vous voulez aussi effacer les fichiers.
- Saisissez le nom du site pour confirmer.
Les fichiers sont conservés par défaut. Leur suppression est refusée tant qu'un autre site utilise le même répertoire.
loch hosting delete blog --purge-data
La suppression des fichiers du site est irréversible. Les utilisateurs SFTP de ce site perdent tous leurs fichiers.
En cas d'échec du déploiement
- Modification : les fichiers précédents sont restaurés et redéployés. L'onglet Dernière opération affiche La configuration précédente a été restaurée. et la sortie de Docker Compose.
- Création ou Redéploiement : rien à restaurer. Lisez la sortie dans Dernière opération, corrigez les réglages, puis enregistrez de nouveau.


Bon à savoir
- Un fichier compose modifié à la main est marqué Modifiée manuellement. Enregistrer les réglages l'écrase alors (Écraser les modifications manuelles) ; un redéploiement ne l'exécute tel quel qu'après votre confirmation.
- Les conteneurs tournent sans port publié et avec
no-new-privileges. - Le module PHP ionCube est désactivé par défaut : il exécute du PHP chiffré et sert souvent aux logiciels malveillants.
- PHP en ligne de commande (crons) n'est jamais limité en temps ;
max_execution_timene s'applique qu'aux requêtes web. - Le panel ne touche qu'aux répertoires
hosted-*qu'il a générés : les stacks CI du même répertoire ne sont jamais modifiées.