Skip to content

Instantly share code, notes, and snippets.

@stephdl
Last active January 26, 2020 21:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stephdl/643e88722ffe76c05dab3754314de32b to your computer and use it in GitHub Desktop.
Save stephdl/643e88722ffe76c05dab3754314de32b to your computer and use it in GitHub Desktop.
nodebb on nethserver
nodeBB
Describe your new note here.
https://www.howtoforge.com/tutorial/centos-nodebb-installation/
• mongodb 4.2
• nodebb 1.13.x
curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum -y install nodejs
yum install gcc-c++ make
npm install -g npm@latest
sudo vim /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0] #### tester avec 4.2
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
sudo yum install -y mongodb-org
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
creer la base mongodb
mongo
> use admin
> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )
> use nodebb
> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
> quit()
sudo systemctl restart mongod.service
pour verifier que mongodb fonctionne
mongo -u admin -p your_password --authenticationDatabase=admin
### ds l'idée il faudrait utiliser /usr/share/nodebb pour etre + centos7 friendly mais cela fonctionne
sudo mkdir -p /var/www/nodebb
cd /var/www/nodebb
sudo chown -R apache:apache /var/www/nodebb
on telecharge
git clone -b v1.13.x https://github.com/NodeBB/NodeBB.git .
la durant le script on va vous demander de rentrer le nom de la db, le user et mdp, le vhost....
./nodebb setup
on demarre le site web
./nodebb start
pour regler le probleme : Looks like your connection to NodeBB was lost, please wait while we try to reconnect.
[root@test nodebb]# cat config.json
{
"url": "http://test.de-labrusse.fr",
"secret": "12b99d0a-a1dc-4a43-815f-3514bfcabdd9",
"database": "mongo",
"mongo": {
"host": "127.0.0.1",
"port": "27017",
"username": "nodebb",
"password": "xxxxxxxxxxxx",
"database": "nodebb",
"uri": ""
},
"port": "4567"
}
pour faire le vhost apache
[root@test nodebb]# cat /etc/httpd/conf.d/nodeBB.conf
<VirtualHost *:80>
ServerName test.de-labrusse.fr
#ServerAlias example.com
# Rewrite any http traffic to the main url https site
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^[^\/]*\/(.*) https://test.de-labrusse.fr/$1 [R=301,L]
</IfModule>
</VirtualHost>
<VirtualHost *:443>
# Protocols h2 http/1.1
ServerName test.de-labrusse.fr
SSLEngine on
# SSLCertificateFile /path/to/cert.pem
# SSLCertificateKeyFile /path/to/privkey.pem
# SSLCertificateChainFile /path/to/chain.pem
SSLCertificateFile "/etc/letsencrypt/live/test.de-labrusse.fr-0001/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/test.de-labrusse.fr-0001/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/test.de-labrusse.fr-0001/chain.pem"
# Basic security headers
Header always set X-Content-Type-Options "nosniff"
Header always set X-Xss-Protection "1; mode=block"
# NodeBB header
RequestHeader set X-Forwarded-Proto "https"
# Static file cache
<FilesMatch "\.(ico|jpg|jpeg|png|gif|js|css)$">
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 14 days"
Header set Cache-Control "public"
</IfModule>
</FilesMatch>
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
# Custom Error Document when NodeBB is offline
# ProxyPass /error-documents !
# ErrorDocument 503 /error-documents/503.html
# Alias /error-documents /path/to/nodebb/public
# Websocket passthrough
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:4567/$1 [P,L]
ProxyPass / http://localhost:4567/
ProxyPassReverse / http://localhost:4567/
# Log stuff
# ErrorLog ${APACHE_LOG_DIR}/www-example-error.log
# CustomLog ${APACHE_LOG_DIR}/www-example-access.log combined
</VirtualHost>
pour faire le service systemd
[root@test nodebb]# useradd nodebb
[root@test nodebb]# chown -R nodebb:apache /var/www/nodebb
[root@test nodebb]# vim /etc/systemd/system/nodebb.service
[root@test ~]# cat /etc/systemd/system/nodebb.service
[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service
[Service]
Type=forking
User=nodebb
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb
Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always
[Install]
WantedBy=multi-user.target
[root@test nodebb]# sudo systemctl enable nodebb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nodebb.service to /etc/systemd/system/nodebb.service.
[root@test nodebb]# sudo systemctl start nodebb.service
[root@test nodebb]# ./nodebb status
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment