Instalacja Discourse na VPS KVM

vps
discourse
Tagi: #<Tag:0x00007f343cbbcc28> #<Tag:0x00007f343cbbca20>

#1

Jeśli chciałbyś mieć takie forum jak forum.lvlup.pro to użyj tego prostego poradnika :slight_smile:

VPS

Wymagania

VPS

Potrzebujemy VPSa który będzie używać pełnej wirtualizacji czyli np. KVM, Xen lub Hyper-V

W tym poradniku będzie użyty VPS z oferty KVM Game Pro
https://lvlup.pro/oferta/vps-kvm-game-pro/
nawet bez użycia Cloudflare powinien wytrzymać małe ataki DDoS którymi czasami padają fora.
Wystarczy nam pakiet z 2GB RAM.

Powiadomienia

Oprócz VPSa potrzebujemy pewnego konta pocztowego wysyłającego emaile.
Wiadomości email są kluczowe dla działania forum np. aby uzyskać dostęp administratora oraz aby nowi użytkownicy mogli aktywować konto.
Oczywiście nie chcemy aby nasze emaile trafiały do spamu jak to ma miejsce w sporej ilości przypadków stron dlatego skorzystamy z jednego z pewnych dostawców wysyłki email którzy się w tym specjalizują.

Przykładowi dostawcy:

W tym poradniku użyjemy Mailgun ze względu na banalną konfigurację, przeciętne forum nie zużyje całego limitu 10k :slight_smile:

Domena lub subdomena

Ostatnia z potrzebnych rzeczy to nazwa pod którą będzie nasze forum.
Więcej można przeczytać w tym wątku

E-mail

Zanim zaczniemy konfigurować forum na VPS utwórzmy oraz aktywujmy konto na mailgun.com

Po dodaniu domeny oraz wymaganych wpisów w strefie DNS według instrukcji w panelu mailgun.com wchodzimy w panelu w swoją domenę/subdomenę a następnie klikamy Manage SMTP credentials umożliwi nam to stworzenie osobnego loginu i hasła dostępu do skrzynki używanej na forum.

Gdy jesteśmy już w tej zakładce klikamy New SMTP Credential
Uzupełniamy następnie:
Login - np. forum
Password - najlepiej długie i losowe hasło nie używane nigdzie indziej
Confirm Password - powtarzamy to co wyżej

Zapisujemy sobie dane który tu wpisaliśmy i klikamy Create Credential.
Gotowe, mamy już dane potrzebne do konfiguracji forum :slight_smile:

VPS

Po zamówieniu i opłaceniu usługi otrzymujemy dane na maila:

Mając teraz IP VPSa dodajemy do strefy DNS wpis A z IP VPS, instrukcje znajdziesz w wątku o domenie

Włączamy VPS i logujemy się według instrukcji:

Następnie dla uproszczenia logujemy się od razu na konto root

sudo su

Należy wprowadzić swoje hasło użytkownika user

Instalacja potrzebnych narzędzi

Aby ściągnąć pliki Discourse należy mieć zainstalowany system zarządzania wersjami git
Do edycji pliku konfiguracyjnego użyjemy łatwego w obsłudze edytora nano.

apt-get install git nano

Prawdopodobnie takie narzędzia będą już wcześniej zainstalowane ale nie zaszkodzi się upewnić :slight_smile:

Instalacja Docker’a

Docker to nowoczesne narzędzie które zarządza kontenerami czyli w dużym uproszczeniu małymi VPSami które zawierają wszystko co potrzeba, dzięki czemu uruchomienie i aktualizacja nawet skomplikowanych aplikacji jest bardzo prosta.

Wystarczy jedna komenda

wget -qO- https://get.docker.com/ | sh

Po około minucie Docker jest zainstalowany i możemy przystąpić do instalacji Discourse

Instalacja Discourse

Pliki forum

Tworzymy katalog w którym będą pliki forum, następnie ściągamy do niego potrzebne pliki.
Ostatnia komenda kopiuje przykładową domyślną konfigurację tak abyśmy mogli szybko zacząć pracę nad forum nie wczytując się w każdą zmienną konfiguracji

mkdir /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
cp samples/standalone.yml containers/app.yml

Konfiguracja

Odpalamy edytor i zmieniamy kilka rzeczy w konfiguracji przed instalacją forum

nano /var/discourse/containers/app.yml

Ukaże nam się mniej więcej takie okno edytora.

Szybkie wprowadzenie jak z niego korzystać:

Ctrl + W
Szukanie

Ctrl + X
Zapis

Ctrl + X
Wyjście

y a potem Enter
Potwierdzenie jednej z powyższych operacji

Sekcje konfiguracji do zmiany

DISCOURSE_DEVELOPER_EMAILS: 'me@example.com'

Zamiast me@example.com wpisujemy swój adres email na który chcemy otrzymywać wiadomości z forum, również te dotyczące naszej funkcji admina czyli np. informacje o aktualizacjach. Pierwsze konto admina będzie miało taki adres email i musisz mieć dostęp do tej skrzynki aby to potwierdzić.

DISCOURSE_HOSTNAME: 'discourse.example.com'

