Discursul este o nouă soluție de forum open-source simplă, curată și simplă. Este implementat cu Ruby on Rails, o bază de date Postgres și un cache server Redis. Acest tutorial descrie cum se instalează Discursul pe un Vultr VPS cu CentOS 7.
cerinţe
- Vultr VPS cu minim 1 GB RAM.
- CentOS 7 x64 instalat pe VPS.
Configurați fișierul swap
Trebuie să configurați swap-ul pentru un VPS RAM de 1 GB. Dacă VPS-ul dvs. are mai mult de 1 GB RAM, puteți sări peste acest pas. Vom crea un swapfile de 2 GB pentru VPS de 1 GB RAM.
-
Creați swapfile.
dd if=/dev/zero of=/swapfile bs=1M count=2048
mkswap /swapfile
chmod 600 /swapfile
-
Editează fstab pentru a adăuga swapfile în tabelul sistemelor de fișiere.
Deschideți fstab cu vi:
vi /etc/fstab
Adăugați următoarea linie în fișier:
/swapfile swap swap defaults 0 0
-
Setați politica de utilizare a swap-urilor. Folosiți swapfile numai atunci când memoria sistemului este scăzută.
sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | tee -a /etc/sysctl.conf
sysctl vm.vfs_cache_pressure=60
echo vm.vfs_cache_pressure = 60 | tee -a /etc/sysctl.conf
-
Activați swapfile.
mount -a
swapon -a
-
Verificați starea de schimb.
swapon -s
Dacă swapfile a fost activat, veți vedea următoarele informații.
Filename Type Size Used Priority
/swapfile file 2097148 0 -1
Instalați Docker
Rulați comanda de mai jos pentru a instala Docker pe CentOS 7.
yum install docker
Dacă ați dezactivat SELinux, ar fi bine să îl dezactivați și în docker.
vi /etc/sysconfig/docker
Comentează linia 4.
#OPTIONS='--selinux-enabled'
Porniți serviciul de andocare.
systemctl start docker
systemctl enable docker
Vă rugăm să rețineți că dacă reporniți firewalld, veți avea nevoie și de repornirea docker-ului. Deoarece firewalld va elimina lanțul docker din iptables atunci când este repornit.
Instalați discursul
Creați un folder numit discoursesub /varși clonați depozitul Discurs.
mkdir /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
Accesați discoursefolderul.
cd /var/discourse
Copiați fișierul de șablon de configurare discurs în folderul containere.
cp samples/standalone.yml containers/app.yml
-
Deschideți app.ymlcu vi.
vi containers/app.yml
-
Dacă utilizați un VPS de 1 GB, setați bufferul partajat db ca 128 MB app.yml.
db_shared_buffers: "128MB"
-
Modificați UNICORN_WORKERSla 2 pentru o instanță RAM de 1 GB.
## With 2GB we recommend 3-4 workers, with 1GB only 2
UNICORN_WORKERS: 2
-
Setați adresa dvs. de e-mail pentru contul de admin. Veți avea nevoie de acest e-mail pentru a înregistra contul de administrator pe forumul dvs. Discurs.
DISCOURSE_DEVELOPER_EMAILS: '[email protected]'
-
Setați numele de domeniu pentru Discurs. De exemplu, am setat-o ca discourse.example.com, asta înseamnă că ar fi accesibil la adresa URL http://discourse.example.com/.
## TODO: The domain name this Discourse instance will respond to
DISCOURSE_HOSTNAME: 'discourse.example.com'
-
Configurați serverul dvs. de poștă pentru discurs.
Dacă serverul dvs. de poștă este pe același server cu Discurs, configurați-l după cum urmează.
DISCOURSE_SMTP_ADDRESS: smtp.example.com # (mandatory)
DISCOURSE_SMTP_PORT: 587 # (optional)
DISCOURSE_SMTP_USER_NAME: YOUR_EMAIL_ACCOUNT # (optional)
DISCOURSE_SMTP_PASSWORD: YOURPASSWORD # (optional)
DISCOURSE_SMTP_ENABLE_START_TLS: flase # (optional, default true)
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
Dacă utilizați un server SMTP de la distanță, vă rugăm să modificați app.ymlurmătoarele.
DISCOURSE_SMTP_ADDRESS: smtp.example.com # (mandatory)
DISCOURSE_SMTP_PORT: 587 # (optional)
DISCOURSE_SMTP_USER_NAME: [email protected] # (optional)
DISCOURSE_SMTP_PASSWORD: YOURPASSWORD # (optional)
DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
-
Salvați și ieșiți app.yml.
Bootstrap și începe Discursul
Rulați comanda de mai jos pentru bootstrap Discourse.
./launcher bootstrap app
După finalizarea procesului de pornire, începeți Discursul.
./launcher start app
Deschideți Discurs în browser
Pe computerul client, introduceți numele de domeniu pe care l-ați configurat pentru Discurs app.yml. Vei vedea propria instanță a discursului.
Depanare
- În mod implicit, Docker va asculta portul 80. Dacă portul 80 a fost folosit deja de Nginx sau Apache, trebuie să mutați serviciul în alt port; sau schimbați Docker în alt port. De exemplu, schimbați „80:80” în „8080: 80” în
app.ymlpentru a face Docker să asculte pe portul 8080.
- Pe VPS de 1 GB RAM, este posibil să nu actualizați Discursul la noua versiune și veți vedea un „502 Bad Gateway” când accesați Discurs. Soluția simplă pentru această problemă este să rulați
./launcher rebuild apppentru a reconstrui instanța dvs. Discurs.