Găzduire web ieftină în România cu Node.js și Python: ce înseamnă izolarea pe fiecare site

Un ghid practic al găzduirii noastre din România: un container Podman rootless per site, Apache sau nginx per site, Node.js 22/24 și Python 3.12 de la Standard, DNS Cloudflare automat și limitele pe care trebuie să le știi.

Ce rezolvă acest lucru

Dacă ai căutat vreodată o găzduire web ieftină pentru Node.js care nu se destramă în momentul în care ai nevoie de o a doua aplicație, cunoști compromisul: preț mic, dar totul împarte un singur runtime, o singură versiune de PHP, un singur web server și un singur radius de impact. Un update stricat pe un site le ia și pe celelalte cu el.

Găzduirea noastră web este construită invers. Rulează pe serverul nostru propriu din România, nu pe spațiu revândut. Fiecare client primește un cont Linux separat, cu propriile limite de CPU, memorie, procese și disc, iar fiecare site rulează în containerele sale Podman rootless, fără acces la rețeaua locală a serverului sau la conturile altor clienți. O problemă pe un site nu ajunge la celelalte site-uri ale tale sau la alți clienți.

Acest tutorial parcurge pas cu pas comanda, adăugarea unui site, conectarea unui domeniu, implementarea unei aplicații Node.js sau Python și limitele reale ale configurării, ca să poți decide în cunoștință de cauză.

Cerințe preliminare

  • Un domeniu pe care îl controlezi la un registrar, dacă vrei propriul nume pe site. Fără el, fiecare site funcționează pe o adresă de previzualizare.
  • Codul aplicației tale sau un plan de a porni de la pagina de start.
  • Pentru Node.js și Python ai nevoie de planul Standard sau mai mare; Start acoperă doar PHP și site-uri statice.
  • Un card pentru plata prin Stripe. Prețurile sunt în EUR, iar TVA-ul se calculează la finalizarea comenzii în funcție de țara ta.

Pasul 1: Comandă un plan

  1. Deschide pagina de găzduire și alege un plan și o perioadă de facturare (lunară sau anuală). Facturarea anuală costă de zece ori prețul lunar, iar prețul rămâne același la reînnoire: nu există un preț introductiv care crește mai târziu.
  2. Adaugă opțiuni dacă e nevoie: +10 GB NVMe, +1 vCPU, +1 GB RAM sau backup extins. Le poți modifica mai târziu.
  3. Introdu adresa de e-mail, acceptă Termenii, Politica de utilizare acceptabilă și Acordul de prelucrare a datelor, apoi plătește cu Stripe.

Contul de găzduire se creează automat după plată, de obicei în câteva minute, și primești un e-mail. Garanția de returnare a banilor în 30 de zile începe cu prima ta plată.

O orientare rapidă între planuri: Start este 1 vCPU / 1 GB RAM / 10 GB NVMe, cu PHP și site-uri statice. Standard este 2 / 2 GB / 25 GB și adaugă Node.js și Python, SSH cu chei și Git. Pro adaugă Redis. Business adaugă imagini de container proprii. Planurile și opțiunile actuale sunt pe pagina de găzduire.

Pasul 2: Adaugă un site

Mergi la Websites → Add a website în Account → Hosting.

  • Name: litere mici, cifre și cratime. Devine folderul www-data/<name> din folderul tău home.
  • Technology: PHP 8.1–8.5, Node.js 22 sau 24, Python 3.12 sau static.
  • Web server (doar PHP): Apache citește fișierele .htaccess și este alegerea sigură pentru WordPress și pentru majoritatea aplicațiilor PHP care includ reguli de rescriere acolo. nginx este mai ușor și mai rapid pentru fișiere statice, dar ignoră .htaccess. Alegi per site și poți combina ambele într-un cont.
  • Domain (opțional): domeniul tău sau un subdomeniu al unui domeniu din contul tău; înregistrarea DNS a subdomeniului se creează automat. Fără domeniu, site-ul funcționează imediat pe adresa de previzualizare, <site>-<user>.hosting.medialab.works (doar HTTP până muți domeniul).
  • Web root (PHP și static): folderul din www-data/<site> servit vizitatorilor, implicit public; . înseamnă folderul site-ului însuși.

