L'outil dxfl a été développé spécifiquement pour déployer des sites web chez Deuxfleurs.
C'est l'option recommandée si vous êtes à l'aise avec la ligne de commande.
En bonus, dxfl vous permet de configurer facilement des redirections web ou le support des CORS, en plus de déployer les fichiers de votre site.
Installer dxfl
Prérequis: avoir installé npm.
npm install -g dxfl
Premier déploiement
Commencez par vous connecter avec votre nom d'utilisateur Deuxfleurs, par exemple john ici :
dxfl login john
Vous pouvez alors lister les sites webs créés via l'interface Guichet :
dxfl list
Et enfin, pour déployer le contenu d'un dossier sur un site, par exemple ici le dossier public vers le site web john.deuxfleurs.eu :
dxfl deploy john.deuxfleurs.eu public
La commande affiche les changement prévus, confirmez ensuite avec y pour les appliquer. Votre site est déployé !
Référence des commandes
dxfl login <nom utilisateur>: se connecter avec le nom d'utilisateur indiqué. Il s'agit du même nom d'utilisateur et mot de passe que pour Guichet. Les autres commandes dedxflrequièrent de s'être précédemment connecté.dxfl logout: se déconnecter.dxfl list: liste les sites web de l'utilisateur connecté. Pour créer, supprimer ou modifier un site web, passer par l'interface Guichet.dxfl deploy <site> <dossier>: déploie le contenu du dossier<dossier>vers le site web<site>. Le nom du site web<site>correspond au nom tel que renvoyé pardxfl list.- avec l'option
--yes: déploie le site web sans demander confirmation; - avec l'option
--dry-run: affiche les changements qu'effectuerait un déploiement mais ne fait aucun changement.
- avec l'option
dxfl empty <site>: supprime tous les fichiers contenus dans le site web<site>. Requis avant de pouvoir supprimer un site web dans l'interface Guichet.
Configurer des redirections
Pour configurer des redirections web (afin de rediriger une ou plusieurs pages de votre site vers des adresses différentes), il faut créer un fichier deuxfleurs.toml placé dans le même dossier depuis lequel vous lancez la
commande dxfl deploy.
Dans ce fichier deuxfleurs.toml, ajoutez un section redirects pour chaque redirection, en suivant un des exemples ci-dessous.
Redirection simple
Par exemple, pour rediriger une unique adresse à l'intérieur du même site :
# redirige john.deuxfleurs.eu/ancien/chemin -> john.deuxfleurs.eu/nouveau/chemin
[[redirects]]
from = "ancien/chemin"
to = "nouveau/chemin"
Il est également possible de rediriger vers un site externe :
# redirige john.deuxfleurs.eu/ancien/chemin -> https://john-autre-site.fr/nouvelle-page
[[redirects]]
from = "ancien/chemin"
to = "https://john-autre-site.fr/nouvelle-page"
Redirection multiple
Il est possible de définir une redirection qui s'applique à plusieurs chemins à
la fois, tant que ceux-ci ont un préfixe commun.
Par exemple, pour rediriger toutes les adresses de la forme john.deuxfleurs.eu/ancien/XXX (pour n'importe quel XXX) vers john.deuxfleurs.eu/nouveau/XXX (en remplaçant par le même XXX) :
[[redirects]]
from = "ancien/*"
to = "nouveau/*"
Ici aussi il est possible de rediriger vers un autre site :
[[redirects]]
from = "ancien/*"
to = "https://john-autre-site.fr/nouveau/*"
Ceci redirigera toutes les adresses de la forme john.deuxfleurs.eu/ancien/XXX vers https://john-autre-site.fr/nouveau/XXX.
Ou encore, il est possible de rediriger vers une unique adresse :
[[redirects]]
from = "ancien/*"
to = "perdu.html"
Ceci redirigera toutes les adresses de la forme john.deuxfleurs.eu/ancien/XXX vers john.deuxfleurs.eu/perdu.html.
Options de redirection
Le comportement des redirections peut être configuré par les options status et force, à spécifier dans le bloc [[redirects]] :
status(par exemple:status = 301, valeur par défaut:302): code HTTP à utiliser lors de la redirection (NB: n'est spécifiable que pour les redirections multiples, pour les redirections simples, le code est forcément301).force(par exemple:force = true, valeur par défaut:false): spécifie s'il faut toujours appliquer la redirection. Par défaut, une redirection multiple ne s'applique pas si un fichier existe à l'adresse demandée et pourrait être fourni directement. Spécifier la valeurtrueannule ce comportement et applique la redirection dans tous les cas.
Configurer sa page d'index et d'erreur
Ici aussi, la configuration se fait en éditant un fichier deuxfleurs.toml placé dans le même dossier depuis lequel vous lancez la commande dxfl deploy.
Page d'index
Il est possible de configurer le nom de la page d'"index" utilisé lors d'une requête à un dossier. Par défaut, la valeur est index.html : une requête sur john.deuxfleurs.eu/ renverra la page john.deuxfleurs.eu/index.html. De même, une requête sur john.deuxfleurs.eu/articles/ renverra la page john.deuxfleurs.eu/articles/index.html.
Il est possible de changer la valeur index.html utilisée par défaut en spécifiant, dans le fichier deuxfleurs.toml :
# utilise "mon-index.html" au lieu de `index.html"
index_page = "mon-index.html"
Page d'erreur
Il est également possible de configurer le chemin vers la "page d'erreur", qui est affichée lorsqu'un utilisateur visite une adresse non-existante.
Par défaut, ce chemin est error.html : un utilisateur visitant une adresse non-existante verra la page stockée à john.deuxfleurs.eu/error.html affichée. (Attention: il faut cependant qu'elle existe, c'est à dire l'avoir créée dans le dossier public puis déployée.)
Pour changer ce chemin, spécifier dans deuxfleurs.toml :
error_page = "ma-page-d_erreur.html"
Configurer les CORS
Ici aussi, ça se passe dans le fichier deuxfleurs.toml. Pour voir la syntaxe
supportée, voir le README de dxfl (en
anglais).
Utiliser dxfl de manière automatisée (sans login)
dxfl login est utile pour déployer votre site web depuis votre propre ordinateur.
Pour déployer votre site web de manière automatisée (par exemple via un système d'intégration continue), il est possible d'appeler dxfl deploy (ou dxfl empty) et de spécifier les identifiants d'accès au site web via des variables d'environnement :
AWS_ACCESS_KEY_IDpour l'identifiant de clef S3;AWS_SECRET_ACCESS_KEYpour la clef secrète S3.
Les valeurs de ces variables sont indiquées dans l'interface de Guichet pour votre site web, dans l'onglet "S3".
Nous fournissons des exemples de configuration pour l'intégration continue avec Woodpecker et Github Actions qui peuvent vous aider à démarrer.
En savoir plus
- Code source de
dxfl: https://git.deuxfleurs.fr/deuxfleurs/dxfl