Sådan installeres Tiny Tiny RSS Reader på en FreeBSD 11 FAMP VPS
Bruger du et andet system? Tiny Tiny RSS Reader er en gratis og open source selv-hostet webbaseret nyhedsfeed (RSS/Atom) læser og aggregator, designet til at allo
NodeBB er en Node.js-baseret forumsoftware . Den bruger web-sockets til øjeblikkelige interaktioner og meddelelser i realtid. NodeBB-kildekoden er offentligt hostet på Github . Denne guide vil lede dig gennem NodeBB installationsprocessen på en frisk FreeBSD 12 Vultr-instans ved at bruge Node.js, MongoDB som en database, Nginx som en omvendt proxy og Acme.sh til SSL-certifikater.
NodeBB kræver, at følgende software er installeret:
A
/ AAAA
records opsatTjek FreeBSD-versionen.
uname -ro
# FreeBSD 12.0-RELEASE
Sørg for, at dit FreeBSD-system er opdateret.
freebsd-update fetch install
pkg update && pkg upgrade -y
Installer nødvendige pakker, hvis de ikke findes på dit system.
pkg install -y sudo vim unzip wget git bash socat gcc8 pkgconf vips
Opret en ny brugerkonto med dit foretrukne brugernavn (vi bruger johndoe
).
adduser
# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!
Kør visudo
kommandoen, og fjern kommentering af %wheel ALL=(ALL) ALL
linjen, for at tillade medlemmer af wheel
gruppen at udføre enhver kommando.
visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL
Skift nu til din nyoprettede bruger med su
.
su - johndoe
BEMÆRK: Erstat johndoe
med dit brugernavn.
Indstil tidszonen.
sudo tzsetup
NodeBB er drevet af Node.js, og det skal derfor installeres. Installation af den aktuelle LTS-version af Node.js anbefales.
Installer Node.js og npm.
sudo pkg install -y node10 npm-node10
Tjek versionerne.
node -v && npm -v
# v10.15.3
# 6.9.0
MongoDB er standarddatabasen for NodeBB.
Installer MongoDB.
sudo pkg install -y mongodb40
Tjek versionen.
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.0.6
# db version v4.0.6
Aktiver og start MongoDB.
sudo sysrc mongod_enable=yes
sudo service mongod start
Opret en database og bruger til NodeBB.
Opret forbindelse til MongoDB først.
mongo
Skift til den indbyggede admin
database.
> use admin
Opret en administrativ bruger.
> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )
BEMÆRK: Udskift pladsholderen <Enter a secure password>
med din egen valgte adgangskode.
Tilføj en ny database kaldet nodebb
.
> use nodebb
Databasen vil blive oprettet og kontekst skiftet til nodebb
. Opret derefter nodebb
brugeren med de relevante rettigheder.
> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
BEMÆRK: Igen, udskift pladsholderen <Enter a secure password>
med din egen valgte adgangskode.
Forlad Mongo-skallen.
> quit()
Genstart MongoDB og sørg for, at den tidligere oprettede administrative bruger kan oprette forbindelse.
sudo service mongod restart
mongo -u admin -p your_password --authenticationDatabase=admin
Installer Nginx.
sudo pkg install -y nginx
Tjek versionen.
nginx -v
# nginx version: nginx/1.14.2
Aktiver og start Nginx.
sudo sysrc nginx_enable=yes
sudo service nginx start
NodeBB kører som standard på port 4567
. For at undgå at skrive http://example.com:4567
, vil vi konfigurere Nginx som en omvendt proxy for NodeBB-applikationen. Hver anmodning på port 80
eller 443
, hvis SSL bruges, vil blive videresendt til port 4567
.
Kør sudo vim /usr/local/etc/nginx/nodebb.conf
og udfyld den med den grundlæggende reverse proxy-konfiguration nedenfor.
server {
listen [::]:80;
listen 80;
server_name forum.example.com;
root /usr/share/nginx/html;
client_max_body_size 50M;
location /.well-known/acme-challenge/ {
allow all;
}
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 $http_host;
proxy_hide_header X-Powered-By;
proxy_set_header X-Nginx-Proxy true;
proxy_pass http://127.0.0.1:4567;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
I ovenstående konfiguration skal du opdatere server_name
direktivet med dit domæne/værtsnavn.
Gem filen og afslut med :+ W+ Q.
Nu skal vi inkludere nodebb.conf
i hovedfilen nginx.conf
.
Kør sudo vim /usr/local/etc/nginx/nginx.conf
og tilføj følgende linje til http {}
blokken.
include nodebb.conf;
Tjek konfigurationen.
sudo nginx -t
Genindlæs Nginx.
sudo service nginx reload
Det er ikke nødvendigt at sikre dit forum med HTTPS, men det vil sikre dit websteds trafik. Acme.sh er en ren unix shell-software til at opnå SSL-certifikater fra Let's Encrypt med nul afhængigheder.
Download og installer Acme.sh.
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
Tjek versionen.
/etc/letsencrypt/acme.sh --version
# v2.8.1
Få RSA- og ECDSA-certifikater for forum.example.com
.
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo service nginx reload" --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo service nginx reload" --keylength ec-256
Efter at have kørt ovenstående kommandoer, vil dine certifikater og nøgler være i:
/etc/letsencrypt/forum.example.com
./etc/letsencrypt/forum.example.com_ecc
.Efter at have fået certifikater fra Let's Encrypt, skal vi konfigurere Nginx til at bruge dem.
Kør sudo vim /usr/local/etc/nginx/nodebb.conf
igen og konfigurer Nginx som en HTTPS omvendt proxy.
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name forum.example.com;
root /usr/share/nginx/html;
client_max_body_size 50M;
location /.well-known/acme-challenge/ {
allow all;
}
# RSA
ssl_certificate /etc/letsencrypt/forum.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com/forum.example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/forum.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com_ecc/forum.example.com.key;
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 $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4567;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Tjek konfigurationen.
sudo nginx -t
Genindlæs Nginx.
sudo service nginx reload
Opret en dokumentrodmappe.
sudo mkdir -p /usr/local/www/nodebb
Skift ejerskab af /usr/local/www/nodebb
biblioteket til johndoe
.
sudo chown -R johndoe:johndoe /usr/local/www/nodebb
Naviger til dokumentets rodmapp.
cd /usr/local/www/nodebb
Klon den seneste NodeBB ind i dokumentets rodmapp.
git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .
Kør kommandoen NodeBB setup og besvar hvert spørgsmål, når du bliver bedt om det.
./nodebb setup
Når NodeBB-opsætningen er fuldført, skal du køre for ./nodebb start
at starte din NodeBB-server manuelt.
./nodebb start
Efter denne kommando vil du være i stand til at få adgang til din NodeBB foruminstans i en webbrowser.
Når det startes via ./nodebb start
, vil NodeBB ikke automatisk starte op igen, når systemet genstarter. For at undgå det, bliver vi nødt til at konfigurere NodeBB som en systemtjeneste.
Hvis du kører, stop NodeBB.
./nodebb stop
Installer PM2 globalt.
sudo npm install pm2 -g
Tjek versionen.
pm2 -v
# 3.5.0
Naviger til NodeBB-dokumentroden.
cd /usr/local/www/nodebb
Start NodeBB via PM2.
pm2 start app.js
Liste over NodeBB-processen.
pm2 ls
Find det tilgængelige init-system.
pm2 startup
Kopiér og indsæt outputtet fra denne kommando i CLI'en for at konfigurere din start-hook.
Gem din procesliste.
pm2 save
Det er det. Din NodeBB-instans er nu oppe og køre.
Bruger du et andet system? Tiny Tiny RSS Reader er en gratis og open source selv-hostet webbaseret nyhedsfeed (RSS/Atom) læser og aggregator, designet til at allo
Using a Different System? Wiki.js is a free and open source, modern wiki app built on Node.js, MongoDB, Git and Markdown. Wiki.js source code is publicl
Bruger du et andet system? Pagekit 1.0 CMS er et smukt, modulært, udvideligt og let, gratis og open source Content Management System (CMS) med
Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, open source, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg
Denne artikel guider dig gennem opsætning af OpenBSD 5.5 (64-bit) på KVM med en Vultr VPS. Trin 1. Log ind på Vultr kontrolpanelet. Trin 2. Klik på DEPLAY
Bruger du et andet system? osTicket er et open source kundesupport billetsystem. osTicket-kildekoden er offentligt hostet på Github. I denne tutorial
Bruger du et andet system? Flarum er en gratis og open source næste generations forumsoftware, der gør online diskussion sjov. Flarum kildekode er hostet o
Bruger du et andet system? TLS 1.3 er en version af Transport Layer Security (TLS) protokollen, der blev offentliggjort i 2018 som en foreslået standard i RFC 8446
Introduktion WordPress er det dominerende content management system på internettet. Det driver alt fra blogs til komplekse websteder med dynamisk indhold
Bruger du et andet system? Subrion 4.1 CMS er et kraftfuldt og fleksibelt open source Content Management System (CMS), der bringer et intuitivt og klart indhold
Denne vejledning viser dig, hvordan du konfigurerer en DNS-tjeneste, der er nem at vedligeholde, nem at konfigurere, og som generelt er mere sikker end den klassiske BIN
En FEMP-stak, som kan sammenlignes med en LEMP-stak på Linux, er en samling open source-software, der typisk installeres sammen for at aktivere en FreeBS
MongoDB er en NoSQL-database i verdensklasse, der ofte bruges i nyere webapplikationer. Det giver højtydende forespørgsler, sharding og replikering
Bruger du et andet system? Monica er et open source system til styring af personlige relationer. Tænk på det som et CRM (et populært værktøj, der bruges af salgsteams i th
Introduktion Denne tutorial demonstrerer OpenBSD som en e-handelsløsning, der bruger PrestaShop og Apache. Apache er påkrævet, fordi PrestaShop har kompleks UR
Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM
Bruger du et andet system? Directus 6.4 CMS er et kraftfuldt og fleksibelt, gratis og open source Headless Content Management System (CMS), der giver udviklere
VPS-servere er ofte målrettet af ubudne gæster. En almindelig type angreb dukker op i systemlogfiler som hundredvis af uautoriserede ssh-loginforsøg. Sætte op
Introduktion OpenBSD 5.6 introducerede en ny dæmon kaldet httpd, som understøtter CGI (via FastCGI) og TLS. Der kræves ikke yderligere arbejde for at installere den nye http
Denne vejledning viser dig, hvordan du installerer groupware iRedMail på en ny installation af FreeBSD 10. Du bør bruge en server med mindst én gigabyte o
Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.
Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.
Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.
Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.
Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...
Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.
Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af dataene. Denne blog dækker udviklingen af datalagring på basis af en infografik.
Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.
I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.
For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af mac-maskiner. Læs denne artikel for at lære mere