Găzduire gratuită nodejs, php7/7,1, .net core și PostgreSQL

Mă gândeam să creez un serviciu extrem de simplu de găzduire precum now


sau xervo (fostul Modulus)

Practic descarci o aplicație nodejs, te loghezi în ea, și dai deploy/get la un folder. Aplicația citește package.json/composer.json/project.json, urcă incremental fișierele fără dependințe, creează symlink-urile dintr-un cache local pentru node_modules, composer sau nuget și rulează aplicația încărcata cu un container docker/lxc pe un anumit subdomeniu cerut la deploy (sau unul random).

Baza de date PostgreSQL ar veni iarăși cu 1-2GB spațiu de stocare și un număr limitat de query-uri pe secundă în funcție de încărcarea serverului.

Fără git (opțional), fără ssh, fără limitări înafară de lipsa .htaccess, bandă nelimitată, resurse nelimitate (maxim un thread/container nodejs sau php7), HTTP/2 și protecție cu js testcookie la load mare, găzduire DNS și Let’s Encrypt, pentru mai multe containere în paralel și spațiu la db încep pachetele plătite.

Serviciul ar fi distribuit pe servere din România pentru viteze de 1 Gbps și bandă nelimitată.

3 Likes

Poate îmi scapă mie ceva, dar ce posibilități de monetizare ai cu așa ceva? Poate doar să oferi ceva extrem de limitat, în genul heroku: un număr maxim de ore/lună, fără db la planul gratuit șamd.

Ipotetic vorbind, cum crezi că s-ar descurca serviciul dacă ai avea doi-trei clienți cu 20-30k unici/zi?

Ok, hai sa nu ne grabim cu deciziile, toate site-urile de free hosting cu php ofera minim o baza de date, multe ofera 3, iar majoritatea 5. Cel putin cele pe care am ajuns sa le vizitez. Sigur, au limitari, dar aparent baze de date este ceva ce nu-si permit sa omita.

Nu o sa fie profitabila in RO prea curand, dar eu as vrea un asemenea serviciu.

I will support you as a paying customer, even if you fail.

Do it :heart_exclamation:

7 Likes

Trebuie să ai puțin talent să scrii o aplicație nodejs/php7 care să utilizeze mai mult de 200-500 mb RAM la un site cu 20-30k unici și mai mult de 5% dintr-un singur core în mod constant. (dar cu mici burst-uri)
Am un site php7 symfony cu 10k unici și îmi consumă 100-150 mb ram fără mysql. MySQL consumă 200-300 mb ram pentru select-uri fără join și baza de date are 4 gb. (desigur și așa am limite și folosesc php-fpm ca să scap de memory leak-uri) Pot pur și simplu închide un container docker dacă consumă mai mult de 1-2 minute peste 500mb ram și să îl repornesc automat la găzduire gratuită, oricum probabil e vorba de un memory leak sau cod prost scris și 99% din site-uri n-ar observa.

Eu cred că nu ar rula nimeni magento, pimcore sau cine știe ce frumusețe pe server, în acest caz aplicația ar rula dar ar rula cu probleme fiindcă ar fi oprit și pornit să rămână între limitele de resurse. Dar pe termen lung dacă cineva nu depășește mai mult de un minut resursele practic ar avea resurse nelimitate ( un întreg thread rulat la 50-70% câteva secunde, 1-2gb ram într-un minut, un anumit număr de create/update-uri în pgsql/minut și select-urile să încapă în cache ) Respectiv nu o să găzduiesc site-uri de filme sau site-uri pline de spam, aș face un scraper care să îmi pună fiecare site găzduit pe un panou cu un screenshot la fiecare și m-aș uita la el și aș da direct disable dacă ar fi ceva suspect.

Există o dificultate destul de mare la implementare și anume faptul că nu am văzut pe nimeni care să optimizeze lucrurile ca să fie viabil. Adică kubernetes/stack-ul hashicorp nu o să optimizeze lucrurile specific pentru php sau node, nu o să pună limitări în cel mai eficient mod.

În principal eu m-am gândit la un cluster ceph pentru stocare de fișiere, un cluster postgresql administrat de un orchestrator custom (se retrag drepturile la depășirea resurselor), un orchestrator care să mapeze porturile intern, să monitorizeze limitele și environment variables pentru pgsql, un load balancer (haproxy) care să aloce un vhost pe un port mapat intern, o imagine docker pentru php7 și una pentru nodejs. un bootstrapper care să lanseze un container docker corespunzător cu fișierele încărcate, să facă symlink la versiunile de dependințe din cache-ul local în loc să le descarce.
Eventual monitorizare ca un container să fie oprit dacă nu are vizite și lansat (dacă există resurse) când se cere de către serverul web, un profiler integrat și un crontab sau alt scheduler configurabil din aplicație/api cu o simplă comandă. O comandă tunnel pe un proxy pgsql la cluster. (ca să poți folosi un program local fără date de autentificare specifice și fără un port public la pgsql) Dacă m-aș plictisi aș implementa și git/versiuni.

În plus la mysql cea mai mare problemă e cu fulltext search, la postgresql dacă cineva îmi face fulltext search-uri în mod corect deja e aproape de sphinx sau elasticsearch ca performanță și memorie necesară.

4 Likes

