Ugrás a tartalomra
Python · Django · Flask · FastAPI

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.

PaaS – nem egy újabb VPS

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ó

A vállalás részletei →Mikor jobb mégis egy VPS? →

Felismerés

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.txt vagy a pyproject.toml alapján felismeri a Python-projektet, és pip 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ájl main.py és az objektum app, semmit nem kell beállítani (a uvicorn legyen a requirements.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.0 címen hallgasson.
Minták

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.

KeretrendszerBuildIndításMegjegyzés
FastAPI–uvicorn main:app --host 0.0.0.0 --port 8000A uvicorn a requirements.txt-ben.
Django–gunicorn myapp.wsgi --bind 0.0.0.0:8000A gunicorn a requirements.txt-ben; a myapp a projekted neve.
Flask–gunicorn app:app --bind 0.0.0.0:8000Az app.py-ban lévő app objektum.
Celery / RQ–celery -A myapp workerWorker szolgáltatásként, Redis-szel brókernek.
Gyakorlat

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 a python:3.12-slim képre.
  • A titkokat (SECRET_KEY, adatbázis-cím) környezeti változóként add meg, ne a kódban; a DEBUG élesben legyen kikapcsolva, az ALLOWED_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.
Ami mellé jár

Nem csak egy futó folyamat

Saját domain, HTTPS

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.

Adatbázis mellé

PostgreSQL, MySQL, MariaDB, MongoDB vagy Redis ugyanabban a projektben, belső hálózaton, ugyanazon az instance-díjszabáson, mint az alkalmazás.

Élesítés GitHubról

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.

Háttérfeladatok

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).

Titkok és mentés

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.

Magyar számla, magyar szerver

Forintban, magyar számlával fizetsz, magyarul kérdezhetsz. A szerver Gödön van, az üzemeltető a NextSoft Kft.

Árak

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:

InstanceMemóriaCPUHavidíj
Nano256 MB0,1 vCPUIngyenes
Micro512 MB0,25 vCPU1.490 Ft
Small1 GB0,5 vCPU2.990 Ft
Medium2 GB1 vCPU4.990 Ft
Large4 GB2 vCPU8.990 Ft

Minden ár és csomag →

GYIK

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.

Tudástár

Mielőtt élesítesz