Panel klienta →

Aplikacja z pliku Docker Compose

Jak utworzyć aplikację w kontenerach z pliku Docker Compose — plan, repliki, port publiczny, health-check, load balancer i własna domena.

Aplikacja to usługa zarządzana: wklejasz definicję Docker Compose, a panel uruchamia ją na jednej lub kilku replikach. Przy dwóch i więcej replikach ruch rozkłada load balancer z health-checkiem i HTTPS. Nie konfigurujesz Dockera ani serwerów — nie masz też do nich dostępu SSH.

Uwaga: Aplikacja powinna być bezstanowa. Bazę danych trzymaj w zarządzanej bazie danych, a pliki użytkowników w magazynie S3. Dane w wolumenach Dockera są tylko na jednej replice.

Tworzenie aplikacji

  1. Zaloguj się do https://cloud.hostava.pl, otwórz Aplikacje i kliknij Utwórz aplikację.
  2. W sekcji Lokalizacja wybierz centrum danych. Repliki nie mają publicznego IP i wychodzą do internetu przez NAT.
  3. W sekcji Plan repliki wybierz zasoby (vCPU, RAM, dysk) jednej repliki. Każda replika dostaje ten sam plan.
  4. W sekcji Typ aplikacji wybierz:
    • Aplikacja webowa — odpowiada na ruch HTTP, ma port, domenę z SSL i (przy 2+ replikach) load balancer,
    • Worker — procesy w tle (kolejki, zadania cykliczne) bez ruchu z internetu, bez portu, domeny i load balancera.
  5. W sekcji Repliki ustaw liczbę replik (domyślnie 2, maksymalnie 10). Repliki trafiają na różne hosty.
    • 1 replika — aplikacja dostaje publiczny adres IP, bez load balancera. Tej liczby nie zmienisz później.
    • 2 i więcej — repliki działają za wspólnym load balancerem. Możesz włączyć Load balancer w HA (druga instancja LB na innym hoście, płatna osobno).
  6. Opcjonalnie wpisz Własną domenę (np. app.twojafirma.pl). Domenę dodasz też później.
  7. W sekcji Aplikacja wklej Docker Compose i uzupełnij:
    • Usługa publiczna — nazwa usługi z compose, która przyjmuje ruch (np. web),
    • Port publiczny — port, na którym nasłuchuje ta usługa (np. 8080),
    • Ścieżka health-check — adres sprawdzany przed przełączeniem ruchu (np. /health; zwykle wystarczy /),
    • Zmienne środowiskowe (.env) — w formacie KLUCZ=wartosc, przechowywane zaszyfrowane,
    • Dodatkowe porty (opcjonalnie) — po przecinku; źródło ograniczysz zapisem port@IP lub port@CIDR, np. [email protected].
  8. Opcjonalnie dodaj Pliki (np. certyfikat CA bazy). Trafią do katalogu ./files obok compose przed pierwszym startem. Limit to 1 MB na plik i 5 MB łącznie.
  9. Jeśli obraz jest w prywatnym rejestrze, wypełnij Prywatny rejestr: adres (puste = Docker Hub), użytkownika i token.
  10. W Szczegółach podaj nazwę i wybierz projekt — repliki i load balancer trafią do jego sieci prywatnej.
  11. Kliknij Utwórz aplikację (lub Utwórz workera). Tworzenie trwa zwykle kilka minut.

Uwaga: Zaraz po utworzeniu panel pokaże token deployu. Zapisz go od razu — wyświetlamy go tylko raz. Przyda się do wdrożeń z CI.

Przykładowy compose

services:
  web:
    image: ghcr.io/twoja-firma/app:latest
    restart: always
    ports:
      - "8080:8080"
    env_file: .env
    volumes:
      - ./files/certs/ca.pem:/certs/ca.pem:ro

Compose musi mieć sekcję services: na najwyższym poziomie. Nie wystawiaj portu usługi publicznej tylko na 127.0.0.1 (np. "127.0.0.1:8080:8080") — load balancer nie połączy się wtedy z repliką. Panel odrzuci taką konfigurację.

Domena i HTTPS

Po utworzeniu otwórz zakładkę Przegląd i sekcję Domena i HTTPS:

  • 2+ repliki — skieruj domenę rekordem CNAME na adres load balancera pokazany w panelu, poczekaj na DNS i kliknij Wydaj certyfikat SSL. Certyfikat Let's Encrypt odnawia się automatycznie. Bez domeny aplikacja działa pod adresem load balancera, już z HTTPS.
  • 1 replika — skieruj domenę rekordem A na publiczny adres IP repliki, odczekaj ok. 2 minuty i kliknij Wydaj certyfikat SSL. Bez domeny aplikacja jest dostępna pod adresem IP, bez TLS.

Zmiany konfiguracji

Compose, .env, pliki, porty, health-check i rejestr zmienisz w zakładce Konfiguracja. Zapis nie wdraża zmian — kliknij potem Wdróż ponownie w Przeglądzie. Wdrożenie jest kroczące: replika po replice, każda dopiero po przejściu health-checku.

Wskazówka: Gdy wdrożenie się nie uda, w panelu pojawi się komunikat z przyciskiem Pokaż przyczynę (logi deployu). Logi działającej aplikacji znajdziesz w zakładce Logi, a stan kontenerów w Metrykach.

W zakładce Kopie panel trzyma ostatnie 30 wersji konfiguracji (zapisywane przy każdej zmianie i przed wdrożeniem). Możesz pobrać kopię jako plik i odtworzyć z niej aplikację przyciskiem Wczytaj z kopii… przy tworzeniu nowej. Kopia nie obejmuje danych z wolumenów.

Powiązane: Wdrożenia z CI, Polecenia w aplikacji, Repliki i plan.

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