Un prieten ma tot intreaba sa ii pun cpanel pe un server ca sa vanda gazduire. Mie nu mi se pare o idee prea buna cand sunt alte solutii, practic cpanel + cloudlinux costa vreo 60 de euro lunar.
Teoretic imi ia cateva ore sa fac un script node.js care sa se uite la un anumit folder, sa citeasca un config.yml in orice folder din /home/ de exemplu si sa faca deploy la php + mariadb + postfix + nginx/apache/litespeed + letsencrypt + sa configureze un cont de cloudflare + sa faca purge la cloudflare cache cand se schimba vreun fisier pe server.
Gen clientul sa faca un fisier config.yml ori manual, ori cu un generator pe site intr-un folder din /home/ (de ex. /home/domeniulmeu) pe vps-ul cumparat si sa i-se configureze totul :
domeniu: domeniulmeu.ro
cloudflare:
email: [email protected]
auth-key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41
cache: da
protectie: da
subdomenii:
srv: 81.82.34.13
@@: mx.zoho.com. MX
@@: mx2.zoho.com MX
zb324424: zmverify.zoho.com CNAME
versiune_php: 7.0.0
extensii_speciale: ioncube
webserver: apache
letsencrypt: da
https_redirect: da
www_redirect: da
force_www: nu
server_mysql: mysql
versiune: 5.6.7
utilizatori:
- root: parolamea
remote: nu
- wordpress: parolamea
remote: nu
- panou_joc: parolamea
remote: da
phpmyadmin:
cale: /phpmyadmin
whitelist: 54.34.23.13
porturi_tcp_deschise: 80, 443, 3306, port_smtp
porturi_udp_deschise: port_ssh
port_ssh: 22
port_smtp: 25
Acest fisier va fi accesibil pe vps-ul clientului prin generator sau doar prin contul root.
Alte avantaje: In containerul LXD se vor putea rula imagini docker pe langa sistemul de deployment pentru gazduire php.
Se preteaza asa ceva la copii din Romania sau e prea mult ?
Daca plănuiești că un fișier de genul asta sa fie public (gen să facă parte din repository-ul asociat proiectului), ar trebui că toate secretele (parole, API keys etc) sa fie criptate. Cu o cheie publică dintr-o pereche pe care trebuie sa o întreții tu. Cam că ce far travis.ci dacă ești familiar cu sistemul.
In rest e greu de zis daca o să aibă succes sau nu. Mă gândesc că dacă există un public de cpanel&friends amator de cli, s-ar fi mutat pe ansible/chef/etc pentru partea asta de config Management.
Nu e un fisier public si se va putea citi doar de root (iar cu watcher-ul prin node.js ma voi asigura ca orice fisier care e root va fi automat convertit la user-ul corespunzator), la un repository poti folosi oricum .gitignore.
Cu email-ul intradevar e mai complicat, trebuie sa vad ce servere smtp se pot folosi pentru reseller ca si cloudflare, ce client se poate configura pe un vps la panou. (dar oricum e o idee foarte proasta sa tii email-ul pe cpanel sau vps)
E o bucata de configuratie care are sens sa stea impreuna cu codul (cf infrastructure as code daca vrei) si sa fie pus in source control, sa fie folosita in build server etc (si la o adica sa fie publica pentru chestii gen proiecte open source). De asemenea, daca e un environment de test si unul de prod, ar trebui sa aiba mai mult sau mai putin aceasi configuratie, modulo “marimea resurselor alocate”, si sa fie bazate pa aceasi configuratie.
In fine, cand te duci pe partea de confuguratie textuala e daca vrei o schimbare de faza in tipul de client pe care o sa-l ai. Si chestii care merg cu cineva care e OK doar cu o interfata grafica, n-o sa mearga cu cineva care e OK cu cea textuala.