Weesify
Desarrolladores

El Weesify CLI

Despliega una carpeta en tu sitio web HTML con un solo comando, tráela de vuelta, comprueba qué cambió y revierte. Un solo archivo, sin paquetes que instalar: solo necesita Node.js 18 o posterior.

Instalar

Descarga el archivo y ejecútalo con Node.js. No hay nada más que instalar, y no interviene npx ni ningún registro de paquetes.

macOS y Linux

curl -fsSLo weesify.mjs https://weesify.com/developers/cli/weesify.mjs && node weesify.mjs login

Windows (PowerShell)

Invoke-WebRequest https://weesify.com/developers/cli/weesify.mjs -OutFile weesify.mjs; node weesify.mjs login

Para escribir solo «weesify» en cualquier lugar, ponlo en tu PATH (macOS y Linux):

chmod +x weesify.mjs && sudo mv weesify.mjs /usr/local/bin/weesify
weesify --version

El inicio de sesión pide un token de API. Crea uno en tu espacio de trabajo en Ajustes → Desarrolladores con los permisos sites:read, sites:write y sites:deploy. Se guarda en ~/.config/weesify/credentials.json, legible solo por ti, nunca en la carpeta de tu proyecto.

Comprobar el archivo

Versión 1.0.0, 44 KB. Compara su SHA-256 con este antes de ejecutarlo:

e98494277685934e20bdfb05c7f9fe5087db5db66d80b2365a4d3f74ed51c8af
shasum -a 256 weesify.mjs        # macOS
sha256sum weesify.mjs            # Linux
Get-FileHash weesify.mjs         # Windows

Primer despliegue

cd my-site
weesify init            # vincular esta carpeta a un sitio web (o crear uno)
weesify deploy -m "Primera versión"
weesify status          # en vivo vs borrador vs esta carpeta

deploy comprime la carpeta en un ZIP en tu ordenador, la sube, deja el sitio web exactamente como esa carpeta y lo publica. La versión anterior queda a un weesify rollback de distancia. Añade --draft para actualizar solo el borrador y publicar después desde el editor.

Se excluyen automáticamente: node_modules/, .git/, .env, *.log y archivos del sistema. Añade tus propios patrones a .weesifyignore (la misma sintaxis que .gitignore). El código de servidor como .php nunca se publica.

Comandos

ComandoQué hace
weesify loginGuardar un token de API (o leerlo desde --stdin)
weesify whoamiEl espacio de trabajo, el nombre del token y los permisos en uso
weesify sitesListar tus sitios web
weesify init [--site ID | --name NAME]Vincular una carpeta a un sitio web; escribe weesify.json (sin secretos)
weesify deploy [dir] [-m MSG] [--draft]Subir la carpeta y publicarla, o solo actualizar el borrador
weesify pull [dir] [--live | --deployment ID]Descargar el borrador, el sitio en vivo o un despliegue
weesify statusÚltimo despliegue, cambios del borrador, tu carpeta frente al sitio en vivo, dominios
weesify deploymentsHistorial de despliegues
weesify rollback [ID or #N]Poner de nuevo en vivo un despliegue anterior (por defecto: el anterior)
weesify domains [list | add | verify | remove] HOSTConectar y comprobar dominios personalizados
weesify openAbrir el sitio web en tu navegador

Cada comando acepta --json para una salida legible por máquinas, --site para elegir un sitio web y --host para un Weesify autoalojado.

CI y automatización

En CI, define el token como un secreto llamado WEESIFY_TOKEN; no hace falta ningún paso de inicio de sesión. Cada despliegue envía su propia Idempotency-Key, así que una subida reintentada nunca publica dos veces.

# GitHub Actions
- run: curl -fsSLo weesify.mjs https://weesify.com/developers/cli/weesify.mjs
- run: echo "e98494277685934e20bdfb05c7f9fe5087db5db66d80b2365a4d3f74ed51c8af  weesify.mjs" | sha256sum -c -
- run: node weesify.mjs deploy dist --site ${{ vars.WEESIFY_SITE }} -m "Build ${{ github.sha }}"
  env:
    WEESIFY_TOKEN: ${{ secrets.WEESIFY_TOKEN }}

Un sitio web que necesita aprobación del cliente no puede ser publicado por un token hasta que se apruebe el borrador actual; el despliegue se detiene entonces con el código de salida 2.

Códigos de salida

CódigoMedio
0Hecho (para deploy: el sitio web está en vivo)
1Algo salió mal
2Se requiere aprobación antes de publicar
3El despliegue falló; la versión anterior sigue en vivo
4No has iniciado sesión, o el token no tiene permiso para hacer esto
5No se encontró en este espacio de trabajo
6Problema de red, servidor o límite de peticiones: se puede reintentar sin riesgo
64El comando se usó de forma incorrecta