Liftpad / Développeurs / Documentation pour développeurs / Démarrage rapide : déployer avec curl

Démarrage rapide : déployer avec curl

Six appels pour passer d'un compte vide à un site en ligne. Il vous faut curl 7.76 ou plus récent, jq et un jeton deploy.

Le parcours complet

#!/usr/bin/env bash
# Enregistrez sous quickstart.sh, puis lancez : bash quickstart.sh
# set -e et --fail-with-body arrêtent le script au premier appel qui échoue
set -euo pipefail
LIFTPAD_TOKEN=lp_your_token
API=https://api.liftpad.app/v1
AUTH="Authorization: Bearer $LIFTPAD_TOKEN"
# Les noms de site sont partagés par tout Liftpad : gardez ce nom au hasard ou choisissez le vôtre
SITE=my-site-$RANDOM

# 1. Créer le site
curl -sS --fail-with-body -X POST "$API/sites" -H "$AUTH" -H "content-type: application/json" \
  -d "{\"name\":\"$SITE\"}"

# 2. Une page, et le SHA-256 de son contenu (macOS : shasum -a 256)
mkdir -p public
printf '<!doctype html><html lang="en"><title>Hello</title><h1>Hello</h1></html>' > public/index.html
HASH=$(sha256sum public/index.html | cut -d' ' -f1)

# 3. Commencer un déploiement avec chaque chemin et son empreinte
DEPLOY=$(curl -sS --fail-with-body -X POST "$API/sites/$SITE/deploys" -H "$AUTH" -H "content-type: application/json" \
  -d "{\"files\":{\"/index.html\":\"$HASH\"},\"title\":\"First deploy\"}" | jq -r .id)

# 4. Envoyer seulement les fichiers listés dans "required" (ici, la seule page)
curl -sS --fail-with-body -X PUT "$API/deploys/$DEPLOY/blobs/$HASH" -H "$AUTH" \
  -H "content-type: application/octet-stream" --data-binary @public/index.html

# 5. Terminer : les vérifications tournent et l'aperçu fonctionne
curl -sS --fail-with-body -X POST "$API/deploys/$DEPLOY/finalize" -H "$AUTH"

# 6. Publier (publier un ancien déploiement est un retour arrière)
curl -sS --fail-with-body -X POST "$API/sites/$SITE/publish" -H "$AUTH" -H "content-type: application/json" \
  -d "{\"deployId\":\"$DEPLOY\"}"
echo
echo "En ligne dans environ 5 secondes : https://$SITE.liftpad.ca"

Ce que fait chaque étape

  1. createSite : le nom compte 3 à 40 caractères (a-z, 0-9, traits d'union simples). Si vous faites partie de plusieurs équipes, ajoutez "team": "votre-equipe".
  2. L'empreinte est le SHA-256 hexadécimal minuscule du contenu exact du fichier.
  3. createDeploy reçoit chaque chemin (commençant par /) et son empreinte. Le champ required de la réponse liste les empreintes à envoyer. Les fichiers déjà envoyés par votre équipe ne sont pas redemandés : le deuxième déploiement d'un gros site n'envoie que ce qui a changé.
  4. uploadDeployFile reçoit le contenu brut d'un fichier demandé. Liftpad le compare à l'empreinte et refuse s'ils diffèrent.
  5. finalizeDeploy répond "state": "ready", l'adresse d'aperçu et un résumé avec la note des vérifications. S'il manque un fichier, la réponse est 409 missing_blobs avec les empreintes à envoyer : envoyez-les et finalisez de nouveau.
  6. publishDeploy le met en ligne en environ 5 secondes. Pour revenir en arrière, publiez un déploiement précédent (listDeploys les montre).

Le site est maintenant à https://$SITE.liftpad.ca, l'adresse affichée par le script. Les noms de site sont uniques dans tout Liftpad : si le nom est pris, l'étape 1 répond 409 exists et le script s'arrête là. Choisissez un autre nom et relancez-le. Connectez votre domaine avec addDomain, ou dans le tableau de bord.

Ensuite

Pour de vrais dossiers, la CLI fait tout cela, en parallèle, avec reprises.