Przejdź do treści

Ustawienia cookies

Poniżej wypisujemy nazwa po nazwie, co ta strona zapisuje w Twojej przeglądarce. Możesz tu wrócić w każdej chwili; odnośnik „Ustawienia cookies” stoi w stopce każdej strony.

Polityka prywatności §7
isbre
Hosting Python

Django, Flask albo FastAPI, bez własnego VPS-a.

Wgrywasz kod, zakładasz środowisko wirtualne i wskazujesz domenę. Proces trzyma przy życiu system, certyfikat odnawia się sam, a bazę (MariaDB albo PostgreSQL) masz w pakiecie. Zaczyna się od pakietu z powłoką SSH, bo to Ty zakładasz venv.

  • Python 3.13
  • Django
  • Flask
  • FastAPI
  • Starlette
  • Litestar
  • Quart
  • PostgreSQL
19,90 zł netto/mc (≈24,48 zł brutto/mc)

pakiet Standard (M) przy płatności rocznej · VAT 23%

cena odnowienia równa startowej

Przełącznik zmienia wszystkie kwoty na tej stronie. Domyślnie netto, tak liczą firmy. VAT 23% doliczamy na fakturze.

Powłoka SSH

Python zaczyna się u nas od pakietu Standard. Powód jest techniczny.

Środowisko wirtualne zakładasz Ty i tak ma zostać, bo to Twoje zależności i Twoje wersje. Ale skoro Ty je zakładasz, musisz mieć gdzie wpisać komendę.

Start (S)

SFTP

Kopiowanie plików, bez powłoki. Panel mówi to wprost: przy próbie włączenia powłoki odpowiada, że ten pakiet jej nie zawiera. Dodanie aplikacji bez gotowego venv kończy się odmową i słusznie, bo alternatywą byłoby zameldowanie sukcesu o aplikacji, która nie ma czym wstać.

Standard · Pro · Max

powłoka

Pełna powłoka na Twoim koncie. Zakładasz środowisko, instalujesz zależności, uruchamiasz migracje i zakładasz konto administratora, tak samo jak na swoim komputerze, tylko na serwerze:

cd ~/apps/<nazwa> && python3 -m venv venv venv/bin/pip install gunicorn django

Komplet limitów wszystkich pakietów, razem z pakietem Start, jest w cenniku. Aplikacje w Node.js opisuje osobno strona o hostingu Node.js.

Jak to działa

Co dostaje Twój proces.

Cztery rzeczy, które da się sprawdzić w panelu albo w terminalu pierwszego dnia.

Python 3.13 i własne venv

Interpreter jest systemowy i wspólny dla wszystkich kont na maszynie, więc nie zajmuje Twojego dysku. Zależności trzymasz w środowisku wirtualnym per aplikacja, w ~/apps/<nazwa>/venv, więc dwie Twoje aplikacje mogą stać na różnych wersjach tej samej biblioteki.

gunicorn dla Django i Flask, uvicorn dla FastAPI

Framework wybierasz przy dodawaniu aplikacji, bo od tego zależy serwer. To nie jest formalność: FastAPI podniesione serwerem WSGI wstaje i melduje „działa”, a każde żądanie kończy się błędem. Jedna pozycja obsługuje FastAPI, Starlette, Litestar, Quart, bo wrapper jest dla nich identyczny.

Django: pliki statyczne obok aplikacji

Przy dodawaniu aplikacji Django zbieramy pliki statyczne, a serwer WWW oddaje je bezpośrednio z dysku, więc do Pythona idzie tylko to, co naprawdę musi. Migracje i konto administratora uruchamiasz sam, przez SSH.

Kompilatory i nagłówki wymienione z nazwy

W obrazie stoi build-essential, python3-dev, libpq-dev, default-libmysqlclient-dev, pkg-config, czyli komplet do zbudowania rozszerzeń w C i sterowników obu baz: psycopg i mysqlclient instalują się bez proszenia nas o cokolwiek. Nie jest to jednak komplet nagłówków dla dowolnej paczki z PyPI: jeśli Twoja zależność potrzebuje innej biblioteki systemowej, zapytaj przed zamówieniem: to zmiana w obrazie serwera, a nie ustawienie w panelu.

Baza danych

PostgreSQL jest w pakiecie, a nie w cenniku dodatków.