Foarte misto ce zici … dar…
Mai e cineva care sa aibe nevoie de free hosting in ziua de azi?
Sau sa nu isi permita <= $5 (4 beri ieftine) /luna pt un vps ?

Mai bine fa ceva solid si cere bani pe timpul/munca ta

3 Likes

Suna ca o idee haioasa. IDK despre monetizare etc, deoarece competitia e Amazon, Google, DO etc., dar ca un proiect de invatat si pus pe CV suna bine. Ar fi multe de discutat intr-un interviu de angajare, de exemplu, despre asa ceva, comparat cu o aplicatie web standard.

Ce nu suna right, si e bine de stabilit in faza de arhitectura, e pozitionarea pe spectrul de complexitate al “platformelor”. Pare ca unele chestii tin mai mult spre PaaS/BaaS - cum ar fi folosirea conceptului de pachet din limbajele respective, in loc de mașină virtuală. Dar alte chestii tin mai mult de IaaS - cum ar fi faptul ca exista servere de care trebuie sa tii cont etc. Merita niște clarificări pe aici.

Sunt de acord că nu trebuie mers prea mult pe idea că e ceva “free”. Dacă reușești să ții costurile mici, gen să poți rula un webapp simplu gen un blog sau site de prezentare/magazin online sau forum, nu cred că se supără lumea sa-ti dea 5-10-50 eur pe luna. Mai ales dacă îi scapă de problemele de setup si provisioning. Mie mi-ar placea sa vad ceva cu billing la număr de requesturi, GBh de memorie, core-uri de procesare etc. Drum lung până acolo tho.

OTOH, the new hotness ™ este serverless. E spatiu poate sa fi fruntaș pe partea asta, decât alternativa pentru jucători mult mai mari. Dar e complexitate mai mare acolo pe partea de implementare, căci preiei mult mai multe din serviciile aplicației.

3 Likes

Citesc si ma minunează atitudinea la asemenea idee…
“Cum monetizezi?..”
“Nu o sa meargă in RO”

Asemenea tipuri de proiecte nu sunt dezvoltate de developeri…ci de antreprenori care au viziune. Credeți oare ca Zuckerberg când a facut Facebook-ul s-a gandit la monetizare sau ca nu o sa meargă intr-o țara anume?..Aceeași situație si pentru twitter Shazam si alții…
Problema nu se pune cum monetizezi…sau daca merge in RO. Problema se pune: daca faci ceva ce are valoare, facilitează ceva, îmbunătățește ceva sau schimba total viziuni si păreri despre ceva ce știm deja. Atunci cu siguranța vor fi si metode de monetizare…si cu siguranța va merge oriunde. Asta a fost tendința oricărui proiect caracterizat prin “aduce un plus valoare la ce exista deja”.
In stadiu de proiect te gândești prima data la ce poti face sa fie cat mai atractiv, facil si unic…sa aibe identitate, sa se diferențieze.
Daca tu ai apela la un asemenea serviciu si ai fi încântat de ce ar oferi, cu siguranța si alții ar face la fel…restul sunt detalii ce trebuiesc discutate la vremea lor, nu acum.

3 Likes

Ci daca poate fi monetizat, cand va fi nevoie sa fie monetizat.

Teoretic si numai din suport platit poti sa faci bani, cu acest free hosting.

Sau sa trebuiasca sa te uiti la un video de 2 minute pentru a finaliza inscrierea. Respectivele video-uri pot fi un fel de video-capcha, avand un cod ascuns prin video. Astfel nu doar ca ai un capcha mai reliable, dar poti ascunde codul capcha intr-o reclama video. (Si ce daca advertiserii vor trebui sa lase un spatiu pentru capcha, in video? Problema lor, nu a ta.)

Ads + attention grabber + secure capcha = WIN

Alta posibilitate ar fi integrarea intr-un installer a catorva scripturi pe care le recomanzi (gen in-house projects si self-promotion), ori esti platit sa le recomanzi (o alta forma de reclama platita).

Dar astea [quote=“catalincoroeanu, post:8, topic:4502”]
sunt detalii ce trebuiesc discutate la vremea lor, nu acum.
[/quote]
Apropo, cum mai stau cu calitate posturilor? A crescut, sau a scazult calitatea postarilor mele?

1 Like

De multe ori se intampla ca ti se ivesc oportunitati de monetizare la care nici nu te-ai gandit initial sau care nici macar le-ai luat in calcul.

Mai bine este sa lasi proiectul sa se maturizeze de la sine…sa evolueze…

1 Like

Exact! Cati dintre voi s-ar fi gandit la metoda de monetizare mentionata de mine? Insa ar avea un conversion rate mai mare decat programatic digital banners si, probabil, youtube video ads.

E vorba de un serviciu de hosting nu site de streaming :slight_smile: . E o cale de monetizare standard - clientii platesc ce resurse consuma.

2 Likes

Poate gandesti in directia One-click apps (cum au si Digital Ocean), dar intr-un mod mai rapid si simplu. Orientat spre developers, un API care porneste o masina printr-un singur call, plecand de la un git repository.

Practic la One-click apps nu faci TOT setup-ul printr-un singur click. Deci poate studiezi in directia “one api call setup”.

Pe urma vezi, in functie de situatiile intalnite si feedback-ul primit, incotro te extinzi.

3 Likes

@isti37 so, cand dai ultimatum daca te apuci sau nu?

1 Like