W Saplo baza danych nie jest osobną aplikacją z katalogu - próba postawienia PostgreSQL, MySQL czy Redis jako samodzielnego modułu kończy się błędem. Baza to kontener zdefiniowany we własnym pliku docker-compose.yml aplikacji, która jej potrzebuje. Dotyczy to aplikacji typu Docker: obok serwisu z Twoim kodem dopisujesz w tym samym pliku serwis bazy i łączysz się z nią po localhost - baza i aplikacja żyją w tym samym Boxie, więc połączenie nie wychodzi do internetu.
Przykładowe silniki
| Obraz Dockera | Po co | Typowy port |
|---|---|---|
| postgres:16 | relacyjna baza (Django, Rails, Node) | 5432 |
| mysql:8 / mariadb | relacyjna baza (WordPress, PHP, Laravel) | 3306 |
| redis:7 | cache, sesje, kolejki zadań | 6379 |
Jak postawić bazę
- Utwórz aplikację typu Docker (panel albo CLI).
- W jej
docker-compose.ymldopisz serwis bazy obok serwisu aplikacji. - Zdeployuj -
saplo deployalbo redeploy z panelu.
Hasło do bazy ustawiasz sam w docker-compose.yml albo jako zmienną środowiskową aplikacji - Saplo go nie generuje ani nie przechowuje osobno.
Jak połączyć bazę z aplikacją
Wystaw port bazy tylko na 127.0.0.1, żeby nie był widoczny z internetu, i podaj aplikacji dane połączenia jako zmienną środowiskową (np. DATABASE_URL) w panelu, sekcja Zmienne środowiskowe, albo przez saplo env set. Nie ma automatycznego wstrzykiwania zmiennych między aplikacjami - to Ty łączysz je ręcznie w konfiguracji.
Przez Claude (MCP)
Powiedz Claude'owi: "dodaj serwis Postgresa do docker-compose.yml mojej aplikacji i podłącz go przez zmienną DATABASE_URL". Claude edytuje plik i wykonuje deploy. Osobnej "aplikacji-bazy" nie da się utworzyć.
docker-compose.yml, żeby dane bazy przeżyły redeploy.