Panel klienta →

Wdrożenia z CI (GitHub Actions, GitLab CI)

Jak uruchamiać wdrożenie aplikacji z pipeline'u CI za pomocą tokenu deployu i webhooka.

Nową wersję aplikacji wdrażasz w dwóch krokach: budujesz obraz i wypychasz go do rejestru, a potem zlecasz wdrożenie. Drugi krok możesz zrobić ręcznie w panelu albo automatycznie z CI, wywołując webhook.

Jak działa wdrożenie

Po wywołaniu wdrożenia panel na każdej replice po kolei:

  1. loguje się do prywatnego rejestru (jeśli go podałeś),
  2. pobiera obrazy z compose (docker compose pull),
  3. uruchamia nową wersję i czeka na poprawną odpowiedź pod ścieżką health-check,
  4. dopiero wtedy przechodzi do następnej repliki.

Przy dwóch i więcej replikach aplikacja działa bez przerwy. Webhook nie zmienia compose — wdraża to, co jest zapisane w zakładce Konfiguracja. Dlatego najprościej używać w compose stałego tagu (np. :latest albo :production) i nadpisywać go w CI przy każdym wydaniu.

Wdrożenie z panelu

  1. Wypchnij nowy obraz do rejestru.
  2. Otwórz aplikację, zakładkę Przegląd.
  3. Kliknij Wdróż ponownie.

Token deployu

Token pokazujemy tylko raz — zaraz po utworzeniu aplikacji. Jeśli go nie masz:

  1. Otwórz aplikację i zakładkę Deploy / CI.
  2. W sekcji Deploy z CI (webhook) kliknij Wygeneruj nowy token.
  3. Skopiuj token z żółtej ramki u góry strony i zapisz go jako sekret w CI.

Uwaga: Nowy token unieważnia poprzedni. Po wygenerowaniu zaktualizuj sekret we wszystkich pipeline'ach.

Adres webhooka

W zakładce Deploy / CI znajdziesz gotowe polecenie z adresem webhooka Twojej aplikacji. Ma ono postać:

curl -X POST -H "Authorization: Bearer <token>" https://cloud.hostava.pl/api/app-hooks/<identyfikator>/deploy

Identyfikator w adresie nie jest tajny — chroni go token. Skopiuj całe polecenie przyciskiem obok i podmień <token> na sekret.

Odpowiedzi webhooka:

  • 200 z {"ok":true,"started":true} — wdrożenie wystartowało w tle,
  • 401 — nieprawidłowy token,
  • 409 — wdrożenie tej aplikacji już trwa.

Webhook nie czeka na koniec wdrożenia. Wynik zobaczysz w panelu: przy błędzie na stronie aplikacji pojawi się komunikat z przyciskiem Pokaż przyczynę (logi deployu).

Przykład: GitHub Actions

Zapisz token w Settings → Secrets and variables → Actions jako HOSTAVA_DEPLOY_TOKEN, a adres webhooka jako HOSTAVA_DEPLOY_URL.

# .github/workflows/deploy.yml
name: deploy
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write
    steps:
      - uses: actions/checkout@v4
      - uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - uses: docker/build-push-action@v6
        with:
          push: true
          tags: ghcr.io/${{ github.repository }}:latest
      - name: Wdrożenie na Hostava
        run: |
          curl -fsS -X POST "${{ secrets.HOSTAVA_DEPLOY_URL }}" \
            -H "Authorization: Bearer ${{ secrets.HOSTAVA_DEPLOY_TOKEN }}"

Jeśli obraz w GHCR jest prywatny, podaj w aplikacji Prywatny rejestr: ghcr.io, nazwę użytkownika i token z uprawnieniem read:packages.

Przykład: GitLab CI

Dodaj zmienne HOSTAVA_DEPLOY_TOKEN (zamaskowaną) i HOSTAVA_DEPLOY_URL w Settings → CI/CD → Variables.

deploy:
  stage: deploy
  image: curlimages/curl:latest
  script:
    - curl -fsS -X POST "$HOSTAVA_DEPLOY_URL" -H "Authorization: Bearer $HOSTAVA_DEPLOY_TOKEN"
  only:
    - main

Zawieszone wdrożenie

Jeśli wdrożenie trwa ponad 5 minut, przy komunikacie pojawi się przycisk Odblokuj wdrożenie. Odblokuj je, popraw konfigurację (compose, .env) i wdróż ponownie.

Wskazówka: Migracje bazy po wdrożeniu uruchomisz w zakładce Polecenia — zobacz Polecenia w aplikacji.

Powiązane: Aplikacja z pliku Docker Compose.

Nie znalazłeś odpowiedzi? Napisz do nas z panelu klienta — pomożemy.