Debian/Ubuntu - instalcja nodeBB + mongoDB + systemD + nginx

Dawno nic nie było :) nowego na stronie. Tak więc na dziś szybki tekst o instalacji uważam niezłej aplikacji do forum napisaniej w nodejs.
Domyślnie nodeBB lata razem z Redis, jednak ja postawilem na mongoDB.
Oczywiście ulubiony nginx będzie na froncie :).
Na początek pare paczek systemowych
apt-get install git build-essential imagemagick mongodb
I nodejs:
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - apt-get install -y nodejs
Odpalamy mongo:
mongo
Zakładamy baze:
use forum
Dodajemy usera z hasłem
db.addUser( { user: "nazwa_usera", pwd: "super_tajne_haslo", roles: [ "readWrite" ] } )
Powyżej składnia dla mongoDB 2.4 – taki jaki jest w Debian Jessie
Konfigurujemy autoryzacje do bazy mongo:
vi /etc/mongodb.conf zmieniamy
#auth = true
na
auth = true
Gdzieś w systemie pobieramy nodebb
cd /web mkdir -p /web/forum/log git clone git://github.com/NodeBB/NodeBB.git app
Zaczynamy konfigurcje – będą pytania o dostęp do mongo jak i o pierwszego usera forum – naszego admina. Jako, iż będzie nignx to przy konfiguracji podajemy „normalny adres forum” bez portów etc.. np. https://forum.8px.pl
cd app node app --setup
W zasadzie forum już lata :)
Czas na systemD. Na początek dodajemy usera do działania aplikacji
useradd -m -d /web/forum/app forum chown -R forum:forum /web/forum/app
i skrypt startowy
vi /etc/systemd/system/mojeforum.service
i zawartość:
[Unit] Description=Nasze super forum After=system.slice multi-user.target [Service] Type=simple User=forum StandardOutput=syslog StandardError=syslog SyslogIdentifier=node SyslogFacility=local0 WorkingDirectory=/web/forum/app ExecStart=/usr/bin/node app.js Restart=always [Install] WantedBy=multi-user.target
Uruchamiamy forum oraz dodajemy autostart
service nodebb start systemctl enable nodebb.service
Teraz kilka wpisów dla nginx – jest to tylko wycinek konfiguracji.
location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:4567; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }
Gotowe :)