Aller au contenu

Installation

Ce guide vous accompagne dans le déploiement de solyto sur votre propre serveur avec Docker.

Avant de commencer, assurez-vous d’avoir :

  • Un serveur (VPS, dédié, ou serveur personnel) avec au moins 2 Go de RAM et 10 Go de stockage
  • Docker et Docker Compose installés
  • Trois noms de domaine (ou sous-domaines) pointant vers l’adresse IP de votre serveur :
    • app.example.com — le frontend
    • api.example.com — l’API
    • dav.example.com — CalDAV/CardDAV
  • Une adresse e-mail valide pour les certificats TLS Let’s Encrypt
  • Les ports 80 et 443 ouverts sur votre pare-feu

Pointez vos trois noms de domaine vers l’adresse IP publique de votre serveur :

app.example.com A your.server.ip
api.example.com A your.server.ip
dav.example.com A your.server.ip

Attendez la propagation DNS avant de continuer (généralement quelques minutes, jusqu’à 24 heures).

Le moyen le plus rapide d’installer solyto est d’utiliser le script d’installation :

Fenêtre de terminal
curl -fsSL "https://raw.githubusercontent.com/solyto/selfhosted/main/setup.sh?$(date +%s)" | bash

Le script d’installation va :

  1. Cloner le dépôt selfhosted
  2. Créer les répertoires requis (storage/, bootstrap/cache/, etc.)
  3. Vous demander interactivement :
    • API_DOMAIN — par ex. api.example.com
    • APP_DOMAIN — par ex. app.example.com
    • DAV_DOMAIN — par ex. dav.example.com
    • ACME_EMAIL — votre e-mail pour Let’s Encrypt
  4. Générer tous les secrets requis (mots de passe de base de données, clé d’application, etc.)
  5. Écrire le tout dans .env et ./secrets/

Une fois le script terminé, démarrez les services :

Fenêtre de terminal
cd selfhosted
docker compose up -d

Si vous préférez tout faire manuellement :

Fenêtre de terminal
git clone https://github.com/solyto/selfhosted.git
cd selfhosted
Fenêtre de terminal
mkdir -p storage/app/public
mkdir -p storage/framework/cache
mkdir -p storage/framework/sessions
mkdir -p storage/framework/views
mkdir -p storage/logs
mkdir -p bootstrap/cache
chown -R www-data:www-data storage/

Copiez le fichier d’environnement d’exemple et modifiez-le :

Fenêtre de terminal
cp .env.example .env

Modifiez .env avec vos noms de domaine, votre fuseau horaire et vos préférences. Consultez Configuration pour toutes les options disponibles.

Créez le répertoire ./secrets/ et générez les fichiers de secrets requis :

Fenêtre de terminal
mkdir -p secrets
# Clé d'application
echo "base64:$(openssl rand -base64 32)" > secrets/app_key
# MariaDB
echo "solyto" > secrets/db_user
openssl rand -hex 32 > secrets/db_password
echo "solyto" > secrets/mariadb_user
openssl rand -hex 32 > secrets/mariadb_password
openssl rand -hex 32 > secrets/mariadb_root_password
# PostgreSQL (DAV)
echo "solyto_dav" > secrets/dav_db_user
openssl rand -hex 32 > secrets/dav_db_password
openssl rand -hex 32 > secrets/postgres_root_password
# Secrets optionnels (créer des fichiers vides)
touch secrets/solyto_bot_webhook_token
touch secrets/solyto_bot_telegram_token
touch secrets/hardcover_api_key
touch secrets/ai_api_key
touch secrets/mailgun_secret
touch secrets/vapid_public_key
touch secrets/vapid_private_key
touch secrets/bgg_api_key
touch secrets/tmdb_access_token
touch secrets/imgproxy_key
touch secrets/imgproxy_salt

Consultez Secrets Docker pour des détails sur chaque secret.

Fenêtre de terminal
docker compose up -d
Fenêtre de terminal
docker compose ps

Tous les services doivent afficher le statut Up ou Up (healthy).

Vérifier le point de contrôle de santé de l’API

Section intitulée « Vérifier le point de contrôle de santé de l’API »
Fenêtre de terminal
curl -s https://api.example.com/api/v1/health

Une réponse réussie signifie que l’API fonctionne et est connectée à la base de données.

Ouvrez https://app.example.com dans votre navigateur. Vous devriez voir la page de connexion de solyto.

La page d’inscription est disponible à https://app.example.com/auth/register — créez votre compte avec un nom d’affichage, une adresse e-mail et un mot de passe (minimum 12 caractères).

Vous pouvez aussi créer un utilisateur en ligne de commande :

Fenêtre de terminal
docker exec -it <project>-api so users:create

Remplacez <project> par votre PROJECT_NAME (par défaut solyto). Si vous avez changé le nom du projet, ajustez le nom du conteneur en conséquence.

Une vidéo étape par étape du processus d’installation est en préparation et sera intégrée ici.

Video coming soonInstaller solyto sur un serveur viergePointez vos domaines vers le serveur, exécutez le script d'installation et démarrez la pile applicative.~10 min