Silnik wybierasz przy zakładaniu bazy: MariaDB albo PostgreSQL. Obie liczą się do tej samej puli baz z Twojego pakietu, więc nie ma dopłaty za wybór jednej z nich.

Ile baz

25 w pakiecie Standard i więcej w wyższych; liczba jest w cenniku, w wierszu „Bazy”. Każdą zakładasz w panelu, razem z użytkownikiem i hasłem.

Skąd się łączysz

Aplikacja łączy się z bazą z Twojego serwera; adres i port podaje panel. Z internetu baz nie wystawiamy, bo otwarty port bazy to najkrótsza droga do cudzych danych.

Podgląd z przeglądarki

phpMyAdmin dla MariaDB i Adminer dla PostgreSQL. Otwierasz je z panelu jednorazowym podpisanym odnośnikiem, bez publicznego adresu i bez podawania hasła bazy.

Czego tu nie ma: PostgreSQL jako osobnej usługi z replikacją, dostępu z zewnątrz i wersji do wyboru. To baza dla Twojej aplikacji na tym koncie; jeśli szukasz bazy zarządzanej niezależnie od hostingu, to nie jest ta oferta i lepiej wiedzieć o tym teraz.

Limity

Ile pamięci dostanie aplikacja.

RAM i vCPU są z cennika, a pojedynczy proces aplikacji ma sufit 60% pamięci kontenera, po to, żeby jedna aplikacja nie położyła strony stojącej obok niej na tym samym koncie.

Pakiety z powłoką SSH, bo od nich zaczyna się u nas hosting aplikacji. Kolumna „Na proces” to 60% pamięci kontenera; dwie aplikacje naraz sumują się do limitu kontenera, nie ponad niego. Pełna tabela parametrów jest w cenniku.
Pakiet RAM Na proces vCPU Bazy
M · Standard 2 GB 1,2 GB 2 25
L · Pro 4 GB 2,4 GB 3 50
XL · Max 6 GB 3,6 GB 4 bez limitu
  • Port przydzielamy sami, z puli 3001–3099 na Twoim kontenerze; wstawiamy go do polecenia startowego, więc aplikacja nie musi go zgadywać.
  • Katalog i nazwy są konwencją: ~/apps/<nazwa>, środowisko w podkatalogu venv, obiekt app w pliku app.py. Django ma własną konwencję: projekt nazywa się tak samo jak aplikacja.
  • Restart po awarii jest wbudowany, ale nie jest wieczny: limit to 12 prób w oknie 15 minut, a po nim aplikacja trafia w stan „nie działa”, zamiast bez końca obciążać serwer. Stan i ogon logu widzisz w panelu.
Uczciwie

Czego tu nie ma.

To jest hosting współdzielony z aplikacjami, nie platforma wdrożeniowa i nie baza zarządzana. Lepiej, żebyś przeczytał tę listę teraz.

Innej wersji Pythona niż 3.13

Interpreter jest jeden, systemowy, i nie instalujemy menedżerów wersji Pythona na koncie. Jeśli Twój projekt jest przywiązany do starszej wersji, powiedz o tym przed zamówieniem, bo po zakupie tego nie obejdziemy.

Dowolnej komendy jako usługi

Proces startuje z ustalonego wzorca: serwer WSGI albo ASGI wskazujący na obiekt aplikacji. Nie ma pola „wpisz własne polecenie”, więc worker kolejki poza tym schematem nie wstanie jako usługa; zadania cykliczne odpalisz harmonogramem z panelu.

Redisa, Celery i brokera w pakiecie

Nie prowadzimy ich jako osobnych usług. Kolejka zadań musi oprzeć się na czymś, co uruchomisz w swoim koncie albo na bazie danych, a bazy masz w pakiecie.

Instalowania zależności za Ciebie

Venv zakładasz i wypełniasz sam, przez SSH. Panel tego nie robi i wprost odmawia dodania aplikacji, dla której środowiska nie ma, i podaje w komunikacie gotową komendę do wklejenia.

Nie jesteśmy jedyni, ale różnicę widać w liczbach

Python na hostingu współdzielonym ma w Polsce co najmniej dziewięciu dostawców i część z nich uruchamia aplikację kreatorem. Porównaj to, co rozstrzyga o działaniu aplikacji: ile pamięci dostaje Twój proces, czy ten limit jest zapisany w cenniku, ile baz i w którym silniku masz w cenie i co się dzieje, gdy Twoja aplikacja zacznie padać. Wszystkie cztery odpowiedzi stoją wyżej na tej stronie, z liczbami.

