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.
sqld
en utilisant leur Documentation^ Prérequis
Section intitulée « Prérequis »- Docker et Docker Compose^ (exécuté sur un serveur ou localement)
- OpenSSL^ installé
- CLI de StudioCMS (disponible depuis la racine de votre projet StudioCMS)
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/
- …
Générer des clés privées et publiques
Section intitulée « Générer des clés privées et publiques »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 :
openssl genpkey -algorithm Ed25519 -out ./libsql.pem
Extrayez ensuite la clé publique avec :
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
.
Générez votre jeton JWT
Section intitulée « Générez votre jeton JWT »Accédez au répertoire de votre projet StudioCMS et exécutez la commande suivante :
npm run studiocms crypto gen-jwt "../keys/libsql.pem" -e 31556926
pnpm run studiocms crypto gen-jwt "../keys/libsql.pem" -e 31556926
yarn 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 : »ASTRO_DB_REMOTE_URL=http://localhost:8080 # Cela devrait pointer vers votre serveur Docker/système localASTRO_DB_APP_TOKEN= # collez ici votre jeton d’authentification JWT standard
Mise en place du conteneur Docker
Section intitulée « Mise en place du conteneur Docker »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
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=collez votre jeton JWT encodé en tant que Base64URL ici volumes: - ./data/libsql:/var/lib/sqld
Tout démarrer
Section intitulée « Tout démarrer »-
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 -
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 --remoteFenêtre de terminal pnpm astro db push --remoteFenêtre de terminal yarn astro db push --remote -
Suivez la configuration initiale de votre nouvelle base de données.
- Consultez Mise en route
Réflexions finales
Section intitulée « Réflexions finales »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.