Python-tárhely
Django-hoz, Flaskhoz, FastAPI-hoz
Egy Python-webalkalmazás folyamatosan futó szerver, nem kérésenként lefutó script – ezért a PHP-s osztott tárhelyen nem megy rendesen. A NextHubon a projekted a requirements.txt vagy a pyproject.toml alapján felépül, és a megadott indítóparanccsal fut, saját domainnel, HTTPS-sel és adatbázissal, magyar szerveren.
Örökre ingyenes csomag, bankkártya nélkül.
A szervert mi üzemeltetjük. Te az alkalmazásodat hozod.
Menedzselt alkalmazás-platform (PaaS): az infrastruktúra karbantartása és felügyelete a miénk, a telepítés és a kezelés egy push vagy pár kattintás a vezérlőpulton.
Mi intézzük
- A szervert, az operációs rendszerét és a biztonsági frissítéseket
- A buildet és az élesítést – ha az új verzió nem indul el, a régi marad élesben
- A HTTPS-tanúsítványt, a domain-bekötést, a hálózatot és a tűzfalat
- Az adatbázis-szervert és az automatikus mentést (a gyakoriság csomagfüggő)
- Ha az alkalmazásod összeomlik, újraindítjuk; ha újra és újra elesik, leállítjuk, és e-mailben szólunk
- A platform folyamatos figyelését – a fizetős csomagokban 99,9% rendelkezésre állási vállalással
Te intézed
- Az alkalmazásod kódját és a függőségeit
- Saját Dockerfile-nál az alapkép megválasztását és frissítését
- A környezeti változók és a titkok megadását
- Az alkalmazásod hibáinak javítását – a naplókat és a mérőszámokat a vezérlőpulton látod
- Amit az alkalmazásod tárol és kezel – az adatkezelő te vagy, mi az adatfeldolgozó
Mit csinál magától a platform
Dockerfile nélkül is. Ha van saját Dockerfile-od a repóban, mindig az elsőbbséget kap.
- A
requirements.txtvagy apyproject.tomlalapján felismeri a Python-projektet, éspip install-lal telepíti a csomagokat. - Python 3.12-n fut, Alpine Linux-alapú képben. Másik verzióhoz adj meg saját Dockerfile-t.
- Alapértelmezett indítás:
python -m uvicorn main:app --host 0.0.0.0 --port 8000– FastAPI-nál, ha a fájlmain.pyés az objektumapp, semmit nem kell beállítani (auvicornlegyen arequirements.txt-ben). - Django-hoz és Flaskhoz add meg az indítóparancsot (lent a minták).
- Az alkalmazás alapból a 8000-es porton várja a forgalmat, a
0.0.0.0címen hallgasson.
Gyakori felállások
A build- és az indítóparancsot a szolgáltatás beállításainál adod meg; ahol „–” áll, ott nem kell.
| Keretrendszer | Build | Indítás | Megjegyzés |
|---|---|---|---|
| FastAPI | – | uvicorn main:app --host 0.0.0.0 --port 8000 | A uvicorn a requirements.txt-ben. |
| Django | – | gunicorn myapp.wsgi --bind 0.0.0.0:8000 | A gunicorn a requirements.txt-ben; a myapp a projekted neve. |
| Flask | – | gunicorn app:app --bind 0.0.0.0:8000 | Az app.py-ban lévő app objektum. |
| Celery / RQ | – | celery -A myapp worker | Worker szolgáltatásként, Redis-szel brókernek. |
Django-nál és Pythonnál erre figyelj
- A migrációt (
python manage.py migrate) a pre-deploy parancs futtatja: az új verzió előtt, egyszer, és ha elbukik, a régi verzió marad élesben. - A statikus fájlokhoz a WhiteNoise a legegyszerűbb: a
collectstatic-ot tedd az indítóparancs elé (python manage.py collectstatic --noinput && gunicorn …), vagy a saját Dockerfile-od egy sorába. - Az automatikus kép Alpine Linux: a legtöbb csomagnak van rá kész bináris, de ha egy csomag fordítást kér, és a build a
pip install-nál elbukik, adj meg saját Dockerfile-t, például apython:3.12-slimképre. - A titkokat (
SECRET_KEY, adatbázis-cím) környezeti változóként add meg, ne a kódban; aDEBUGélesben legyen kikapcsolva, azALLOWED_HOSTS-ba pedig írd be a domainedet. - Egy kis forgalmú Flask- vagy FastAPI-alkalmazás jellemzően elfér a 256 MB-os, ingyenes Nano instance-on; Django-hoz több gunicorn-workerrel inkább 512 MB-tal (Micro) indulj.
Nem csak egy futó folyamat
Ingyenes *.nexthub.hu aldomain, vagy a saját domained CNAME-mel. A Let's Encrypt-tanúsítvány magától készül és újul meg.
PostgreSQL, MySQL, MariaDB, MongoDB vagy Redis ugyanabban a projektben, belső hálózaton, ugyanazon az instance-díjszabáson, mint az alkalmazás.
Push után magától épül és indul; ha az új verzió nem válaszol, a régi fut tovább. Pull requestenként külön előnézeti link a Starter és a Pro csomagban.
Worker szolgáltatás a sorban álló munkákhoz, Cron Job az időzített scriptekhez (a Starterben 3, a Próban 10; az ingyenesben nincs).
Környezeti változók és titkok szolgáltatásonként. Az adatbázisokról automatikus, titkosított mentés készül, a gyakoriság a csomagtól függ.
Forintban, magyar számlával fizetsz, magyarul kérdezhetsz. A szerver Gödön van, az üzemeltető a NextSoft Kft.
Mennyibe kerül
Csomag: Ingyenes 0 Ft, Starter 2.390 Ft/hó, Pro 5.690 Ft/hó (bruttó). Mellé szolgáltatásonként az instance díja:
| Instance | Memória | CPU | Havidíj |
|---|---|---|---|
| Nano | 256 MB | 0,1 vCPU | Ingyenes |
| Micro | 512 MB | 0,25 vCPU | 1.490 Ft |
| Small | 1 GB | 0,5 vCPU | 2.990 Ft |
| Medium | 2 GB | 1 vCPU | 4.990 Ft |
| Large | 4 GB | 2 vCPU | 8.990 Ft |
Gyakori kérdések
Melyik Python-verzión fut az alkalmazásom?
Az automatikus build Python 3.12-t használ. Ha más verzió kell, tegyél a repóba saját Dockerfile-t a kívánt alapképpel; ilyenkor a platform azt használja.
Hogyan futtatom a Django-migrációkat élesítéskor?
A szolgáltatás pre-deploy parancsába írd: python manage.py migrate. Az új verzió indulása előtt egyszer lefut, és ha elbukik, a régi verzió marad élesben.
Futtathatok Celery-workert vagy időzített Python-scriptet?
Igen: a workert Worker szolgáltatásként, az időzített scriptet Cron Jobként. Cron Job a Starterben 3, a Próban 10 lehet, az ingyenes csomagban nincs.
Miért bukik el a pip install a buildben, ha a gépemen lefut?
Az automatikus kép Alpine Linuxra épül, és néhány csomagnak nincs rá kész binárisa, ezért fordítani kellene. Ilyenkor adj meg saját Dockerfile-t, például a python:3.12-slim képre.
Mielőtt élesítesz
VPS-t bérelnél egy webalkalmazáshoz? Mikor jobb helyette egy platform
VPS vagy alkalmazás-platform egy Node.js-, Python- vagy Docker-alkalmazáshoz: mit vállalsz egy virtuális szerverrel, és mikor éri meg mégis.
Hogyan kerül egy GitHub-repó élesbe? A push-tól a futó alkalmazásig
Mi történik egy git push után egy hosting-platformon: build, konténer, health check, forgalomátkapcsolás – és hol szoktak elakadni a deployok.
Környezeti változók és titkok: hová valók, és hová nem?
Környezeti változó és titok: mi a különbség, hová kerüljenek fejlesztésben és élesben, mi a build-idejű változó, és miért szivárognak ki a kulcsok.
Saját domain bekötése: a DNS lépésről lépésre, hibák nélkül
Saját domain bekötése hosztolt alkalmazáshoz: A vagy CNAME rekord, www-változat, TTL, terjedési idő, HTTPS-tanúsítvány – lépésről lépésre, a gyakori hibákkal.