Despliegue del sitio socai
Utiliza esta habilidad cada vez que la tarea involucre el despliegue del sitio web de socai, la configuración de Vercel, socai.io, www.socai.io, /download, /github o las previsualizaciones de PR.
Esta habilidad es el manual de despliegue fuente de verdad. ../../../docs/website-deployment.md permanece intencionadamente breve y redirige aquí para evitar la duplicación de instrucciones.
Contexto del proyecto
- Código fuente del sitio:
site/ - Framework: Sitio estático Astro
- Equipo/ámbito de Vercel:
socai-d83824c8(socai) - Proyecto de Vercel:
socai-site - Dominio de producción:
https://socai.io - Ruta de documentación:
https://socai.io/docs/(páginas de Starlight construidas con el sitio Astro) - Host canónico:
socai.io - Comportamiento de
www:https://www.socai.io/*debe redirigir (308) ahttps://socai.io/* - Ruta de descarga:
https://socai.io/downloadredirige al último DMG universal para macOS en el espejo de lanzamiento OSS de socai - Ruta de GitHub:
https://socai.io/githubredirige ahttps://github.com/socai-io/socai
Configuración esperada del proyecto de Vercel:
| Configuración | Valor |
|---|---|
| Preajuste de framework | Astro |
| Directorio raíz | site |
| Comando de instalación | pnpm install |
| Comando de compilación | pnpm build |
| Directorio de salida | dist |
| Versión de Node.js | 24.x |
Reglas de seguridad
- Usa el ámbito
socai-d83824c8para todos los comandos de proyecto/dominio de Vercel. - No despliegues desde el equipo de Vercel incorrecto ni desde un proyecto personal.
- No subas
site/.vercel/,site/dist/,site/.astro/osite/node_modules/. - No habilites análisis a menos que el usuario lo apruebe explícitamente.
- No edites los activos de lanzamiento de la aplicación mientras trabajas en el despliegue del sitio web.
- Mantén el trabajo de incidencias en una rama dedicada y abre/actualiza un PR para los cambios en el repositorio.
- Si cambias temporalmente la configuración del proyecto de Vercel para un despliegue manual, restáurala antes de finalizar.
Validación local
Antes de desplegar o abrir un PR para código/configuración relacionado con el despliegue:
cd site
pnpm install
pnpm build
Valida la configuración JSON/XML cuando se haya modificado:
python3 -m json.tool site/vercel.json >/dev/null
python3 -m json.tool site/public/site.webmanifest >/dev/null
python3 - <<'PY'
import xml.etree.ElementTree as ET
ET.parse('site/dist/sitemap-index.xml')
ET.parse('site/dist/sitemap-0.xml')
PY
Inspeccionar el estado de Vercel
vercel whoami
vercel teams ls
vercel projects ls --scope socai-d83824c8
vercel project inspect socai-site --scope socai-d83824c8 --yes
vercel domains inspect socai.io --scope socai-d83824c8
vercel domains inspect www.socai.io --scope socai-d83824c8
Confirma que la configuración del proyecto muestre el directorio raíz site, framework Astro, comando de compilación pnpm build, salida dist, instalación pnpm install.
Despliegue de producción preferido
La ruta preferida, una vez habilitada la integración Git:
- Fusiona los cambios del sitio web en
main. - Deja que Vercel compile el proyecto
socai-sitedesde el directorio raízsite. - Verifica las URLs de producción con los comandos siguientes.
Las previsualizaciones de PR también requieren que la integración Git esté conectada en el panel de control de Vercel.
Despliegue de producción de emergencia/manual mediante CLI
Debido a que el proyecto de Vercel está configurado con el directorio raíz site, un despliegue local directo desde site/ puede fallar con errores de directorio raíz site/site. Si la integración Git no está disponible y se requiere un despliegue mediante CLI, usa esta solución temporal de directorio raíz y restaura el directorio raíz después.
set -euo pipefail
cat > /tmp/vercel-root-null.json <<'EOF'
{
"rootDirectory": null
}
EOF
cat > /tmp/vercel-root-site.json <<'EOF'
{
"rootDirectory": "site"
}
EOF
restore_root() {
vercel api /v10/projects/socai-site \
--scope socai-d83824c8 \
-X PATCH \
--input /tmp/vercel-root-site.json \
--silent || true
}
trap restore_root EXIT
vercel api /v10/projects/socai-site \
--scope socai-d83824c8 \
-X PATCH \
--input /tmp/vercel-root-null.json \
--silent
cd site
vercel deploy --prod --scope socai-d83824c8 --project socai-site --yes
Después del despliegue, confirma que el directorio raíz se haya restaurado:
vercel project inspect socai-site --scope socai-d83824c8 --yes
No dejes el proyecto con Root Directory . o null; las previsualizaciones Git dependen de site.
Verificación de URLs
Usa primero comprobaciones HEAD:
curl -I https://socai.io/
curl -I https://socai.io/docs/
curl -I https://socai.io/docs/quickstart/
curl -I https://www.socai.io/
curl -I https://socai.io/sitemap.xml
curl -I https://socai.io/sitemap-index.xml
curl -I https://socai.io/download
curl -I https://socai.io/github
Comportamiento esperado en el primer salto:
https://socai.io/devuelve200.https://socai.io/docs/devuelve200, y una página anidada como/docs/quickstart/devuelve200.https://www.socai.io/devuelve308conlocation: https://socai.io/.https://socai.io/sitemap.xmlredirige permanentemente a/sitemap-index.xml, que devuelve200.https://socai.io/downloaddevuelve una redirección de Vercel (307) al último DMG universal para macOS en el espejo de lanzamiento OSS configurado.https://socai.io/githubdevuelve una redirección de Vercel (307) ahttps://github.com/socai-io/socai.
Usa -L solo cuando quieras seguir la cadena:
curl -I -L --max-time 30 -o /dev/null -w 'code=%{http_code}\nfinal=%{url_effective}\n' https://socai.io/download
Configuración de previsualización Git
Intenta:
cd site
vercel link --yes --scope socai-d83824c8 --project socai-site
vercel git connect https://github.com/socai-io/socai --scope socai-d83824c8
Si Vercel devuelve:
Failed to link socai-io/socai. You need to add a Login Connection to your GitHub account first.
entonces el propietario de la cuenta de Vercel/GitHub debe conectar el inicio de sesión/integración de GitHub en el panel de control de Vercel y luego conectar socai-site a socai-io/socai con el directorio raíz site.
Solución de problemas
Cambios en el sitio web omitidos después de un push con múltiples commits
El paso de compilación ignorado en site/vercel.json debe comparar HEAD con VERCEL_GIT_PREVIOUS_SHA (el último despliegue exitoso para este proyecto y rama), no con HEAD^. El commit final en un push puede cambiar solo código Rust mientras que los commits anteriores cambian el sitio web. Si el SHA del despliegue anterior falta o no está disponible en el clon superficial, compila en lugar de omitir. Salir con 0 omite una compilación; salir con 1 procede.
El directorio raíz "site" no existe
Esto suele ocurrir cuando se ejecuta un despliegue CLI local desde site/ mientras que el proyecto remoto también tiene el directorio raíz site. Usa la solución temporal de despliegue manual/emergencia anterior, o prefiere los despliegues Git.
Demasiados archivos subidos
Desplegar desde la raíz del repositorio puede incluir artefactos de compilación de Rust/Python y superar el límite de archivos de Vercel. No despliegues la raíz del repositorio directamente a menos que tengas una estrategia probada de ignorar/archivar. Prefiere los despliegues Git o el despliegue manual/emergencia desde site/ con el restablecimiento temporal del directorio raíz.
www.socai.io sirve 200 en lugar de redirigir
Asegúrate de que el último despliegue de producción incluya la redirección del host en site/vercel.json, luego redepliega. Verifica con:
curl -I https://www.socai.io/
Los metadatos de la última versión de GitHub no están disponibles
El sitio web aún debe mostrar una copia genérica no obsoleta (latest release) y /download debe seguir redirigiendo al activo de la última versión de GitHub.
Informe
Al informar sobre una tarea de despliegue, incluye:
- Rama/PR si se modificaron archivos del repositorio
- Configuración del proyecto de Vercel confirmada
- URL de despliegue y dominio de producción
- Comandos ejecutados
- Resumen de salida de verificación para
/,/docs/,/docs/quickstart/,www,/downloady/github - Cualquier bloqueo manual restante, especialmente la integración Git / previsualizaciones de PR