docs/quick-start.md

Démarrage rapide : déploiement minimal de Welley

Le chemin le plus court vers une instance Welley qui fonctionne sur un seul hôte Linux, chez n'importe quel fournisseur cloud ou sur votre propre matériel. Il n'utilise que les options que la CLI exige vraiment ; tout le reste garde sa valeur par défaut.

Ce que vous obtenez : la plateforme, le pipeline RAG, Nginx, Redis et un conteneur PostgreSQL inclus, avec un certificat Let's Encrypt émis pendant l'installation. Pas de base de données gérée, pas de CDN, pas de télémétrie ni d'intégration Slack : pour cela, consultez les guides AWS EC2 et DigitalOcean.

1. Prérequis

Un hôte Linux

  • Ubuntu 24.04 LTS (ou une distribution récente comparable).
  • 2 vCPU, 4 Go de RAM et 60 Go de disque pour commencer.
  • Une adresse IPv4 publique qui ne change pas.
  • Les ports TCP 80 et 443 ouverts en entrée depuis internet, et le port 22 ouvert pour vous. Le port 80 est nécessaire pendant l'installation pour le défi de certificat, puis pour le renouvellement hebdomadaire.
  • Un utilisateur non root avec sudo : le guide exécute tout avec cet utilisateur, désigné plus bas par <user>.

DNS

Deux enregistrements, tous deux pointant vers l'IP publique de l'hôte :

Enregistrement Rôle
<domain> le site lui-même
storage.<domain> les fichiers envoyés et les fichiers statiques, car cette configuration n'a pas de CDN

Créez-les avant de commencer : la CLI vérifie que les deux noms pointent vers cet hôte et s'arrête dans le cas contraire.

Enregistrements DNS pour l'e-mail

Le domaine de votre adresse --smtp-from a besoin d'enregistrements d'authentification e-mail. Sans eux, Gmail, Outlook et d'autres grands fournisseurs suppriment souvent les messages destinés à des personnes qui n'ont encore jamais rien reçu de vous. Cela concerne toutes les invitations et toutes les confirmations d'inscription, et le message n'arrive même pas dans les spams, alors que votre fournisseur SMTP l'indique comme envoyé.

Enregistrement Type Valeur
<mail-domain> TXT SPF, par exemple v=spf1 include:<provider> ~all ; prenez la valeur exacte chez votre fournisseur SMTP
_dmarc.<mail-domain> TXT DMARC, par exemple v=DMARC1; p=none; rua=mailto:dmarc@<mail-domain>
<selector>._domainkey.<mail-domain> TXT ou CNAME DKIM, généré par votre fournisseur SMTP quand vous vérifiez le domaine

Un domaine ne peut avoir qu'un seul enregistrement SPF. S'il en a déjà un, ajoutez-y votre fournisseur au lieu d'en créer un second. create vous avertit si SPF ou DMARC manque, mais il ne s'arrête pas. Il ne peut pas vérifier DKIM, car le nom du sélecteur dépend de votre fournisseur.

Ne sautez pas DKIM. Beaucoup de fournisseurs, dont Amazon SES, envoient par défaut avec leur propre domaine comme expéditeur d'enveloppe. SPF vérifie alors le domaine du fournisseur et non le vôtre, donc il ne compte pas pour DMARC, et seul DKIM peut faire passer DMARC. Vérifiez l'état de DKIM dans la console de votre fournisseur. Dans Amazon SES, il se trouve sous Verified identities, puis <mail-domain>, puis DKIM et doit indiquer Successful. SES Easy DKIM publie trois enregistrements CNAME nommés <token>._domainkey.<mail-domain>.

Identifiants SMTP

Un hôte, un utilisateur, un mot de passe et une adresse d'expéditeur, chez n'importe quel fournisseur. La plateforme en a besoin pour la confirmation par e-mail et la récupération du mot de passe, et la CLI refuse d'installer sans eux. Les valeurs par défaut prévoient un envoi par soumission SMTP avec STARTTLS sur le port 587.

Une adresse e-mail d'administrateur pour la première connexion et la récupération du mot de passe.

2. Installer Docker

Suivez les instructions officielles pour votre distribution : Install Docker Engine. Ensuite, autorisez votre utilisateur à communiquer avec le démon :

sudo usermod -aG docker <user>

Déconnectez-vous puis reconnectez-vous, et vérifiez que les deux éléments sont en place :

docker ps
docker compose version

3. Télécharger la CLI

Choisissez la valeur de platform qui correspond à votre hôte :

linux/amd64

curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=linux/amd64" -o wlycli
chmod +x wlycli
./wlycli -v
  
linux/arm64

curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=linux/arm64" -o wlycli
chmod +x wlycli
./wlycli -v
  
darwin/arm64

curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=darwin/arm64" -o wlycli
chmod +x wlycli
./wlycli -v
  
darwin/amd64

curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=darwin/amd64" -o wlycli
chmod +x wlycli
./wlycli -v
  

4. Déployer

./wlycli deploy create \
-d example.com \
-e admin@example.com \
--smtp-host smtp.example.com \
--smtp-user "$MAIL_USER" \
--smtp-password "$MAIL_PASSWORD" \
--smtp-from noreply@example.com

Ces six options forment l'ensemble des options obligatoires. La commande vérifie le DNS, écrit les fichiers de déploiement, émet le certificat avec Certbot et démarre les conteneurs ; comptez plusieurs minutes.

Les valeurs par défaut que vous acceptez ici :

Paramètre Valeur par défaut
Répertoire d'installation ~/.welley/<project>, où <project> est le domaine dont chaque caractère non alphanumérique est remplacé par _ (ainsi example.com devient example_com)
Base de données conteneur PostgreSQL inclus, données dans le répertoire d'installation
Certificats Let's Encrypt via Certbot, renouvelés automatiquement une fois par semaine
Fichiers envoyés et fichiers statiques servis depuis https://storage.<domain>
Mises à jour chaîne stable, vérifiée chaque jour, appliquée sans interruption lorsque c'est possible

5. Première connexion

Le mot de passe administrateur généré est écrit dans le journal de la plateforme :

docker logs example_com-platform-blue-1 | grep "Auto-init complete"

Ouvrez https://<domain>, connectez-vous avec l'adresse e-mail d'administrateur que vous avez indiquée avec -e, et changez le mot de passe tout de suite. Considérez le journal comme secret tant que ce n'est pas fait.

6. Vérifier le résultat

docker ps

Vous devriez voir un conteneur pour chacun de ces services : nginx, platform-blue, rag-pipeline-blue, postgres, redis, autoheal et snoopy, tous nommés <project>-<service>-1.

En cas de problème

create ne se lancera pas une seconde fois tant que le répertoire du projet ou ses conteneurs existent. Si les fichiers sont corrects et que seuls certains conteneurs n'ont pas démarré, recréez-les sans rien perdre :

./wlycli deploy restart -d example.com

Si le déploiement lui-même doit être refait, supprimez-le et recommencez. Cela supprime la base de données incluse, ainsi que tout le reste :

./wlycli deploy delete -d example.com --yes-please-delete-all-the-data

Autres documents