Last active
January 26, 2020 21:30
-
-
Save stephdl/643e88722ffe76c05dab3754314de32b to your computer and use it in GitHub Desktop.
nodebb on nethserver
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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