Când site-ul este creat, folderul său primește o pagină de start care arată că domeniul ajunge la server, unde este găzduit site-ul și ce versiune de PHP rulează. Înlocuiește-o cu fișierele tale.

Unde ajung fișierele:

Tehnologie Folder
PHP, static www-data/<site>/public (sau web root-ul ales)
Node.js, Python www-data/<site>/app

Pasul 3: Conectează domeniul și obține DNS și e-mail gratuit

Când adaugi un domeniu, creăm trei lucruri pentru tine: o zonă DNS în Cloudflare în contul nostru, cu înregistrările web și înregistrările de e-mail (MX, SPF, DKIM, DMARC, autoconfig), domeniul de e-mail pe serverul nostru de mail cu cheia sa DKIM și site-ul pe server cu un certificat SSL imediat ce domeniul indică spre noi.

Ce faci tu: la registrar, înlocuiește nameserverele cu cele două afișate în Account → Hosting → Domains. Schimbarea durează de obicei de la câteva minute la câteva ore, uneori până la 48 de ore. Pagina domeniului arată fiecare pas; când nameserverele sunt văzute, zona devine activă și certificatul este emis automat. Check DNS și Issue certificate îți permit să reîncerci imediat.

Păstrezi furnizorul actual de DNS? Îndreaptă o înregistrare A spre adresa IP afișată în cont și adaugă singur înregistrările de e-mail dacă vrei e-mail pe domeniu; tabelul de înregistrări DNS din cont le listează. Fără nameserverele noastre, înregistrările DNS sunt responsabilitatea ta.

Pasul 4: Implementează o aplicație Node.js sau Python

Încarcă aplicația în www-data/<site>/app. Două reguli decid dacă funcționează:

  • Trebuie să asculte pe portul din variabila de mediu PORT (8080 în container) pe toate interfețele (0.0.0.0), nu doar pe localhost. Web serverul și certificatul stau în fața ei; nu deschizi tu niciun port.
  • Ordinea de pornire contează. Pentru Node.js: un start.sh executabil în app/, altfel npm start din package.json (dependențele se instalează cu npm ci --omit=dev când lipsește node_modules), altfel server.js, index.js, app.js sau main.js. Pentru Python: un start.sh executabil, altfel asgi.py (servit de workeri uvicorn în gunicorn), altfel app.py cu un obiect app sau wsgi.py cu application (gunicorn). requirements.txt se instalează într-un mediu virtual și se reinstalează la pornire când fișierul s-a modificat.

După ce încarci o versiune nouă, apasă Restart lângă site. Până când este găsită o aplicație, site-ul afișează o pagină provizorie care spune ce lipsește.

Pentru aplicațiile PHP fluxul este familiar: creează o bază de date MariaDB în Databases (numele complet devine <user>_wp), încarcă proiectul în www-data/<site>, apoi apasă Detect în Settings lângă site. Recunoaștem Laravel, Symfony, WordPress, Drupal, Nextcloud, WHMCS și altele și îți sugerăm web root-ul. Fișierele din afara web root-ului (vendor/, storage/, .env, datele Nextcloud, attachments, downloads și templates_c ale WHMCS) rămân accesibile pentru aplicație, dar nu din browser. Pentru WordPress, DB_HOST este mlw-db:3390. Parola utilizatorului bazei tale de date este afișată o singură dată, când creezi prima bază de date MariaDB: salveaz-o.

Pasul 5: E-mail de pe site pe portul 587

E-mailul ieșit de pe site-urile tale trece prin serverul nostru de mail, cu o cutie poștală, pe portul 587. Trimiterea directă pe portul 25 este blocată, ceea ce ține adresa serverului departe de listele de spam. Cutii poștale, webmail, IMAP și SMTP fac parte din fiecare plan.

