Instalare Discourse: tips & tricks

Dacă știu bine devforum e instalat pe Digital Ocean. (care parcă au și one click install) Dar această instalare e pe departe ceva util cuiva care are propriile servere. Eu va trebui să instalez pe vps-uri cu KVM și ubuntu/centos în majoritatea cazurilor.

Am câteva întrebări :

  1. Este necesar un proxy cu nginx ? Adică nu vreau să am forumul offline câte 10 minute la rebuild-uri fără nici un mesaj, este acest lucru o problemă ? (cel puțin pentru început)
    https://meta.discourse.org/t/adding-an-offline-page-when-rebuilding/45238
  2. Cum ați validat domeniul la serviciul de email ? Nu poți instala Discourse fără email. Nginx pe vps înainte de instalarea Discourse ? Ați creat propriul server smtp ? Ați folosit Mailcatcher ? Ați pus în app.yml ce fișier cere serviciul pentru trimis email-uri înainte de confirmarea contului ?
  3. Câtă memorie e necesară pentru un vps cu discourse ?
  4. Cum ați făcut modificările vizuale ? (pe server sau pe un sistem de dezvoltare ? )
    Eu aș intra cu launcher enter app ca să vad/testez ce modific (cel puțin prima dată la crearea forumului), aș pune fișierele de la discourse pe un repo privat, aș face modificările, aș face git push origin master și aș modifica app.yml să îmi ia fișierele din repo la rebuild cu git clone. Eventual aș crea și un patch după fiecare modificare.
  5. Tutorialele sunt foarte vechi, adică aș face modificările creând plugin-uri dar nu am găsit nici un tutorial up to date. Măcar ember seamănă cu react dar tot e enervant.
  6. Ați reușit să instalați mai multe forumuri pe același server ?
1 Like

DevForum este instalat manual, nu prin one click install. Chiar ieri am instalat Discourse pe un VPS de test de la aruba și instalarea decurge fără nici un fel de problemă. Să-ți răspund la întrebări:

  1. Nu este necesar dar e util. DF a funcționat ~doi ani până să-i pun o notificare (dar făceam actualizările o dată pe lună, la 4-5 dimineața, când traficul era zero)
  • Eu folosesc mailgun. Primele 10k de mailuri sunt gratuite. Validarea o faci din același loc de unde administrezi domeniul (trebuie să setezi CNAME, TXT & MX);
  • DevForum stă pe un droplet cu 1Gb RAM
  • Din /admin/customize/css_html. Poți customiza inclusiv cu js (dar destul de limitat; i.e. nu poți customiza deloc editorul)
  • Ăsta e motivul pentru care evit să folosesc pluginuri neoficiale. Nu o dată s-a întâmplat ca un update să bușească un plugin. Și tot ăsta e motivul pentru care am tot amânat niște modificări la DF: până găsesc timp să fac modificările, se schimbă API-ul :smiley:
5 Likes

Completări:

Dacă ai prea puțin RAM (i.e. sub 2Gb), set-up-ul te întreabă dacă vrei să ți se faca o partiție swap (acum trei ani a trebuit să o fac manual; ieri s-a făcut totul automat).


Dacă tutorialele pentru plugin-uri expiră destul de repede, cele server-related sunt destul de relevante și după doi-trei ani (probabil pentru că nu se schimbă nimic în arhitectura aplicației).


Situații în care această situație e utilă:

  • ai primit gratuit un VPS superpotent și nu vrei să-l irosești cu o singură aplicație;
  • ai serverul tău dedicat.

Cred că orice altă situație este este overkill.

2 Likes

Aha, deci de aia nu primesc email-uri de pe devforum.ro, pentru ca am mailgun in blacklist din motive de spam :slight_smile:

Aș face mai multe forumuri pe un singur server și pentru test/redundanță/mai multe limbi gen en./ro./… În plus nu e prea practic să țin o mașină virtuală cu un forum care nu e al meu pe pc la fel cum țin contabilii facturile câțiva ani doar ca să îi pun un modal sau reclamă, un plugin pe an. Adică ar merge un test.xyz.ro limitat pe ip din app.yml și pe el să lucrez direct în loc de un ubuntu configurat pe pc ca să fac plugin-uri, patch-uri, modificări.

Iarăși pentru redundanță aș configura mai multe containere cu discourse care să se conecteze la un singur container cu redis + postgresql (poate chiar pe bare metal ca să nu îmi scadă din I/O) În general pgsql/mysql se mișcă oribil cu aufs față de bare metal. (în special cu kvm->docker)

Dacă ar fi nevoie aș mai pune și 4 servere nginx cu ip-uri diferite în locații diferite pentru load balancing în round robin, poate chiar haproxy fiindcă mi-am promis că trec pe haproxy (nginx e din ce în ce mai comercial cu funcțiile avansate).
Am un forum destul de mare care ar avea și 10000 de unici câteodată, ar trebui să îmi fac precauții de genul.

Acum am vrut să fac un forum privat micuț pentru o echipă și nu mi s-a părut chiar straight forward instalarea. Adică pe mailgun, sparkpost mi-a refuzat domeniul pur și simplu (.club), pe mailjet mi-a cerut confirmarea cu un fișier gol, am rezolvat cu un vhost cu nginx pe un server pe care îl aveam.

Am dat de altă problemă :
Instalarea localizărilor sau modificarea lor e mult mai complexă decât la orice altă platformă.

Aici nici nu îndrăznesc să te contrazic :smiley: