Guías
Instalar Hollware
Todas las formas de empezar un proyecto de Hollware, qué release tomar y qué contiene el proyecto.
Instalar Hollware
Un Hollware es un proyecto tuyo: un Worker pequeño que depende de los paquetes de Hollware, con su propio wrangler.jsonc. Lo crea npm create hollware. El Inicio rápido es el camino corto; esta página reúne todos.
Necesitas Node.js 24 o superior. La cuenta de Cloudflare entra cuando despliegas; todo lo anterior corre en tu máquina.
Un proyecto propio
npm create hollware my-cmsCopia el starter, lo instala, aplica las migraciones a una base de datos local y crea tu sitio, su dueño y un primer token. No pregunta nada; lo que responderías va en opciones, después de -- con npm:
| Opción | Qué elige | Por defecto |
|---|---|---|
--name <nombre> | El nombre del Worker y de su base de datos | el nombre del directorio |
--site <clave> | La clave de tu sitio; nunca cambia | my-site |
--preset blog | docs | empty | Con qué parte el sitio | blog |
--locales en,es | Sus idiomas, el primero es el por defecto | en |
--pm npm | pnpm | Quién instala | npm |
--token-file <ruta> | Escribe el primer token en un archivo, nunca en pantalla | |
--ip-addresses off | hashed, --audit-retention-days <n> | Qué guarda el registro de actividad | off, para siempre |
--no-install | Solo copia los archivos: sin instalar, sin base de datos, sin sitio | |
--no-git | Sin git init | |
--json | Un objeto JSON en stdout, para un agente o un script |
npm create hollware my-cms -- --site acme --preset docs --locales en,es --token-file owner.token
pnpm create hollware my-cms --pm pnpmQué release
| Canal | Qué es | Comando |
|---|---|---|
latest | El release estable más reciente | npm create hollware my-cms |
rc | El próximo release, como release candidate | npm create hollware@rc my-cms |
| Una versión exacta | Ese release, siempre | npm create hollware@1.0.0 my-cms |
create-hollware de una versión crea un proyecto de esa misma versión: fija hollware y @hollware/* exactamente en ella, y las herramientas con que se probó (wrangler, los plugins de Cloudflare, Vite+, Vitest, TypeScript) en las suyas. Un proyecto nunca se mueve solo; lo actualizas cuando tú decides.
pnpm, desde la versión 11, no instala nada publicado hace menos de un día (minimumReleaseAge). El día de un release, pnpm create hollware toma el release anterior, completo. Espera un día, o crea tu proyecto con npm.
Dentro de un monorepo
Hollware puede vivir junto al sitio que lo lee, en un mismo repositorio, como apps/cms al lado de apps/web. Créalo sin instalar y luego instala desde la raíz:
pnpm create hollware apps/cms --pm pnpm --no-install --no-git --name my-cms --site my-siteDespués:
- Borra
apps/cms/pnpm-workspace.yaml: pnpm lee el de la raíz. Copia suallowBuilds(esbuild: true,workerd: false) en el de la raíz. - Borra los
overridesdeapps/cms/package.json: son para npm, que solo los lee en la raíz. - Instala desde la raíz, y crea la base de datos local y tu sitio desde
apps/cms:
pnpm install
cd apps/cms
pnpm exec hollware migrate --local
pnpm exec hollware init --site my-site --local --token-file owner.tokenCada comando de hollware se ejecuta desde apps/cms: la CLI trabaja sobre el proyecto del directorio actual. Un sitio del mismo repositorio lee el Hollware desplegado por un service binding, o por HTTP con un token de lectura.
Qué contiene el proyecto
| Archivo | De quién | Qué es |
|---|---|---|
src/worker.ts | tuyo | El Worker: lo construye createHollware() |
wrangler.jsonc | tuyo | El Worker, su base de datos, namespace, colas, bucket, URL pública y dominio |
vite.config.ts, vitest.config.ts, test/ | tuyos | El build, el servidor local y tests que corren dentro de workerd |
AGENTS.md | tuyo | Lo que necesita saber un agente que trabaja en el proyecto |
worker-configuration.d.ts | de wrangler | Los tipos de los bindings; lo escribe npm run types |
node_modules/@hollware/server | de Hollware | El código y las migraciones de la base de datos |
node_modules/@hollware/admin | de Hollware | El admin, compilado |
Los archivos tuyos se crean una vez y Hollware nunca los reescribe, así que una actualización de los paquetes los deja como están. Cuando un release pide un cambio en alguno, sus notas y la guía de actualización dicen cuál.
Tu contenido y la estructura de tus sitios viven en la base de datos, nunca en el proyecto: el repositorio no guarda contenido, y varios sitios comparten un proyecto.
Desde otro CMS
hollware import trae un directorio de Markdown, como borradores o publicado, y ejecutarlo de nuevo no cambia nada. Lee una estructura simple de <collection>/<locale>/<slug>.md, o el content/ de un sitio de Nuxt Content con --from nuxt-content. Ver la CLI.
Revísalo
npx hollware doctorRevisa los flags, los bindings, el admin compilado, las migraciones y el dueño, y dice qué corregir.