Tu discourse.example.com zamieniamy na naszą domenę lub subdomenę pod którym chcemy aby pojawiło się forum czyli np. mojefajneforum.pl lub mojeforum.hostmc.pl

Potrzebujemy jeszcze ustawić trzy linie konfiguracji, upewnijmy się że każda z nich usunięty znak #, są to

  • DISCOURSE_SMTP_ADDRESS tu wpisujemy smtp.mailgun.org
  • DISCOURSE_SMTP_USER_NAME wpisujemy ustalony wcześniej w mailgun login
  • DISCOURSE_SMTP_PASSWORD miejsce dla ustalonego wcześniej hasła w mailgun

Okej, mamy co trzeba, teraz zapiszemy i wyjdziemy z edytora.
Wciskamy Ctrl + O a następnie Enter
Teraz Ctrl + X i właśnie wróciliśmy do wiersza poleceń.

Instalacja

Teraz możemy uruchomić właściwą instalację forum

./launcher bootstrap app

Proces ten trwa około 4-10min
Gdy wszystko się już zainstaluje można przystąpić do uruchomienia forum.

Uruchomienie

./launcher start app

Forum powinno być już dostępne pod naszym wybranym adresem.
Wszystko jest skonfigurowane tak że przy restarcie VPSa forum włączy się automatycznie.

Dodatkowe informacje

Ten poradnik jest spolszczoną, uproszczoną i skróconą formą oficjalnego poradnika instalacji dostępnego tu:
https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md


Pytanko co do ramu
Jak nazywa się silnik forum?
Założenie własnego forum, prośba o pomoc
Forum lvlup.pro
Jaki silnik forum wybrać?
Instalacja Discourse
Discourse na VPS
#2

Miałem napisać. Fajnie :wink:


#3

Postępowałem zgodnie z poradnikiem, ale przy uruchamianiu:

Unable to find image 'local_discourse/app:latest' locally Pulling repository docker.io/local_discourse/app /usr/bin/docker: Error: image local_discourse/app:latest not found. See '/usr/bin/docker run --help'.


#4

Przy uruchamianiu czyli przy tym kroku?

./launcher bootstrap app

#5

Nie, przy start app - ale robiąc z oryginalnym poradnikiem wyszło na to, że discourse koliduje z Apache


#6

Pewnie że koliduje, nginx który jest proxy dla Discourse też korzysta z portu 80 jak Apache :stuck_out_tongue:


#7

@SystemZ mocno obciąża te forum serwer (patrząc na twój przykład) w zależności od ilości osób na forum? Ile mniej więcej zajmuje aktualna baza danych forum dla lvlup?


#8

Na początku wystarcza pakiet KVM Game Pro 2GB RAM, tak jak teraz to dla komfortu lepiej mieć pakiet 4GB RAM.
Obecnie skompresowany pełny backup forum wraz z obrazkami i zrzutem bazy to ponad 300MB.


#9

W konfiguracji można znaleźć link do tego tematu.
Tam wszystko jest opisane. Tylko jakbyś chciał zrobić proxy z apache to ja nie wiem jak. Korzystam z nginx’a.


#10

Czy na OpenVZ będzie działało @SystemZ?


#11

Będzie problem z Dockerem.


#12

@Nieznajomy11 da się to rozwiązać?


#13

Jeśli dobrze pamiętam, to obecnie mamy OpenVZ 6 więc:

Ewentualnie masz tam też link do 7, ale to chyba nie na te VPS :wink:
Niestety nie wiem jak to się ma w praktyce, czy to dobrze działa.


#14

niestety ten poradnik nie działa. Niby mam tego centosa, robie zgodnie z poradnikiem ale podczas komendy “docker daemon -s vfs” pokazuje coś takiego:

WARN[0000] Your Linux kernel version 2.6.32-48-pve can be unstable running docker. Please upgrade your kernel to 3.10.0.
INFO[0000] Graph migration to content-addressability took 0.00 seconds
WARN[0000] Running modprobe nf_nat failed with message: ``, error: exit status 1
INFO[0000] Firewalld running: false
FATA[0000] Error starting daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain: iptables failed: iptables --wait -t nat -N DOCKER: iptables v1.4.21: can’t initialize iptables table `nat’: Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.


#15

Na OpenVZ bym odpuścił Dockera, to będzie zawsze proteza.
Na KVM to działa jako powinno.


#16

Tylko że to będzie hajs wyrzucony w błoto.
Niby według poradnika podesłanego przez @Nieznajomy11 powinno działać a nie działa.
Ktoś wie czemu?

P.S: WordPress też potrzebuje dockera?

EDIT: przeczytałem że docker potrzebuje kernela 042stab105.4 i funkcji (?)tun, veth bridge. Czy tego, nie wiem, brakuje? Czy cuś?


#17

SystemZ wysyłał już na shoutboxie:


#18

Czyli ten poradnik co go podesłałeś nie może działać?


#19

Ja mam Wordpressa na OpenVZ i działa, więc chyba go nie potrzebuje :slight_smile:


#20

Wygląda na to, że w tym przypadku nie można tego użyć :<