Hébergement web : prise en main
Tout ce qui suit se fait depuis Compte → Hébergement sur medialab.works. Les formules et les prix figurent sur la page de l’hébergement ; ce qui est inclus est décrit dans la présentation de l’hébergement.
1. Commander une formule
- Ouvrez la page de l’hébergement et choisissez une formule et la période de facturation (mensuelle ou annuelle).
- Ajoutez des options si besoin : plus de disque, de vCPU ou de RAM, ou la sauvegarde étendue. Vous pourrez les modifier plus tard.
- Saisissez votre adresse e-mail (ou connectez-vous si vous avez déjà un compte ; sinon votre compte client est créé lors du paiement et le mot de passe temporaire arrive par e-mail), cochez la case pour accepter les Conditions générales, la Politique d’utilisation acceptable et l’Accord de traitement des données, puis payez avec Stripe.
Votre compte d’hébergement est créé automatiquement après le paiement, généralement en quelques minutes, et vous recevez un e-mail. La garantie satisfait ou remboursé de 30 jours commence à votre premier paiement.
2. Ajouter un site web
Dans Sites → Ajouter un site :
- Nom : lettres minuscules, chiffres et tirets. Il devient le dossier
www-data/<nom>dans votre dossier personnel. - Technologie : PHP 8.1–8.5, Node.js 22 ou 24, Python 3.12 (Node.js et Python dès Standard) ou statique.
- Serveur web (PHP uniquement) : Apache lit les fichiers
.htaccess, comme la plupart des hébergements mutualisés, et c’est le choix sûr pour WordPress et la plupart des applications PHP livrées avec des règles de réécriture dans.htaccess. nginx est plus léger et plus rapide pour les fichiers statiques, mais ignore.htaccess; WordPress y fonctionne sans modification. Vous choisissez pour chaque site. - Domaine (facultatif) : votre domaine ou un sous-domaine d’un domaine du compte (par exemple
blog.votredomaine.fr) ; l’enregistrement DNS du sous-domaine est créé automatiquement. Sans domaine, le site fonctionne immédiatement sur son adresse de prévisualisation,<site>-<utilisateur>.hosting.medialab.works(en HTTP uniquement, jusqu’à ce que vous déplaciez le domaine). - Racine web (PHP et statique) : le dossier de
www-data/<site>servi aux visiteurs,publicpar défaut ;.désigne le dossier du site lui-même.
À la création, le dossier du site reçoit une page d’accueil (index.php ou index.html) qui montre que le domaine atteint le serveur, où le site est hébergé et quelle version de PHP tourne. Remplacez-la par vos fichiers.
Où placer vos fichiers :
| Technologie | Dossier |
|---|---|
| PHP, statique | www-data/<site>/public (ou la racine web choisie) |
| Node.js, Python | www-data/<site>/app |
3. Connecter votre domaine
Lorsque vous ajoutez un domaine (avec un site ou dans Domaines), nous créons pour vous :
- une zone DNS chez Cloudflare, dans notre compte, avec les enregistrements web et mail (MX, SPF, DKIM, DMARC, autoconfig) ;
- le domaine de messagerie sur notre serveur mail, avec sa clé DKIM ;
- le site sur le serveur, avec un certificat SSL dès que le domaine pointe vers nous.
Ce que vous faites : auprès de la société où vous avez enregistré le domaine (le registraire), remplacez les serveurs de noms par les deux affichés dans Compte → Hébergement → Domaines. Le changement prend généralement de quelques minutes à quelques heures, parfois jusqu’à 48 heures. La page du domaine affiche chaque étape ; dès que les serveurs de noms sont visibles, la zone devient active et le certificat est émis automatiquement. Vérifier le DNS et Émettre le certificat permettent de réessayer immédiatement.
Vous gardez votre fournisseur DNS actuel ? Faites plutôt pointer un enregistrement A vers l’adresse IP indiquée dans le compte, et ajoutez vous-même les enregistrements mail si vous voulez l’e-mail sur le domaine (le tableau des enregistrements DNS du compte les liste). Sans nos serveurs de noms, les enregistrements DNS sont sous votre responsabilité.
4. Déployer un site PHP (exemple WordPress)
- Créez un site avec PHP 8.4 (ou la version dont votre application a besoin) et Apache.
- Créez une base MariaDB dans Bases de données (par exemple
wp; son nom complet devient<utilisateur>_wp). Le mot de passe de votre utilisateur de base de données est affiché une seule fois, à la création de votre première base MariaDB : enregistrez-le. - Envoyez WordPress dans
www-data/<site>/publicdepuis Fichiers (une archive.zip, puis Extraire), par SFTP (section 8) ou par SSH. - Dans
wp-config.php, utilisez :DB_NAME:<utilisateur>_wpDB_USER: votre utilisateur de base de données (le même que l’utilisateur de votre compte)DB_PASSWORD: le mot de passe enregistréDB_HOST:mlw-db:3390
- Ouvrez l’adresse du site et terminez l’installation de WordPress.
Les autres applications PHP (Laravel, Symfony, Drupal, WHMCS, Nextcloud …) fonctionnent de la même façon. Envoyez le projet dans www-data/<site>, puis, dans Réglages à côté du site, cliquez sur Détecter : nous reconnaissons l’application et vous proposons sa racine web (public pour Laravel et Symfony, web pour Drupal avec Composer, le dossier de l’application pour WordPress, WHMCS ou Nextcloud). Les fichiers en dehors de la racine web (vendor/, storage/, .env, les données de Nextcloud, les dossiers attachments, downloads et templates_c de WHMCS) restent accessibles à l’application, mais pas depuis le navigateur.
5. Applications Node.js et Python
Envoyez votre application dans www-data/<site>/app. Elle doit écouter sur le port indiqué par la variable d’environnement PORT (8080 dans le conteneur) sur toutes les interfaces (0.0.0.0), et pas seulement sur localhost. Le serveur web et le certificat sont placés devant elle ; vous n’ouvrez aucun port vous-même.
Comment l’application est démarrée, dans cet ordre :
- Node.js : un
start.shexécutable dansapp/; sinonnpm startdepuispackage.json(les dépendances sont installées avecnpm ci --omit=devsinode_modulesest absent) ; sinonserver.js,index.js,app.jsoumain.js. - Python : un
start.shexécutable ; sinonasgi.py(servi par des workers uvicorn dans gunicorn) ; sinonapp.pyavec un objetappouwsgi.pyavecapplication(gunicorn).requirements.txtest installé dans un environnement virtuel, et réinstallé au démarrage lorsque le fichier a changé.
Après l’envoi d’une nouvelle version, cliquez sur Redémarrer à côté du site. Tant qu’aucune application n’est trouvée, le site affiche une page d’attente qui indique ce qui manque.
6. Fichiers et journaux
Fichiers, dans Compte → Hébergement, est un gestionnaire de fichiers pour www-data (vos sites), logs (les journaux) et restore (les copies restaurées) :
- parcourez les dossiers, créez, renommez, déplacez et supprimez (la suppression demande de saisir le nom pour confirmer) ;
- téléversez des fichiers de toute taille permise par votre formule (les gros fichiers sont envoyés par morceaux) et extrayez des archives
.zip,.tar.gz,.tar.bz2ou.tar.xz, avec l’option de vider d’abord le dossier de destination ; - modifiez les fichiers texte (jusqu’à 1 Mo) directement dans le navigateur ;
- téléchargez un fichier ou un dossier entier en
.zip: l’archive est préparée en arrière-plan et apparaît dans Opérations et téléchargements, où elle reste 24 heures.
Les journaux de chaque site se trouvent dans logs/<site>/ : nginx/ ou apache/ (access.log, error.log) et php/ (ou node/, python/) pour la sortie de l’application. Vous les voyez aussi dans Réglages → Journaux, à côté du site, et par SFTP.
Toujours depuis Réglages, vous pouvez arrêter et démarrer un site (tant qu’il est arrêté, les visiteurs voient une page « indisponible »), télécharger son archive ou le restaurer depuis une archive que vous envoyez.
7. Bases de données
- MariaDB et PostgreSQL. Toutes vos bases d’un même type partagent un seul utilisateur de base de données, nommé comme votre compte. Son mot de passe est affiché une seule fois, à la première base de ce type ; Nouveau mot de passe en crée un autre pour toutes les bases de ce type (mettez ensuite vos sites à jour).
- Depuis vos sites (dans les conteneurs), l’hôte de la base est
mlw-db, port 3390 pour MariaDB et 5490 pour PostgreSQL. - Par SSH (dès Standard), les mêmes bases sont accessibles sur
127.0.0.1, mêmes ports, par exemplemysql -h 127.0.0.1 -P 3390 -u <utilisateur> -poupsql -h 127.0.0.1 -p 5490 -U <utilisateur> <utilisateur>_db. - L’éditeur web (Adminer, pour MariaDB et PostgreSQL) s’ouvre avec Éditeur à côté de la base : vous êtes connecté directement, avec un accès temporaire valable 4 heures, sans le mot de passe de la base, et vous ne voyez que les bases de votre compte.
- Export (
.sql.gz) et import (.sql,.sql.gz; pour PostgreSQL aussi.dumpissu depg_dump -Fc) depuis la même liste. L’import s’exécute avec les droits de votre compte : les tables de même nom sont remplacées, exportez donc d’abord la base si vous voulez en garder une copie. - Les bases ne sont pas accessibles directement depuis Internet.
8. SFTP et SSH
Le serveur, le port (22) et le nom d’utilisateur figurent dans Compte → Hébergement → SFTP et SSH.
- Start : SFTP avec mot de passe. Créer un nouveau mot de passe l’affiche une seule fois ; l’ancien cesse de fonctionner.
- Standard, Pro et Business : SFTP et SSH avec vos clés SSH (la connexion par mot de passe est désactivée). Ajoutez votre clé publique (
ssh-ed25519,ssh-rsaouecdsa-…) et connectez-vous avec la commande affichée. Git est disponible par SSH.
Votre dossier personnel contient www-data (vos sites), logs (les journaux des sites) et restore (les copies restaurées). Ne placez pas de secrets dans la racine web.
9. E-mail
- Ajoutez d’abord le domaine ; les boîtes mail peuvent être créées une fois sa configuration mail terminée (la page du domaine affiche l’étape).
- Dans E-mail, créez une boîte mail et choisissez son espace. Le mot de passe est affiché une seule fois.
- La plupart des applications de messagerie se configurent seules à partir de l’adresse (autoconfig). Si la vôtre le demande, le serveur entrant (IMAP, port 993) et sortant (SMTP submission, port 587) est l’hôte mail de l’enregistrement MX de votre domaine, listé dans le tableau des enregistrements DNS.
Envoi depuis vos sites : envoyez par SMTP sur le port 587 avec l’une de vos boîtes mail (dans WordPress, avec une extension SMTP). L’envoi direct sur le port 25 est bloqué pour tous les comptes d’hébergement.
10. Sauvegardes et restauration
- Une sauvegarde de vos fichiers et bases de données est faite chaque nuit et conservée selon votre formule : Start 7 jours, Standard 14 jours, Pro 14 quotidiennes + 4 hebdomadaires, Business 30 quotidiennes + 12 mensuelles. L’option sauvegarde étendue vous donne la conservation de la formule supérieure (Start → 14 jours, Standard → 14 quotidiennes + 4 hebdomadaires, Pro → 30 quotidiennes + 12 mensuelles).
- Les sauvegardes sont chiffrées et stockées sur un disque séparé du même serveur, et non dans un second emplacement. Gardez votre propre copie de tout ce qui est important.
- Restaurer vous-même dans Sauvegardes : choisissez la copie et ce qu’il faut restaurer (le compte entier, un site ou une base de données). Par défaut, les fichiers sont copiés dans un nouveau dossier,
restore/, et vos fichiers actuels restent intacts ; cochez Remplacer les fichiers actuels pour restaurer sur place. La restauration d’une base remplace la base par sa copie. - Sauvegarder maintenant lance une sauvegarde en dehors du planning (au maximum 3 fois par jour), par exemple avant une mise à jour.
- Téléchargez depuis une sauvegarde un site, tous les sites ou une base de données : le fichier apparaît dans Opérations et téléchargements.
- Restauration par notre équipe : décrivez ce qu’il faut restaurer et à quelle date. La première restauration de chaque mois est gratuite ; les suivantes coûtent 10 € chacune.
11. Limites et utilisation
La page du compte affiche le disque, les fichiers (inodes), le CPU et la mémoire utilisés par rapport à votre formule. Le CPU et la mémoire sont des limites strictes : une application qui a besoin de plus est ralentie ou arrêtée, jamais facturée en supplément. Le nombre de sites, de bases de données et de boîtes mail suit votre formule ; sur Business, ils sont illimités dans le cadre d’un usage raisonnable.
Au-delà de la limite de disque ou de fichiers : nous vous prévenons par e-mail, et vous avez 7 jours pour libérer de l’espace ou ajouter du disque (l’option +10 Go). Après 7 jours, les envois sont bloqués (le SFTP passe en lecture seule) jusqu’à ce que le compte repasse sous la limite ; vos sites restent en ligne. Lorsque l’utilisation repasse sous la limite, les envois sont de nouveau autorisés automatiquement, lors de la vérification quotidienne suivante.
12. Changer de formule ou résilier
- Modifier la formule ou les options dans Compte → Hébergement : vous voyez d’abord le prix. Lorsque vous passez à une formule supérieure ou ajoutez des options, vous ne payez que la différence pour le reste de la période en cours (au prorata), et les nouvelles limites s’appliquent en moins d’une minute. Une formule inférieure n’est acceptée que si vos sites, bases de données, boîtes mail et votre disque y tiennent.
- Résiliez depuis la même page. Le compte reste actif jusqu’à la fin de la période payée, puis il est suspendu et supprimé 30 jours plus tard ; la sauvegarde finale est conservée pendant ces 30 jours. Vous pouvez annuler la résiliation avant la fin de la période.
- Paiement échoué : vos sites restent en ligne pendant le délai de grâce de 7 jours, pendant lequel la carte est de nouveau débitée. Si le paiement échoue toujours, le compte est suspendu (pas supprimé) et redémarre dès que la facture est payée.
- Remboursement : dans les 30 jours suivant votre premier paiement, demandez un remboursement depuis votre compte (ticket) ou à contact@medialab.works ; le compte est ensuite fermé.
Des questions ? Consultez les questions fréquentes ou contactez-nous.