# Coolify i Claude Code: wdrożenie projektu na własnym VPS-ie

> Instalacja Coolify, łączenie z GitHubem, wdrażanie Next.js, domena i HTTPS, MCP, wymagania VPS oraz rozwiązywanie problemów. Techniczne ceny podane w dolarach i oryginalne ograniczenia.

Source: https://ailoot.ai/blog/pl/coolify-claude-code-deploy/
Canonical: https://ailoot.ai/blog/pl/coolify-claude-code-deploy/
Language: pl
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-087
Revision: sha256-473a72e4aabf694c39b009cdad07744a453e5babbf93836317613e0153ac1bc8


<div class="aside" data-semantic="editorial-reference" role="note" aria-label="Ailoot Documentation">

[Dokumentacja Ailoot](https://ailoot.ai/docs/) — materiały referencyjne dotyczące korzystania z usługi.

</div>

## Ograniczenia platform i warunki płatności w 2026 roku

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section highlights">

Najważniejszy wniosek

Darmowe plany działają, dopóki po raz pierwszy nie przekroczysz limitu; potem potrzebna jest międzynarodowa karta. Heroku zamknęło darmowy plan dla wszystkich w 2022 roku i w lutym 2026 roku przeszło w tryb utrzymaniowy. W przypadku self-hostowanego Coolify serwer należy do Ciebie; nie ma opłat za stanowisko ani uzależnienia od dostawcy.

</div>

Typowy scenariusz dla osoby tworzącej aplikacje metodą vibe coding w 2026 roku: wieczorem tworzysz MVP w Cursorze lub Claude Code, przenosisz je do repozytorium GitHub, otwierasz vercel.com → łączysz repozytorium → dochodzisz do ekranu subskrypcji → podajesz kartę → otrzymujesz `Transaction declined`.

To nie jest błąd ani chwilowa awaria.

Railway, Render, Heroku — wszędzie wygląda to tak samo. Heroku faktycznie zamknęło darmowy plan dla wszystkich w 2022 roku, a w lutym 2026 roku projekt przeszedł w tryb utrzymaniowy — bez nowych funkcji i nowych umów Enterprise. Dla użytkownika z nieobsługiwaną kartą oznacza to: „drzwi są zamknięte; obejdź je przez pośrednika pobierającego 20% prowizji”.

Możesz płacić przez wirtualne karty Visa w Kazachstanie albo firmowe usługi płatnicze. Oznacza to jednak dodatkowe 20% do ceny, 30 minut na każdą transakcję i ryzyko zablokowania konta, gdy operator płatności wykryje niezgodność kraju.

W oryginalnym przykładzie uwzględniono trzy próby — w Vercel Pro, Railway i Render.

## Czym jest Coolify i jak działa platforma self-hosted?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section highlights">

Najważniejszy wniosek

Coolify to platforma PaaS o otwartym kodzie źródłowym, którą można hostować samodzielnie, i bezpośrednia alternatywa dla Heroku, Vercel i Netlify. Instaluje się ją jednym poleceniem curl na dowolnym VPS-ie z Ubuntu. Pod spodem wykorzystuje Docker + Traefik jako reverse proxy oraz Let's Encrypt do obsługi HTTPS. Oferuje integrację z GitHubem, webhooki do automatycznych wdrożeń, kopie zapasowe S3 i ponad 280 usług uruchamianych jednym kliknięciem (PostgreSQL, Redis, MinIO). Wersja self-hosted jest zawsze bezpłatna i nie ma limitów. Projekt ma 55,800 gwiazdek w serwisie GitHub i licencję Apache-2.0.

</div>

Coolify to projekt o otwartym kodzie źródłowym, zbudowany przy użyciu Laravel + Docker, który zamienia dowolny pusty VPS w platformę do wdrażania aplikacji. Zainstaluj Coolify raz, a potem rób wszystko z poziomu interfejsu internetowego: połącz GitHub, wybierz repozytorium i kliknij Deploy.

Oficjalna dokumentacja ujmuje to krótko i precyzyjnie:

<figure>
<blockquote>
<p>Coolify to alternatywa o otwartym kodzie źródłowym, którą można hostować samodzielnie, dla Heroku / Netlify / Vercel itp.</p>
</blockquote>
<figcaption>— Plik README Coolify w serwisie GitHub, https://github.com/coollabsio/coolify</figcaption>
</figure>

Pod spodem Coolify składa się z czterech części:

1.  **Interfejs internetowy zbudowany przy użyciu Laravel 12 + Livewire 3 + Tailwind v4** — panel do zarządzania aplikacjami.
2.  **Docker + Docker Compose** — każda aplikacja działa w kontenerze, odizolowana od pozostałych.
3.  **Reverse proxy (Traefik lub Caddy)** — odbiera przychodzący ruch HTTP/HTTPS i kieruje go do kontenerów.
4.  **Integracja z Let's Encrypt** — automatycznie wystawia i odnawia certyfikaty SSL dla wszystkich domen.

Najważniejsze funkcje, dzięki którym Coolify pod względem funkcjonalnym dorównuje Vercelowi:

| Funkcja | Vercel | Coolify |
|----|----|----|
| Automatyczne wdrożenie po git push | ✅ | ✅ (przez webhook GitHub) |
| Bezpłatne HTTPS | ✅ | ✅ (Let's Encrypt) |
| Wdrożenia podglądowe PR | ✅ | ✅ (przez GitHub App) |
| Interfejs do zmiennych środowiskowych | ✅ | ✅ |
| Kopie zapasowe baz danych | ❌ (nie ma własnych baz danych) | ✅ (w pamięci zgodnej z S3) |
| PostgreSQL / Redis / MongoDB | \$20+/miesiąc każda | ✅ Jednym kliknięciem, bezpłatnie |
| Zadania zaplanowane (cron) | ❌ | ✅ (składnia cron) |
| Opłata za stanowisko | \$20/stanowisko/miesiąc | Brak |
| Uzależnienie od dostawcy | Duże (Edge Functions, ISR) | Żadne (Twój Docker) |
| Globalna sieć CDN | ✅ | ❌ (tylko Twój VPS) |

Globalna sieć CDN to jedyna funkcja, której Coolify nie oferuje od razu. To uczciwa odpowiedź. Jeśli Twój projekt ma odbiorców na całym świecie i chcesz zmniejszyć opóźnienia dla użytkowników w USA i Europie, umieść przed nim Cloudflare; w przypadku treści statycznych jest bezpłatny.

Cena: **wersja self-hosted jest zawsze bezpłatna** i nie ma limitów liczby aplikacji, serwerów ani wdrożeń. Coolify Cloud jest dostępny za \$5/miesiąc za 2 serwery + \$3 za każdy kolejny — same serwery nadal należą jednak do Ciebie; Coolify Cloud hostuje tylko panel.

Najnowsze wydanie to **v4.1.0 z 18 maja 2026 roku**. Nowe funkcje obejmują pakiet do budowania Railpack w wersji beta, rejestrowanie audytu, różnice konfiguracji między wdrożeniami oraz natywny endpoint MCP (tylko do odczytu). Źródło: [wydania w serwisie GitHub](https://github.com/coollabsio/coolify/releases).

## Jaki VPS wybrać do Coolify w 2026 roku?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section highlights">

Najważniejszy wniosek

Coolify wymaga minimum 2 vCPU, 2 GB RAM, 30 GB SSD i Ubuntu LTS (20.04, 22.04 lub 24.04). Taki VPS bez problemu uruchomi równolegle 3–5 projektów stworzonych metodą vibe coding.

</div>

Minimalne wymagania Coolify pochodzą bezpośrednio z [oficjalnej dokumentacji](https://coolify.io/docs/get-started/installation):

| Parametr | Minimum | Zalecane |
|-------------|----------------------------------|---------------------------|
| CPU | 2 rdzenie | 2–4 rdzenie |
| RAM | 2 GB | 4 GB (z zapasem na buildy) |
| Pamięć masowa | 30 GB | 50–80 GB (na obrazy + bazy danych) |
| Architektura | AMD64 lub ARM64 (64-bit) | AMD64 |
| System operacyjny | Ubuntu LTS 20.04 / 22.04 / 24.04 | 22.04 LTS |
| Root | Wymagany | Przez klucz SSH, nie hasło |

Minimum — 2 GB RAM — to **bezwzględna dolna granica**. Przy 1 GB instalator dochodzi do Dockera, napotyka OOM (brak pamięci) i zawiesza się. Nie oszczędzaj na RAM-ie.

Źródła cen: [Timeweb Cloud](https://timeweb.cloud/services/vds-vps), [FirstVDS](https://firstvds.ru/products/vds_vps_hosting) oraz [Selectel](https://selectel.ru/services/cloud/vps-vds/).

Jeśli potrzebujesz większej mocy (baza danych o rozmiarze 100 GB, kilka instancji Postgres), wybierz Aeza Dedicated.

Czego NIE wybierać:

- **Współdzielony VPS z 512 MB–1 GB RAM** — za mało nawet dla Coolify. To rozwiązanie dla statycznych witryn na nginx, nie dla platformy PaaS.

Chcesz nie tylko skonfigurować wdrażanie, ale też zbudować **konfigurację, która zapewni Claude niezawodność**? Coolify jest narzędziem wykonawczym, ale bez uporządkowanego kontekstu ([`CLAUDE.md`](https://ailoot.ai/blog/pl/claude-md-template/), [drugiego mózgu](https://ailoot.ai/blog/pl/claude-code-second-brain/) i [inżynierii kontekstu](https://ailoot.ai/blog/pl/context-engineering/)) Claude nadal będzie halucynować przy długich zadaniach. Pełna konfiguracja obejmuje wszystkie trzy elementy: **klon AI + Drugi Mózg + Inżynieria Kontekstu** — to połączenie zmienia Claude z „asystenta, który halucynuje” w niezawodne narzędzie.

## Jak zainstalować Coolify w 5 minut

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section highlights">

Najważniejszy wniosek

Instalacja wymaga jednego polecenia curl z dokumentacji. Po jej rozpoczęciu pojawi się interfejs internetowy na porcie 8000. Tam tworzysz pierwszego użytkownika administratora i widzisz pusty panel. Od pustej instalacji Ubuntu do działającego Coolify mija faktycznie 5–7 minut, z czego 3–4 minuty zajmuje `apt-get install docker`. Skrypt pobiera wymagane zależności i sam konfiguruje Dockera; wystarczy poczekać na zakończenie.

</div>

**Krok 1. Połącz się z VPS-em przez SSH.**

Po utworzeniu VPS-a u dostawcy adres IP serwera i hasło roota pojawią się w wiadomości e-mail lub panelu. Połącz się z lokalnego komputera:

```bash
ssh root@1.2.3.4
```

Jeśli dostawca przekazał klucz SSH zamiast hasła, połącz się z użyciem `-i path/to/key`. Od tego miejsca zakładam, że korzystasz ze świeżej instalacji Ubuntu 22.04 lub 24.04 LTS.

**Krok 2. Uruchom polecenie instalacyjne Coolify.**

Jedno polecenie z [oficjalnej dokumentacji](https://coolify.io/docs/get-started/installation):

```bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
```

Skrypt wykonuje trzy czynności:

1.  Sprawdza system (Ubuntu LTS? root? AMD64?)
2.  Instaluje Docker i Docker Compose, jeśli nie są jeszcze zainstalowane
3.  Pobiera obrazy Coolify (`coolify/coolify`, `coolify/realtime`, `traefik`) i uruchamia je w tle za pomocą docker-compose

Zajmuje to 3–5 minut. Zobaczysz przewijające się logi `apt-get`, a potem `docker pull`. Gdy pojawi się `Coolify v4.1.0 is now running`, przejdź do kroku 3.

**Krok 3. Otwórz interfejs internetowy.**

Otwórz w przeglądarce:

```
http://1.2.3.4:8000
```

Coolify wyświetli kreator konfiguracji — formularz tworzenia pierwszego użytkownika. Podaj adres e-mail i hasło, a następnie zapisz. Ten użytkownik automatycznie zostanie administratorem; na razie nie potrzebujesz innych użytkowników.

Po zapisaniu trafisz do pustego panelu: po lewej stronie będzie pasek boczny z pozycjami Resources / Projects / Servers / Sources / Notifications / Settings, a na środku prośba „Add your first resource”.

**Krok 4. Otwórz porty w zaporze dostawcy (nie UFW).**

Coolify już działa, ale z zewnątrz dostępny jest tylko port 8000 (panel). Aby użytkownicy mogli dotrzeć do Twoich aplikacji, musisz otworzyć porty 80 (HTTP) i 443 (HTTPS):

| Port | Przeznaczenie |
|----|----|
| 22 | Dostęp SSH do serwera |
| 80 | Odbiera ruch HTTP, wymagany do weryfikacji Let's Encrypt |
| 443 | Odbiera ruch HTTPS użytkowników |
| 8000 | Panel Coolify (zamkniemy go po skonfigurowaniu własnej domeny dla panelu) |

Ważna pułapka wskazana w oficjalnej dokumentacji:

<figure>
<blockquote>
<p>Docker używa reguł iptables opartych na NAT, które mogą omijać tradycyjne zapory Linuksa, takie jak UFW.</p>
</blockquote>
<figcaption>— Dokumentacja Coolify (firewall), https://coolify.io/docs/knowledge-base/server/firewall</figcaption>
</figure>

Oznacza to, że nawet jeśli włączysz UFW i zamkniesz wszystkie porty, Docker nadal będzie udostępniać swoje kontenery przez iptables. UFW jest tu bezużyteczne. Rozwiązanie to **otwieranie i zamykanie portów w panelu dostawcy**, a nie przez UFW. W Timeweb / Selectel / Aeza zrobisz to w sekcji „Network → Firewall” konsoli internetowej.

**Krok 5 (opcjonalny). Przypisz domenę do panelu.**

Aby otwierać `https://coolify.example.com` zamiast `http://1.2.3.4:8000`, utwórz rekord DNS A `coolify.example.com → 1.2.3.4`, przejdź w Coolify do **Settings → Instance Settings → Instance Domain**, wpisz subdomenę i zapisz. Coolify poprosi o certyfikat Let's Encrypt i po minucie ponownie załaduje panel przez HTTPS.

Potem możesz zamknąć port 8000 w zaporze — panel będzie dostępny przez HTTPS na standardowym porcie 443.

## Jak połączyć GitHub: App czy PAT?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section highlights">

Najważniejszy wniosek

Coolify obsługuje dwa sposoby łączenia z GitHubem: **GitHub App** (zalecany) oraz **Personal Access Token (PAT)**. Wybierz GitHub App: konfiguracja z kreatorem zajmuje 5 minut, podglądy PR działają, a uprawnienia można precyzyjnie ograniczyć do poziomu repozytorium. PAT to przestarzała opcja na potrzeby starszych przypadków; nie obsługuje wdrożeń podglądowych i niesie ryzyko globalnego dostępu do wszystkich repozytoriów. Oficjalna dokumentacja mówi wprost: „dla 95% użytkowników GitHub App to właściwy wybór”.

</div>

W Coolify przejdź do **Sources → + Add → GitHub App**. Coolify wyświetli kreator z trzema ekranami:

1.  **Name & description** — nazwij źródło (wpisz `github-main`) i opcjonalnie dodaj opis.
2.  **Configure on GitHub** — przycisk, który przeniesie Cię do GitHub.com i automatycznie otworzy formularz tworzenia aplikacji GitHub z właściwymi uprawnieniami.
3.  **Confirm** — po powrocie z GitHuba kliknij „Save”.

W drugim kroku GitHub poprosi o potwierdzenie uprawnień wymaganych przez Coolify:

| Uprawnienie | Poziom | Przeznaczenie |
|-----------------|------------|----------------------------------------------|
| Contents | Tylko do odczytu | Klonowanie repozytorium |
| Pull Requests | Odczyt i zapis | Tworzenie wdrożeń podglądowych i komentowanie PR |
| Email addresses | Tylko do odczytu | Identyfikowanie commitów |
| Metadata | Tylko do odczytu | Wyświetlanie listy repozytoriów |

To **minimalne uprawnienia** — GitHub App nie widzi Twoich kluczy prywatnych, nie może zapisywać do `main` i nie ma dostępu do repozytoriów, których jawnie z nią nie połączysz.

Z oficjalnej dokumentacji:



Personal Access Token (PAT) to stara metoda; **odradzam jej używanie**. Wady:

- PAT zapewnia globalny dostęp do wszystkich Twoich repozytoriów (w tym prywatnych)
- Podglądy PR nie działają — ta funkcja jest dostępna wyłącznie w GitHub App
- Token ma długi okres ważności (90 dni, rok lub bezterminowo) — jego wyciek to poważny problem

Używaj PAT tylko wtedy, gdy pracujesz z repozytorium organizacji, której polityka bezpieczeństwa zabrania korzystania z GitHub Apps i nie ma innego rozwiązania.

Po zapisaniu źródła w Coolify w panelu zobaczysz GitHub App wraz z listą połączonych repozytoriów. Podczas tworzenia nowej aplikacji będzie można wybrać dowolne z nich jednym kliknięciem.

## Jak wdrożyć projekt Next.js z Claude Code w 6 krokach

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section highlights">

Najważniejszy wniosek

Pełna droga od pustej konfiguracji Claude Code do działającej witryny: 1) uruchom `claude` w pustym folderze, opisz projekt, a Claude wygeneruje kod; 2) uruchom `git init && git remote add` (Claude może zrobić to sam za pomocą polecenia slash); 3) wypchnij projekt do GitHuba; 4) w Coolify wybierz „+ New Resource → Application” i wskaż repozytorium; 5) dodaj zmienne środowiskowe; 6) kliknij Deploy. Coolify rozpozna, że to Next.js, wybierze pakiet do budowania Nixpacks, w 3–5 minut zbuduje obraz Dockera i udostępni tymczasową domenę.

</div>

**Krok 1. Opisz projekt Claude Code w pustym folderze.**

```bash
mkdir my-vibe-app
cd my-vibe-app
git init
claude
```

W sesji:

```
Build a Next.js 14 app router project:
- a home page with a list of users
- /api/users endpoint returns an array from the database
- Postgres via Prisma
- Tailwind for styles
- .env.example with DATABASE_URL
- README.md with instructions for running the project
```

Claude wygeneruje strukturę plików, package.json, prisma/schema.prisma i .env.example. Poproś też:

```
Create a Dockerfile for production builds and a .dockerignore.
```

To opcjonalne — Coolify zbuduje projekt za pomocą Nixpacks nawet bez Dockerfile. Dockerfile pozwala jednak kontrolować ten proces i przyspiesza go w większych projektach.

**Krok 2. Utwórz repozytorium GitHub i wypchnij do niego projekt.**

Możesz zrobić to ręcznie w interfejsie GitHuba za pomocą `git remote add origin ...`, ale Claude Code może wykonać tę czynność:

```
/commit-push-pr Initial Next.js app generated with Claude Code
```

Możesz też po prostu powiedzieć: „Zatwierdź wszystko i wypchnij do nowego repozytorium `my-vibe-app` na moim koncie”. Claude użyje interfejsu wiersza poleceń `gh`, aby utworzyć prywatne (lub publiczne) repozytorium i wykonać pierwszy push. Źródło: [oficjalne polecenie Claude Code](https://github.com/anthropics/claude-code/blob/main/.claude/commands/commit-push-pr.md).

**Krok 3. Utwórz aplikację w Coolify.**

W panelu Coolify kliknij **+ New → Application**. Otworzy się formularz:

1.  **Source** — wybierz `github-main` (GitHub App połączoną w poprzedniej sekcji H2)
2.  **Repository** — wybierz z listy `my-vibe-app`
3.  **Branch** — `main`
4.  **Build Pack** — Coolify automatycznie wykryje właściwy pakiet. Jeśli istnieje Dockerfile, użyje `dockerfile`. W przeciwnym razie użyje `nixpacks`. Możesz ręcznie zmienić ten wybór.
5.  **Domain** — na razie pozostaw sugerowaną wartość; jest tymczasowa i później zastąpisz ją własną
6.  **Port** — `3000` dla Next.js w ustawieniu domyślnym

Zapisz.

**Krok 4. Dodaj zmienne środowiskowe.**

W utworzonej aplikacji otwórz kartę **Environment Variables**. Dodawaj zmienne pojedynczo:

```
DATABASE_URL=postgresql://user:pass@db-host:5432/mydb
NODE_ENV=production
ANTHROPIC_API_KEY=sk-ant-...
```

Jeśli nie masz bazy danych, utwórz ją bezpośrednio w Coolify: **+ New → Database → PostgreSQL**. Coolify uruchomi kontener Postgresa w 30 sekund i poda wewnętrzny DATABASE_URL w formacie `postgresql://postgres:pass@postgres-xyz:5432/postgres` — wprowadź go w swojej aplikacji.

Wszystkie zmienne są szyfrowane w bazie danych Coolify i nie są wyświetlane w logach budowania.

**Krok 5. Kliknij Deploy.**

W prawym górnym rogu znajduje się niebieski przycisk Deploy. Bieżące logi pojawią się w karcie Logs:

```
[stage: clone]   Cloning '<repository-url-from-github>'
[stage: build]   Detected Next.js, using Nixpacks
[stage: build]   Installing Node 20, npm 10
[stage: build]   npm install (245s)
[stage: build]   npm run build (87s)
[stage: deploy]  Creating container my-vibe-app-xyz
[stage: deploy]  Container started, health check passed
[stage: proxy]   Traefik routing configured for temporary domain
[stage: ssl]     Let's Encrypt cert issued for temporary domain
```

Pierwsze budowanie trwa 3–5 minut (pobiera bazowy obraz Node i instaluje zależności). Kolejne zajmują 60–90 sekund dzięki buforowaniu warstw Dockera.

Gdy status zmieni się na **Running**, skopiuj URL aplikacji z pola **Domains** w Coolify i otwórz dokładnie ten adres w przeglądarce. Poniżej używaj tej wartości jako `<app-url-from-coolify>`; etykieta w nawiasach kątowych jest miejscem zastępczym, nie prawdziwym adresem. Powinna pojawić się strona główna z obsługą HTTPS od razu po wdrożeniu. To bezpłatna usługa wildcard DNS, która rozpoznaje każdą subdomenę zawierającą adres IP (`1-2-3-4.example` → `1.2.3.4`). Coolify używa jej dla tymczasowych domen, aby można było od razu otworzyć witrynę bez konfigurowania własnego DNS.

**Krok 6. Sprawdź, czy wszystko działa.**

Otwórz URL aplikacji z poprzedniego kroku z dopisanym `/api/users`, np. `<app-url-from-coolify>/api/users`, bez podwójnego ukośnika. To punkt końcowy JSON utworzony w kroku 1; główny URL aplikacji prowadzi do strony głównej. Jeśli pojawi się błąd 500, ślad stosu będzie widoczny w karcie Logs. Najczęstszy problem przy pierwszym wdrożeniu to wskazanie przez DATABASE_URL nieistniejącej bazy. Rozwiąż go, tworząc instancję PostgreSQL w Coolify (zobacz krok 4 powyżej) i zastępując DATABASE_URL.

15 minut, licząc od chwili zamówienia VPS-a. W oryginalnym przykładzie ten proces na świeżym serwerze zajął 12–18 minut.

## Jak skonfigurować własną domenę i HTTPS

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section highlights">

Najważniejszy wniosek

Podłączenie własnej domeny wymaga 3 kroków: utworzenia rekordu DNS A wskazującego na adres IP serwera, wpisania domeny w Configuration w Coolify zamiast tymczasowej domeny, włączenia Automatic HTTPS i kliknięcia Redeploy. Let's Encrypt automatycznie wystawi certyfikat SSL 2–3 minuty po propagacji DNS (zwykle trwa ona 5–30 minut). Kluczowe jest, aby DNS już wskazywał właściwy adres w chwili kliknięcia Redeploy; w przeciwnym razie weryfikacja Let's Encrypt się nie powiedzie i na kolejną próbę trzeba będzie poczekać 12 minut.

</div>

**Krok 1. Utwórz rekord DNS A w panelu swojego rejestratora.**

W oryginalnych przykładach używane są domeny hostowane w Reg.ru, Beget lub Timeweb. Proces jest taki sam:

| Typ rekordu | Nazwa | Wartość |
|------------|---------------------------|------------------------|
| A | `app` (lub `@` dla domeny głównej) | `1.2.3.4` (adres IP serwera) |

Zapisz rekord, otwórz konsolę i sprawdź:

```bash
dig app.example.com +short
# Should return 1.2.3.4
```

Jeśli nic nie zwraca lub zwraca inny adres IP, propagacja DNS jeszcze się nie zakończyła. Poczekaj 5–30 minut.

**Krok 2. Wpisz swoją domenę w Coolify.**

W aplikacji otwórz kartę **Configuration → General**. W polu **Domains** zastąp tymczasowy URL aplikacji skopiowany z Coolify adresem `https://app.example.com` (używając własnej skonfigurowanej domeny). Włącz **Automatic HTTPS** (zwykle jest już włączona).

Zapisz i kliknij **Redeploy**.

**Krok 3. Poczekaj na certyfikat Let's Encrypt.**

W logach budowania pojawi się:

```
[stage: ssl]  Requesting Let's Encrypt cert for app.example.com
[stage: ssl]  HTTP challenge sent to /.well-known/acme-challenge/xxx
[stage: ssl]  Validation passed, cert issued
[stage: ssl]  Cert installed, HTTPS enabled
```

Po 2–3 minutach Twoja witryna będzie dostępna pod adresem `https://app.example.com` z zieloną kłódką na pasku adresu.

Co może pójść nie tak z Let's Encrypt (3 najczęstsze problemy z [oficjalnego przewodnika rozwiązywania problemów](https://coolify.io/docs/troubleshoot/dns-and-domains/lets-encrypt-not-working)):

1.  **Port 80 jest zamknięty w zaporze.** Let's Encrypt weryfikuje domenę za pomocą HTTP challenge — wysyła żądanie do `http://app.example.com/.well-known/acme-challenge/xxx`. Bez portu 80 weryfikacja się nie powiedzie. Otwórz go w zaporze dostawcy.
2.  **Włączone jest proxy Cloudflare (pomarańczowa chmurka).** Przechwytuje żądanie Let's Encrypt i zwraca własną stronę zastępczą — weryfikacja się nie powiedzie. Rozwiązaniem jest przełączenie na „DNS only” (szara chmurka) albo skonfigurowanie wyzwania DNS-01 przez API Cloudflare.
3.  **DNS jeszcze się nie rozpropagował.** Jeśli rekord A utworzono 30 sekund temu i od razu kliknięto Redeploy, Let's Encrypt nie znajdzie domeny. Poczekaj 5–30 minut na propagację DNS na serwerach.

Limit Let's Encrypt: **5 nieudanych prób na godzinę dla jednej domeny**, a możliwość ponowienia wraca w tempie 1 próby co 12 minut. Jeśli osiągniesz limit, nie klikaj Redeploy 10 razy z rzędu; sprawdź logi, napraw problem i spróbuj ponownie za 12 minut.

## Jak Claude Code zarządza Coolify przez MCP?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section highlights">

Najważniejszy wniosek

Za pośrednictwem Model Context Protocol Claude Code uzyskuje bezpośredni dostęp do API Coolify — możesz polecić „wdroż tę aplikację”, aby rozpocząć budowanie, sprawdzić status, odczytać logi lub zaktualizować zmienne środowiskowe. Dostępne są trzy opcje: forsonny/Coolify-MCP-Server (podstawowa, 7 kategorii operacji), dazeb/coolify-mcp-enhanced (ponad 15 dodatkowych narzędzi i wdrażanie baz danych jednym kliknięciem) oraz ajmcclary/Coolify-Manager (umiejętność Claude oparta na oficjalnym CLI). Od wersji v4.1.0 (18 maja 2026 roku) Coolify udostępnia natywny endpoint MCP, bez serwerów firm trzecich — na razie tylko do odczytu.

</div>

Model Context Protocol (MCP) to standard Anthropic, który pozwala Claude Code komunikować się z systemami zewnętrznymi (więcej informacji znajdziesz w [przewodniku po serwerach MCP](https://ailoot.ai/blog/pl/mcp-servers-claude-code/)). Po podłączeniu serwera MCP Claude otrzymuje zestaw narzędzi, z których może korzystać. Dostępne są trzy gotowe serwery Coolify oraz jedna opcja natywna.

**Opcja 1. forsonny/Coolify-MCP-Server-for-Claude-Code — podstawowa.**



Możliwości:

- **Applications:** tworzenie, uruchamianie, zatrzymywanie, ponowne uruchamianie
- **Services:** lista, tworzenie, uruchamianie/zatrzymywanie/ponowne uruchamianie
- **Deployments:** wyświetlanie działających, pobieranie po UUID
- **Teams & Members:** wyświetlanie listy, pobieranie informacji
- **SSH Keys:** wyświetlanie listy, tworzenie
- **Environment Variables:** pełne operacje CRUD dla aplikacji i usług
- **Server Insights:** domeny dla serwera, stan, wersja

Instalacja:

```bash
git clone '<OFFICIAL_URL>'
cd Coolify-MCP-Server-for-Claude-Code
npm install
npm run build
# In .env:
#   COOLIFY_BASE_URL=https://coolify.example.com
#   COOLIFY_API_TOKEN=[from Coolify Settings → API Tokens]
npm run setup  # automatically configures Claude Code
```

Następnie możesz wpisać w Claude Code:

```
Show the status of the my-vibe-app application in Coolify and the 3 latest deployments.
```

Claude zwróci tabelę.

**Opcja 2. dazeb/coolify-mcp-enhanced — rozszerzona (zalecana).**



Dodatkowe możliwości względem podstawowego zestawu:

- **Wdrażanie PostgreSQL / Redis / MinIO jednym kliknięciem** — poproś AI „skonfiguruj mi Postgresa”, a utworzy kontener i zwróci DATABASE_URL
- **Monitorowanie w czasie rzeczywistym + użycie zasobów** — CPU/RAM dla każdej aplikacji w czasie rzeczywistym
- **Masowa aktualizacja konfiguracji env** — zaktualizuj 20 zmiennych jednym poleceniem
- **Obsługa Docker Compose** — wdrażanie aplikacji złożonych z wielu usług

Konfiguracja dla Claude Code (`.mcp.json` w katalogu głównym projektu):

```json
{
  "mcpServers": {
    "coolify-enhanced": {
      "command": "node",
      "args": ["/path/to/coolify-mcp-enhanced/dist/index.js"],
      "env": {
        "COOLIFY_ACCESS_TOKEN": "your-token-here",
        "COOLIFY_BASE_URL": "https://coolify.example.com"
      }
    }
  }
}
```

**Opcja 3. ajmcclary/Coolify-Manager — umiejętność Claude oparta na CLI.**



To nie jest serwer MCP, lecz umiejętność Claude Code korzystająca z oficjalnego CLI Coolify. Obejmuje:

- Diagnostykę stanu usług i kontenerów
- Diagnostykę certyfikatów SSL
- Obsługę wielu instancji (jeśli masz kilka serwerów Coolify)
- Przepisy rozwiązywania problemów

Instalacja: pobierz umiejętność i umieść ją w `~/.claude/skills/coolify-manager/`. Claude Code wykryje ją i zaproponuje przy odpowiednich zadaniach.

**Opcja 4 (nowość z maja 2026 roku). Natywny MCP w Coolify v4.1.0.**

Dziennik zmian v4.1.0 z 18 maja 2026 roku informuje:

> Dodano obsługę MCP na poziomie instancji z narzędziami tylko do odczytu dla zasobów Coolify oraz API/UI.

Coolify udostępnia teraz własny endpoint MCP — możesz połączyć z nim Claude Code bezpośrednio, bez serwerów firm trzecich. Na razie jest **tylko do odczytu** (listy aplikacji, statusy, konfiguracje); nie obsługuje modyfikowania danych. To jednak wystarcza do większości zadań w rodzaju „opowiedz mi o infrastrukturze”.

Połącz przez `.mcp.json`:

```json
{
  "mcpServers": {
    "coolify-native": {
      "url": "https://coolify.example.com/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer <your-api-token>"
      }
    }
  }
}
```

Poczekaj na pełny dostęp do zapisu w natywnym MCP w wersji v4.2 lub v4.3 — zespół Coolify obiecał go przed końcem 2026 roku.

## 5 pułapek przy pierwszym wdrożeniu — i jak ich uniknąć

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section highlights">

Najważniejszy wniosek

Najczęstsze błędy przy pierwszym wdrożeniu to niewystarczająca ilość RAM-u, zamknięty port 80, proxy Cloudflare zakłócające Let's Encrypt, nieskuteczna zapora UFW wobec Dockera i wybór PAT zamiast GitHub App. Wszystkie te problemy opisano w oficjalnej dokumentacji, ale bez praktycznego doświadczenia łatwo na nie trafić. Poniżej znajduje się pięciopunktowa lista kontrolna oparta na pierwotnym doświadczeniu z pierwszą instalacją Coolify.

</div>

**Pułapka 1: mniej niż 2 GB RAM — instalacja kończy się błędem OOM.**

Objaw: `curl install.sh` dochodzi do `docker pull coolify/coolify`, zatrzymuje się przy 70%, a potem proces zostaje zakończony komunikatem `Killed (signal 9)`. W logach `dmesg | tail` pojawia się `Out of memory: Killed process`.

Rozwiązanie:

```bash
# Utwórz plik wymiany o rozmiarze 4 GB, aby tymczasowo rozwiązać problem
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
```

Na dłuższą metę zwiększ RAM do 4 GB. Coolify działa z pamięcią wymiany, ale buildy dużych projektów Next.js mogą się nie powieść.

**Pułapka 2: UFW jest włączone, ale Docker nadal otwiera porty.**

Objaw: włączono UFW i zamknięto wszystkie porty poza 22, ale aplikacja nadal jest dostępna z internetu na jakimś losowym porcie (na przykład 3000).

Powód, podany w [oficjalnej dokumentacji](https://coolify.io/docs/knowledge-base/server/firewall):

<figure>
<blockquote>
<p>Coolify działa w Dockerze, który używa reguł iptables opartych na NAT i może omijać tradycyjne zapory Linuksa, takie jak UFW.</p>
</blockquote>
<figcaption>— Dokumentacja Coolify (firewall), https://coolify.io/docs/knowledge-base/server/firewall</figcaption>
</figure>

Rozwiązanie: użyj **zapory w panelu swojego dostawcy**, a nie UFW. W Timeweb / Selectel / Aeza znajdziesz sekcję „Firewall” lub „Network → Firewall”, gdzie skonfigurujesz reguły na poziomie sieci wirtualnej — działają one, zanim pakiety dotrą do Dockera.

Alternatywą jest ufw-docker, skrypt dostosowujący UFW do współpracy z Dockerem. To jednak bardziej skomplikowane niż kliknięcie odpowiedniej opcji w panelu.

**Pułapka 3: proxy Cloudflare (pomarańczowa chmurka) zakłóca Let's Encrypt.**

Objaw: po kliknięciu Redeploy logi pokazują `Let's Encrypt validation failed - challenge returned 403`.

Powód: Cloudflare przekierowuje żądanie HTTP Let's Encrypt i zwraca własną stronę zamiast pliku weryfikacyjnego.

Rozwiązanie — wybierz jedną z dwóch opcji:

1.  **Przełącz na „DNS only”** (szara chmurka w Cloudflare). Wada: tracisz CDN Cloudflare i ochronę.
2.  **Skonfiguruj wyzwanie DNS-01 przez API Cloudflare.** W Coolify przejdź do Settings → SSL Configuration, wybierz dostawcę Cloudflare i podaj token API z uprawnieniami Zone:Read i DNS:Edit. Let's Encrypt przeprowadzi weryfikację przez rekord TXT zamiast HTTP.

Druga opcja jest trudniejsza w konfiguracji, ale pozwala zachować proxy Cloudflare.

**Pułapka 4: PAT zamiast GitHub App — podglądy PR nie działają.**

Objaw: połączono GitHub za pomocą Personal Access Token; wszystko działa, ale wdrożenia podglądowe nie są tworzone dla PR. Otworzono PR w GitHubie, ale nic nie pojawiło się w Coolify.

Powód: podglądy PR są funkcją dostępną wyłącznie w GitHub App. PAT nie odbiera zdarzeń `pull_request` przez webhook.

Rozwiązanie: połącz ponownie GitHub przez App. Sources → Add → GitHub App → ukończ kreator. Możesz usunąć stare źródło PAT.

**Pułapka 5: stwierdzenie „Coolify == Vercel” nie jest całkiem prawdziwe.**

Czego Coolify **nie robi** od razu:

| Vercel | Coolify | Co zrobić |
|----|----|----|
| Globalna sieć CDN | Nie | Umieść przed nim Cloudflare (bezpłatny dla treści statycznych) |
| Incremental Static Regeneration | Nie | `revalidatePath` działa tylko na Twoim serwerze |
| Optymalizacja obrazów | Nie | Użyj `next/image` z lokalnym loaderem lub Cloudflare Images |
| Automatyczne skalowanie w czasie szczytowego ruchu | Nie | Skaluj ręcznie; zwiększ zasoby VPS-a |
| Edge Functions | Nie | Użyj zwykłych tras API |

Jeśli Twój projekt to SaaS o dużym ruchu, z odbiorcami na całym świecie i wymaganiami opóźnień \< 100 ms na całym świecie, Coolify się nie sprawdzi; wybierz Vercel Enterprise. Jeśli tworzysz aplikację metodą vibe coding i testujesz MVP na 100–1,000 użytkownikach dziennie, Coolify zapewnia wszystko, czego potrzebujesz.

Z uczciwej analizy self-hostingu:



15 minut w tytule tego przewodnika odnosi się do optymalnej ścieżki pierwszego wdrożenia jednego projektu. Pełna konfiguracja infrastruktury z monitoringiem, kopiami zapasowymi i alertami zajmuje wieczór lub dwa. Bądź ze sobą szczery.

## Ile zaoszczędzisz w ciągu roku w porównaniu z Vercel?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section highlights">

Najważniejszy wniosek

Dochodzi „ukryty podatek czasowy”: 5–10 godzin na początkową konfigurację i 1–2 godziny miesięcznie na utrzymanie.

</div>

Poniższe liczby Vercel są szacunkami scenariuszy artykułu z maja 2026, a nie aktualną wyceną. Pokazują tylko jedną stronę porównania. Samodzielnie hostowany Coolify nie ma opłaty licencyjnej, ale VPS, kopie zapasowe, magazyn danych, ruch i obsługa nadal kosztują. Uzyskaj wycenę spełniającą powyższe wymagania; scenariusze nie podają ceny VPS, więc stała oszczędność kwotowa byłaby nieuzasadniona.

Niech **C** oznacza cały miesięczny rachunek za wybrany VPS, magazyn kopii, dodatkowy ruch, monitorowanie i ewentualny płatny panel. Każdy wydatek uwzględnij raz. Niech **r** oznacza godzinowy koszt obsługi, w tej samej walucie. Szacunek czasu z artykułu to 5–10 godzin początkowo i 1–2 miesięcznie: **17–34 godziny w pierwszym roku** i **12–24 w następnych latach**.

| Scenariusz | Szacunek Vercel/miesiąc | Vercel/rok | Infrastruktura Coolify/miesiąc | TCO Coolify w pierwszym roku z pracą | Oszczędność pierwszego roku względem Vercel |
|----|----|----|----|----|----|
| Jeden prototyp, 100,000 wizyt/miesiąc | $20 podstawy + ~$5 transferu = $25 | $300 | C | 12C + (17–34)r | $300 − 12C − (17–34)r |
| Pięć projektów na jednym VPS | $20 podstawy + $30 transferu/funkcji = $50 | $600 | C | 12C + (17–34)r | $600 − 12C − (17–34)r |
| Trzech programistów, pięć projektów | $60 stanowisk + $30 transferu = $90 | $1,080 | C | 12C + (17–34)r | $1,080 − 12C − (17–34)r |

Użyj osobnego C dla każdego scenariusza, jeśli obciążenia potrzebują różnych serwerów. W porównaniu miesięcznym rozłóż konfigurację na 12 miesięcy: ekwiwalent pierwszego roku to **C + (17–34)r/12**. TCO następnych lat wynosi **12C + (12–24)r**. Wzory porównują podany szacunek Vercel z kosztami samodzielnego hostowania; po stronie Vercel także uwzględnij porównywalną obsługę. Ujemna oszczędność oznacza droższy self-hosting przy Twoich danych. Nie doliczaj ponownie pełnej pensji tego samego inżyniera, jeśli r już ją zawiera.

Przed zmianą wypełnij C rzeczywistą wyceną dostawcy i planem kopii, wybierz r i porównaj faktyczne użycie przez miesiąc. Bez tych danych artykuł dostarcza model kosztu, nie kwotową deklarację oszczędności.

Największą korzyścią nie są pieniądze. Po przejściu na Coolify **znika kategoria „zależność od cudzej polityki płatności”**. Nie potrzebujesz już wirtualnych kart z 20% prowizją.

Coolify nie jest tańszym Vercel. To produkt z innej kategorii: posiadasz infrastrukturę, bierzesz za nią odpowiedzialność i godzisz się na złożoność; wynik finansowy zależy od pełnego kosztu infrastruktury i obsługi.

Jeśli wdrożenie prototypu jest Twoim pierwszym zadaniem po wygenerowaniu projektu w Claude Code, zarządzanie środowiskiem (env, sekrety, zadania zaplanowane, kopie zapasowe) stanowi część [**inżynierii kontekstu**](https://ailoot.ai/blog/pl/context-engineering/). Bez struktury określającej, „gdzie co się znajduje”, Claude się gubi, a każda zmiana kosztuje Cię czas. Pełna konfiguracja obejmuje: **klon AI** ([Skills](https://ailoot.ai/blog/pl/claude-code-skills-library/) i [Subagents](https://ailoot.ai/blog/pl/claude-code-subagents/) dostosowane do Twojej metodologii) + [**Drugi Mózg**](https://ailoot.ai/blog/pl/claude-code-second-brain/) (baza wiedzy o projekcie) + **Inżynieria Kontekstu** ([Plan Mode](https://ailoot.ai/blog/pl/claude-code-plan-mode/), `/compact`, środowisko wykonawcze). To **3 filary**, bez których AI halucynuje.

<div class="section" role="doc-bibliography" aria-label="Sources">

### Źródła

- [Oficjalna dokumentacja Coolify: wprowadzenie](https://coolify.io/docs/get-started/introduction)
- [Przewodnik instalacji Coolify](https://coolify.io/docs/get-started/installation)
- [Przegląd pakietów do budowania Coolify](https://coolify.io/docs/applications/build-packs/overview)
- [Baza wiedzy Coolify: firewall](https://coolify.io/docs/knowledge-base/server/firewall)
- [Rozwiązywanie problemów z Let's Encrypt w Coolify](https://coolify.io/docs/troubleshoot/dns-and-domains/lets-encrypt-not-working)
- [Cennik Coolify](https://coolify.io/pricing)
- [Coolify w serwisie GitHub: wydania v4.1.0](https://github.com/coollabsio/coolify/releases)
- [Przegląd Claude Code](https://code.claude.com/docs/en/overview)
- [Timeweb Cloud VPS](https://timeweb.cloud/services/vds-vps)
- [FirstVDS VPS](https://firstvds.ru/products/vds_vps_hosting)
- [Selectel VPS/VDS](https://selectel.ru/services/cloud/vps-vds/)
- [Cennik Vercel](https://vercel.com/pricing)

</div>

Pełny przepływ pracy z kontekstem: **klon AI + Drugi Mózg + Inżynieria Kontekstu**.



Więcej materiałów znajdziesz na [Ailoot](https://ailoot.ai/).

## Pytania i odpowiedzi

### Który URL powinien zwrócić JSON po wdrożeniu?

Skopiuj URL aplikacji z pola Domains w Coolify i otwórz jego ścieżkę /api/users. Główny URL jest stroną główną; /api/users to punkt końcowy JSON określony w przykładowym projekcie.

### Jak obliczyć oszczędność na własnym hostingu?

Zsumuj miesięczne opłaty VPS, kopii, magazynu danych, ruchu, monitorowania i opcjonalnego panelu w C. TCO pierwszego roku to 12C oraz 17–34 godzin według Twojej stawki; porównaj ze scenariuszowym rocznym szacunkiem Vercel i uwzględnij porównywalną obsługę obu stron.


## Ailoot · Firma i jej portfel projektów

Ailoot opiera się na zgromadzonym doświadczeniu operacyjnym, szerokiej bazie klientów, stabilnej usłudze i stałej kontroli KPI.

Firma i jej portfel projektów: miliony klientów; miesięczna sprzedaż liczona w miliardach.

Ailoot wykorzystuje to doświadczenie operacyjne, zapewniając dostęp przez API do funkcji AI w produktach klientów, agentach, aplikacjach i automatyzacjach.
