Weesify
Développeurs

Le Weesify CLI

Déployez un dossier vers votre site web HTML en une commande, récupérez-le, vérifiez ce qui a changé et revenez en arrière. Un seul fichier, aucun paquet à installer : il ne nécessite que Node.js 18 ou plus récent.

Installer

Téléchargez le fichier et lancez-le avec Node.js. Il n’y a rien d’autre à installer, et ni npx ni registre de paquets ne sont impliqués.

macOS et 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

Pour taper simplement « weesify » n’importe où, placez-le dans votre PATH (macOS et Linux) :

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

La connexion demande un jeton API. Créez-en un dans votre espace de travail sous Paramètres → Développeurs avec les portées sites:read, sites:write et sites:deploy. Il est enregistré dans ~/.config/weesify/credentials.json, lisible uniquement par vous, jamais dans le dossier de votre projet.

Vérifier le fichier

Version 1.0.0, 44 Ko. Comparez son SHA-256 avec celui-ci avant de le lancer :

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

Premier déploiement

cd my-site
weesify init            # lier ce dossier à un site web (ou en créer un)
weesify deploy -m "Première version"
weesify status          # en ligne vs brouillon vs ce dossier

deploy compresse le dossier en ZIP sur votre ordinateur, l’envoie, fait du site web exactement ce dossier et le publie. La version précédente reste à un weesify rollback de distance. Ajoutez --draft pour ne mettre à jour que le brouillon et publier plus tard depuis l’éditeur.

Exclus automatiquement : node_modules/, .git/, .env, *.log et les fichiers système. Ajoutez vos propres motifs à .weesifyignore (même syntaxe que .gitignore). Le code serveur comme .php n’est jamais publié.

Commandes

CommandeAction
weesify loginEnregistrer un jeton API (ou le lire depuis --stdin)
weesify whoamiL’espace de travail, le nom du jeton et les portées utilisés
weesify sitesLister vos sites web
weesify init [--site ID | --name NAME]Lier un dossier à un site web ; écrit weesify.json (sans secrets)
weesify deploy [dir] [-m MSG] [--draft]Envoyer le dossier et le publier, ou ne mettre à jour que le brouillon
weesify pull [dir] [--live | --deployment ID]Télécharger le brouillon, le site en ligne ou un déploiement
weesify statusDernier déploiement, modifications du brouillon, votre dossier comparé au site en ligne, domaines
weesify deploymentsHistorique des déploiements
weesify rollback [ID or #N]Remettre en ligne un déploiement antérieur (par défaut : le précédent)
weesify domains [list | add | verify | remove] HOSTConnecter et vérifier les domaines personnalisés
weesify openOuvrir le site web dans votre navigateur

Chaque commande accepte --json pour une sortie lisible par machine, --site pour choisir un site web et --host pour un Weesify auto-hébergé.

CI et automatisation

En CI, définissez le jeton comme secret nommé WEESIFY_TOKEN ; aucune étape de connexion n’est nécessaire. Chaque déploiement envoie sa propre Idempotency-Key, donc un envoi réessayé ne publie jamais deux fois.

# 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 site web qui nécessite l’approbation du client ne peut pas être publié par un jeton tant que le brouillon actuel n’est pas approuvé ; le déploiement s’arrête alors avec le code de sortie 2.

Codes de sortie

CodeMoyens
0Terminé (pour deploy : le site web est en ligne)
1Une erreur s’est produite
2Approbation requise avant la publication
3Le déploiement a échoué ; la version précédente reste en ligne
4Non connecté, ou le jeton n’est pas autorisé à faire cela
5Introuvable dans cet espace de travail
6Problème de réseau, de serveur ou de limite de débit : sans risque de réessayer
64La commande a été mal utilisée