Zanim zapytasz

Pytania o aplikacje w Pythonie.

Postawię aplikację w Pythonie na pakiecie Start?

Nie polecamy tego i mówimy dlaczego. Start ma SFTP, czyli kopiowanie plików bez powłoki, a panel odmawia jej włączenia, bo pakiet jej nie zawiera. Tymczasem środowiska wirtualnego nie zakłada za Ciebie ani panel, ani my: komendę python3 -m venv venv i instalację zależności wykonujesz sam, a do tego potrzebna jest powłoka. Dlatego Python zaczyna się u nas od pakietu Standard.

Co muszę przygotować, zanim dodam aplikację?

W katalogu ~/apps/<nazwa> gotowe środowisko venv z zainstalowanym serwerem: gunicorn dla Django i Flask, uvicorn dla FastAPI i reszty ASGI. Obiekt aplikacji ma nazywać się app i leżeć w pliku app.py; wyjątkiem jest Django, gdzie projekt musi nazywać się tak samo jak aplikacja. Jeśli czegoś zabraknie, panel odmawia dodania i pokazuje, czego dokładnie.

FastAPI działa? A Starlette albo Litestar?

Tak, wszystkie. Obsługuje je jedna pozycja „ASGI” przy wyborze frameworka: FastAPI, Starlette, Litestar, Quart. Uruchamiamy je serwerem uvicorn. Wybór ma znaczenie, bo aplikacja ASGI podniesiona serwerem WSGI wstaje, melduje „działa” i zwraca błąd na każde żądanie; dlatego framework jest osobnym polem, a nie domysłem.

Aplikacja stoi pod /api. Czy dokumentacja i przekierowania będą działać?

Tak. Aplikacji ASGI podajemy wtedy jej prefiks, bo serwer WWW zdejmuje go przed przekazaniem żądania. Bez tego interaktywna dokumentacja szukałaby swojego pliku w korzeniu domeny, a przekierowania gubiłyby przedrostek. Przy Flasku prefiks ustawiasz po swojej stronie, w aplikacji.

Na jakim porcie ma nasłuchiwać aplikacja?

Numeru nie wybierasz: przydzielamy go z puli 3001–3099 na Twoim kontenerze i wstawiamy do polecenia startowego. Aplikacja nasłuchuje lokalnie, a ruch z Twojej domeny kieruje na nią serwer WWW, razem z certyfikatem Let’s Encrypt.

Mogę używać PostgreSQL zamiast MariaDB?

Tak, silnik wybierasz przy zakładaniu bazy w panelu. W pakiecie Standard masz 25 baz i to wspólna pula dla obu silników, więc nie płacisz osobno za PostgreSQL. Sterowniki kompilują się bez przeszkód, bo nagłówki obu silników są w obrazie.

Połączę się z bazą z własnego komputera?

Nie z internetu: bazy nie mają publicznego adresu i to jest decyzja o bezpieczeństwie, nie przeoczenie. Z przeglądarki wchodzisz w nie przez panel: phpMyAdmin dla MariaDB, Adminer dla PostgreSQL, jednorazowym podpisanym odnośnikiem. Zrzut bazy pobierzesz z panelu, a z poziomu swojego serwera łączysz się normalnie.

Co się dzieje, gdy aplikacja padnie?

System podnosi ją sam, z rosnącym odstępem między próbami, bo przyczyną bywa coś po naszej stronie, na przykład restart wspólnej bazy. Awaria, która mija w ciągu 7 minut, leczy się więc sama. Trwała kończy się inaczej: limit to 12 prób w oknie 15 minut, a po nim aplikacja trafia w stan „nie działa” zamiast obciążać serwer bez końca, w naszym pomiarze 8 minut od pierwszego upadku. Stan i ogon logu widzisz w panelu.

Aplikacja stoi dziś gdzie indziej? Przeniesiemy stronę w granicach opisanych przy migracji. Więcej odpowiedzi jest w pomocy.

Postaw aplikację tam, gdzie limity są zapisane w cenniku.

Pakiet Standard: 2 GB RAM, 2 vCPU, 25 baz i pełna powłoka SSH. Cena odnowienia równa startowej.