Pasul 6: Backup-uri pe care le restaurezi singur și limitele lor reale

Backup-urile rulează în fiecare noapte cu restic, criptate, pe un disc separat din același server. Poți restaura singur fișiere și baze de date din contul tău, poți face backup-uri la cerere și poți descărca un site sau o bază de date din orice backup. Retenția depinde de plan: 7 zile pe Start, 14 pe Standard, 14 zilnice plus 4 săptămânale pe Pro, 30 zilnice plus 12 lunare pe Business. Backup-ul extins le păstrează cât pe planul următor. Și restaurarea de către echipa noastră este disponibilă; prima din fiecare lună este gratuită.

Iată partea onestă: backup-urile sunt păstrate pe același server, pe un disc separat, nu într-o a doua locație. Te protejează de greșeli, de un update stricat sau de un site spart, dar nu de pierderea întregului server. Păstrează-ți propria copie a oricărui lucru important; poți descărca fișierele și bazele de date oricând. Există și un singur server: disponibilitatea este acoperită de SLA (99,9 % pe lună, cu credite pe factura următoare), dar nu există failover automat către o a doua mașină. Iar „nelimitat” pe Business înseamnă utilizare rezonabilă: CPU, RAM și discul planului se aplică în continuare, iar limitele tehnice există doar pentru a opri abuzurile (vezi Termenii).

Sfaturi și depanare

  • Site-ul afișează pagina provizorie: aplicația ta nu a fost găsită sau nu ascultă corect. Verifică dacă se leagă la 0.0.0.0:$PORT, apoi apasă Restart.
  • Citește întâi logurile: fiecare site scrie în logs/<site>/ (nginx/ sau apache/ cu access.log și error.log, plus php/, node/ sau python/ pentru ieșirea aplicației). Aceleași loguri apar în Settings → Logs.
  • Muți un site WordPress: încarcă arhiva, extrage-o în Files, corectează wp-config.php, apoi folosește Detect pe aplicație. Apache este varianta implicită mai sigură pentru regulile de rescriere.
  • Încărcări mari: managerul de fișiere acceptă fișiere de orice dimensiune permite planul tău, trimise în bucăți, și extrage .zip, .tar.gz, .tar.bz2 sau .tar.xz. Descărcarea unui folder întreg ca .zip este pregătită în fundal și rămâne sub Operations and downloads timp de 24 de ore.
  • Blocat la DNS: așteaptă propagarea, apoi folosește Check DNS și Issue certificate pentru a reîncerca fără a deschide un tichet.
  • Ai nevoie de o bază de date în browser: Adminer se deschide cu un clic pentru MariaDB și PostgreSQL, cu export și import .sql.

Mai multe răspunsuri sunt în baza de cunoștințe și în FAQ; pas cu pas de la comandă la prima cutie poștală este în ghidul de început.

Concluzie

Izolarea pe fiecare site nu este un cuvânt de marketing aici: este un cont Linux separat, cu propriile limite și containere Podman rootless pentru fiecare site, pe hardware pe care îl administrăm noi în România. Primești Apache sau nginx per site, PHP 8.1–8.5, Node.js 22/24 și Python 3.12 de la Standard, DNS Cloudflare automat cu înregistrări de e-mail, SSL gratuit și un preț de reînnoire care nu sare. Limitele sunt spuse direct: backup-urile stau pe același server și este o singură mașină. Dacă asta se potrivește cu modul în care îți administrezi serverele, pagina de găzduire are planurile, iar pentru orice nu acoperă ghidul ne poți contacta.

Postarea a fost scrisă cu ajutorul AI pe baza documentației produselor noastre sau a surselor indicate și verificată automat înainte de publicare.

Citește și

Ai un server Emby, Jellyfin sau Nextcloud?

Plugin-urile și aplicațiile noastre adaugă Live TV, subtitrări, înregistrare și securitate pe serverul tău, cu probă gratuită.