Aller au contenu

Serveur libSQL auto-hébergé

Le projet sqld (« démon SQL ») est un mode serveur pour libSQL créé par Turso. Ce guide explique comment configurer sqld pour qu’il fonctionne depuis un conteneur Docker pour votre projet StudioCMS.

Apprenez-en plus sur sqld en utilisant leur Documentation^

La structure finale du fichier ressemblera à ceci si vous effectuez un test local :

  • docker-compose.yml
  • Répertoiredata/
  • Répertoirekeys/
  • Répertoiremon-projet-studiocms/
    • astro.config.mjs
    • studiocms.config.mjs
    • package.json
    • Répertoiresrc/

Depuis le répertoire keys, exécutez la commande suivante pour créer une nouvelle paire de clés Ed25519 encodées en PKCS#8 :

Fenêtre de terminal
openssl genpkey -algorithm Ed25519 -out ./libsql.pem

Extrayez ensuite la clé publique avec :

Fenêtre de terminal
openssl pkey -in ./libsql.pem -pubout -out ./libsql.pub

Cela générera une nouvelle paire de clés PKCS#8 qui sera utilisée pour le serveur sqld.

Accédez au répertoire de votre projet StudioCMS et exécutez la commande suivante :

Fenêtre de terminal
npm run studiocms crypto gen-jwt "../keys/libsql.pem" -e 31556926

Le résultat est le jeton d’authentification JWT chiffré avec votre clé privée au format standard et encodé en tant que base64URL, qui sera utilisé pour l’authentification libSQL. Gardez à l’esprit que le token sera valable 1 an !

Mettez à jour votre fichier .env de StudioCMS avec les éléments suivants :

Section intitulée « Mettez à jour votre fichier .env de StudioCMS avec les éléments suivants : »
Fenêtre de terminal
ASTRO_DB_REMOTE_URL=http://localhost:8080 # Cela devrait pointer vers votre serveur Docker/système local
ASTRO_DB_APP_TOKEN= # collez ici votre jeton d’authentification JWT standard

Créez un nouveau fichier docker-compose.yml en dehors du répertoire du projet StudioCMS, pour l’instance libSQL. Vous disposez alors de deux options pour configurer l’authentification libSQL :

  • En utilisant le fichier de clé publique lui-même
  • En utilisant le jeton JWT comme variable d’environnement (la même valeur ASTRO_DB_APP_TOKEN que celle que vous avez utilisée dans votre fichier .env)
services:
libsql:
image: ghcr.io/tursodatabase/libsql-server:latest
platform: linux/amd64
ports:
- "8080:8080"
- "5001:5001"
environment:
- SQLD_NODE=primary
- SQLD_AUTH_JWT_KEY_FILE=/home/.ssh/libsql.pub
volumes:
- ./data/libsql:/var/lib/sqld
- ./keys/libsql.pub:/home/.ssh/libsql.pub
  1. Démarrez le conteneur Docker :

    À partir du répertoire de base (ou du serveur si vous avez suivi cette voie), exécutez la commande suivante pour démarrer le conteneur du serveur libSQL

    Fenêtre de terminal
    docker compose up -d
  2. Synchronisez votre schéma de base de données StudioCMS :

    Allez dans le répertoire de votre projet StudioCMS et exécutez la commande suivante :

    Fenêtre de terminal
    npx astro db push --remote
  3. Suivez la configuration initiale de votre nouvelle base de données.

Si vous recherchez une option pour auto-héberger votre propre base de données libSQL avec StudioCMS, sqld est une option viable et n’est pas très compliqué à mettre en place et à exécuter si vous le faites correctement. Suivre ce guide vous fournit un serveur libSQL sécurisé à utiliser avec votre projet StudioCMS.