Squidoc

Despliegue

Squidoc genera un sitio estático. En producción normalmente ejecutas npm run build y sirves el directorio dist/ desde cualquier host estático.

Antes de desplegar, corre las mismas verificaciones que debería correr CI:

npm run check
npm run build
npm run preview

Vercel

Crea un proyecto Vercel desde tu repositorio y usa:

  • Framework preset: Other
  • Build command: npm run build
  • Output directory: dist
  • Install command: el comando de tu package manager, por ejemplo npm install, pnpm install, yarn install o bun install

Si el sitio vive en un monorepo, configura el root directory en la carpeta que contiene package.json y docs.config.ts.

Netlify

Usa:

  • Build command: npm run build
  • Publish directory: dist

También puedes agregar netlify.toml:

[build]
  command = "npm run build"
  publish = "dist"

Cloudflare Pages

Usa:

  • Framework preset: None
  • Build command: npm run build
  • Build output directory: dist

Cloudflare Pages funciona bien porque Squidoc produce HTML, CSS, JavaScript y assets estáticos.

GitHub Pages

GitHub Pages puede desplegar dist/ con GitHub Actions. El workflow debe instalar dependencias, ejecutar npm run check, compilar con npm run build y subir dist con actions/upload-pages-artifact.

Si despliegas en un subpath, configura site.url con la URL pública final para que canonical URLs, sitemap y archivos SEO apunten al lugar correcto.

Docker

Usa Docker cuando quieras empaquetar el sitio como contenedor. Compila con Node y sirve dist/ con Nginx:

FROM node:22-alpine AS build
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:1.27-alpine
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80

Para pnpm, yarn o bun, cambia el lockfile y el comando de instalación.

Hosting estático

Cualquier host que sirva archivos estáticos puede publicar Squidoc. Ejecuta npm run build y sube el contenido de dist/.

Ejemplos de referencia

FROM node:22-alpine AS build
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:1.27-alpine
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80
npm run build