Servidor libSQL auto-alojado
El proyecto sqld (“SQL daemon”) es un modo de servidor para libSQL creado por Turso. Esta guía explicará cómo configurar y ejecutar sqld para trabajar desde un contenedor de Docker para tu proyecto StudioCMS.
sqld usando su documentación^ Prerrequisitos
Sección titulada «Prerrequisitos»- Docker y Docker Compose^ (ya sea ejecutándose en un servidor o localmente)
- OpenSSL^ instalado
- CLI de StudioCMS (disponible desde la raíz de tu proyecto StudioCMS)
Estructura final de archivos
Sección titulada «Estructura final de archivos»La estructura final de archivos se verá algo así si se prueba localmente:
- docker-compose.yml
Directorydata/
- …
Directorykeys/
- …
Directorymy-studiocms-project/
- astro.config.mjs
- studiocms.config.mjs
- package.json
Directorysrc/
- …
Generar claves privadas y públicas
Sección titulada «Generar claves privadas y públicas»Desde dentro del directorio keys, ejecuta el siguiente comando para crear un nuevo par de claves Ed25519 codificadas en PKCS#8:
openssl genpkey -algorithm Ed25519 -out ./libsql.pemLuego, extrae la clave pública con:
openssl pkey -in ./libsql.pem -pubout -out ./libsql.pubEsto generará un nuevo par de claves PKCS#8 que se utilizarán para el servidor sqld.
Generar tu token JWT
Sección titulada «Generar tu token JWT»Navega a tu directorio del proyecto studiocms y ejecuta el siguiente comando:
npm run studiocms crypto gen-jwt "../keys/libsql.pem" -c "iss=admin" -e 31556926pnpm run studiocms crypto gen-jwt "../keys/libsql.pem" -c "iss=admin" -e 31556926yarn run studiocms crypto gen-jwt "../keys/libsql.pem" -c "iss=admin" -e 31556926El resultado es el token de autenticación JWT cifrado con tu clave privada, que se utilizará para la autenticación de libSQL. Ten en cuenta que el token será válido durante 1 año.
Actualiza tu .env de StudioCMS con lo siguiente:
Sección titulada «Actualiza tu .env de StudioCMS con lo siguiente:»ASTRO_DB_REMOTE_URL=http://localhost:8080 # Esto debería apuntar a tu servidor docker/sistema localASTRO_DB_APP_TOKEN= # pega tu token JWT codificado en base64 aquíConfiguración del contenedor Docker
Sección titulada «Configuración del contenedor Docker»Crea un nuevo archivo docker-compose.yml fuera del directorio del proyecto StudioCMS, para la instancia de libSQL. En este punto tienes dos opciones para configurar la autenticación de libSQL:
- Usando el archivo de clave pública
- Usando el token JWT como variable de entorno (el mismo valor ASTRO_DB_APP_TOKEN que usaste en tu archivo .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.pubservices: libsql: image: ghcr.io/tursodatabase/libsql-server:latest platform: linux/amd64 ports: - "8080:8080" - "5001:5001" environment: - SQLD_NODE=primary - SQLD_AUTH_JWT_KEY=paste your JWT token here volumes: - ./data/libsql:/var/lib/sqldArrancando todo
Sección titulada «Arrancando todo»-
Arranca el contenedor Docker:
Desde el directorio base (o el servidor si elegiste esa ruta) ejecuta el siguiente comando para iniciar el contenedor del servidor libSQL
Ventana de terminal docker compose up -d -
Sincroniza el esquema de tu base de datos StudioCMS:
Mueve a tu directorio del proyecto StudioCMS y ejecuta el siguiente comando:
Ventana de terminal npx astro db push --remoteVentana de terminal pnpm astro db push --remoteVentana de terminal yarn astro db push --remote -
Sigue la configuración inicial para tu nueva base de datos.
- Ve a Comienza aquí
Pensamientos finales
Sección titulada «Pensamientos finales»Si buscas una opción para auto-alojar tu propia base de datos libSQL con StudioCMS, sqld es una opción viable y no es muy complicado de poner en marcha si lo haces de la manera correcta. Seguir esta guía te proporciona un servidor libSQL seguro para usar junto a tu proyecto StudioCMS.