Elvora WikiNávody pro hosting
Nasazení

Automatické nasazení z GitHub Actions

CI sestaví OCI obraz a pošle jeho digest do Elvora Apps.

Tato cesta je pro aplikaci, jejíž obraz sestavuje GitHub Actions. V průvodci zvol GitHub Actions. Elvora uloží aplikaci bez prvního obrazu a v Nastavení nabídne deploy hook.

Propoj workflow

  1. V Nastavení → Nasazení přes GitHub Actions vytvoř pojmenovaný token. Plná hodnota se ukáže jen při vytvoření.
  2. Do GitHub repository secrets přidej ELVORA_APPS_DEPLOY_URL a ELVORA_APPS_DEPLOY_TOKEN podle hodnot v panelu.
  3. Ve workflow nejprve ověř aplikaci, sestav a publikuj obraz do registru. Teprve po úspěšném pushi pošli jeho digest do deploy hooku.

Tělo požadavku má minimálně tyto hodnoty:

{
  "image": "ghcr.io/uzivatel/aplikace@sha256:...",
  "revision": "git-commit-sha"
}

Po kroku docker/build-push-action@v6 použij jeho výstup steps.build.outputs.digest (krok sestavení pojmenuj id: build). Úplný odkaz na obraz tvoří název repozitáře v registru, znak @ a tento digest. Následující krok workflow odešle požadavek do Apps:

- name: Nasadit do Elvora Apps
  env:
    ELVORA_APPS_DEPLOY_URL: ${{ secrets.ELVORA_APPS_DEPLOY_URL }}
    ELVORA_APPS_DEPLOY_TOKEN: ${{ secrets.ELVORA_APPS_DEPLOY_TOKEN }}
    IMAGE_DIGEST: ${{ steps.build.outputs.digest }}
  run: |
    IMAGE_REF="ghcr.io/uzivatel/aplikace@${IMAGE_DIGEST}"
    jq -n --arg image "$IMAGE_REF" --arg revision "$GITHUB_SHA" \
      '{image: $image, revision: $revision}' |
      curl --fail-with-body --show-error --silent \
        --request POST "$ELVORA_APPS_DEPLOY_URL" \
        --header "Authorization: Bearer $ELVORA_APPS_DEPLOY_TOKEN" \
        --header 'Content-Type: application/json' \
        --data-binary @-

Nahraď ghcr.io/uzivatel/aplikace svým obrazem. Krok spusť až po úspěšném publikování obrazu. Odpověď 202 znamená zařazení vydání do fronty, nikoliv úspěšný start aplikace.

Volitelná metadata mohou nést odkazy na běh GitHub Actions a commit; Elvora je zobrazí v historii vydání. Token drž pouze v GitHub secrets, ne v repozitáři ani v Docker image. Obraz musí být pro Elvora node dostupný. Privátní GHCR balíček bez přístupu nodu se nenasadí.

Po odeslání sleduj Nasazení a Logy. Pokud obraz neprojde kontrolou stavu, zkontroluj port, health path a runtime logy. Token lze v Nastavení zrušit a vytvořit nový.

Na této stránce