FreeBSD 12 NodeBB Forumu Nasıl Kurulur

NodeBB , Node.js tabanlı bir forum yazılımıdır. Anlık etkileşimler ve gerçek zamanlı bildirimler için web soketlerini kullanır. NodeBB kaynak kodu genel barındırılan Github . Bu kılavuz Node.js, veritabanı olarak MongoDB, ters proxy olarak Nginx ve SSL sertifikaları için Acme.sh kullanarak yeni bir FreeBSD 12 Vultr örneğinde NodeBB kurulum işleminde size yol gösterecektir.

Gereksinimler

NodeBB için aşağıdaki yazılımların yüklenmesi gerekir:

  • Node.js sürüm 6.9.0 veya daha üstü
  • MongoDB sürüm 2.6 veya üstü
  • nginx
  • Git
  • Minimum 1024 MB RAM
  • A/ AAAAKayıtlar ayarlanmış alan adı

Sen başlamadan önce

FreeBSD sürümünü kontrol edin.

uname -ro
# FreeBSD 12.0-RELEASE

FreeBSD sisteminizin güncel olduğundan emin olun.

freebsd-update fetch install
pkg update && pkg upgrade -y

Sisteminizde yoksa gerekli paketleri kurun.

pkg install -y sudo vim unzip wget git bash socat gcc8 pkgconf vips

Tercih ettiğiniz kullanıcı adıyla yeni bir kullanıcı hesabı oluşturun (kullanacağız 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!

Grup üyelerinin herhangi bir komutu yürütmesine izin vermek için visudokomutu çalıştırın ve %wheel ALL=(ALL) ALLsatırı kaldırın wheel.

visudo

# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL

Şimdi ile yeni oluşturulan kullanıcınıza geçin su.

su - johndoe

NOT: Kullanıcı adınızla değiştirin johndoe.

Saat dilimini ayarlayın.

sudo tzsetup

Node.js dosyasını yükleyin

NodeBB, Node.js tarafından yönlendirilir ve bu nedenle yüklenmesi gerekir. Node.js'nin geçerli LTS sürümünün yüklenmesi önerilir.

Node.js ve npm'yi yükleyin.

sudo pkg install -y node10 npm-node10

Sürümleri kontrol edin.

node -v && npm -v
# v10.15.3
# 6.9.0

MongoDB'yi yükleme ve yapılandırma

MongoDB, NodeBB için varsayılan veritabanıdır.

MongoDB'yi yükleyin.

sudo pkg install -y mongodb40

Versiyonu kontrol et.

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.0.6
# db version v4.0.6

MongoDB'yi etkinleştirin ve başlatın.

sudo sysrc mongod_enable=yes
sudo service mongod start

NodeBB için bir veritabanı ve kullanıcı oluşturun.

Önce MongoDB'ye bağlanın.

mongo

Yerleşik adminveritabanına geçin .

> use admin

Yönetici kullanıcı oluşturun.

> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

NOT: Yer tutucuyu <Enter a secure password>seçtiğiniz şifreyle değiştirin.

Adlı yeni bir veritabanı ekleyin nodebb.

> use nodebb

Veritabanı oluşturulacak ve bağlam değiştirilecek nodebb. Ardından nodebbkullanıcıyı uygun ayrıcalıklarla oluşturun.

> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

NOT: Yine, yer tutucuyu <Enter a secure password>kendi seçtiğiniz şifreyle değiştirin.

Mongo kabuğundan çıkın.

> quit()

MongoDB'yi yeniden başlatın ve daha önce oluşturulan yönetici kullanıcının bağlanabildiğinden emin olun.

sudo service mongod restart
mongo -u admin -p your_password --authenticationDatabase=admin

Nginx'i yükleme ve yapılandırma

Nginx'i yükleyin.

sudo pkg install -y nginx

Versiyonu kontrol et.

nginx -v
# nginx version: nginx/1.14.2

Nginx'i etkinleştirin ve başlatın.

sudo sysrc nginx_enable=yes
sudo service nginx start

NodeBB varsayılan olarak bağlantı noktasında çalışır 4567. Yazmayı önlemek http://example.com:4567için, Nginx'i NodeBB uygulaması için ters proxy olarak yapılandıracağız. Bağlantı noktasındaki 80veya 443SSL kullanılıyorsa her istek bağlantı noktasına yönlendirilir 4567.

sudo vim /usr/local/etc/nginx/nodebb.confAşağıdaki temel ters proxy yapılandırmasıyla çalıştırın ve doldurun.

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";
  }

}

Yukarıdaki yapılandırmada, server_nameyönergeyi alan adınız / ana bilgisayar adınızla güncelleyin .

Dosyayı kaydedin ve :+ W+ ile çıkın Q.

Şimdi nodebb.confana nginx.confdosyaya eklememiz gerekiyor.

sudo vim /usr/local/etc/nginx/nginx.confAşağıdaki satırı çalıştırın ve http {}bloğa ekleyin .

include nodebb.conf;

Yapılandırmayı kontrol edin.

sudo nginx -t

Nginx'i yeniden yükleyin.

sudo service nginx reload

Acme.sh istemcisini yükleyin ve Let's Encrypt sertifikası edinin (isteğe bağlı)

Forumunuzu HTTPS ile güvenli hale getirmek gerekli değildir, ancak sitenizin trafiğini güvenli hale getirecektir. Acme.sh sıfır bağımlılık ile Let's Encrypt SSL sertifikaları almak için saf bir unix kabuk yazılımıdır.

Acme.sh dosyasını indirin ve yükleyin.

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 ~

Versiyonu kontrol et.

/etc/letsencrypt/acme.sh --version
# v2.8.1

İçin RSA ve ECDSA sertifikaları alın 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

Yukarıdaki komutları çalıştırdıktan sonra sertifikalarınız ve anahtarlarınız şurada olacaktır:

  • RSA: /etc/letsencrypt/forum.example.com.
  • ECC / ECDSA: /etc/letsencrypt/forum.example.com_ecc.

Let's Encrypt'ten sertifika aldıktan sonra, bunları kullanmak için Nginx'i yapılandırmamız gerekir.

sudo vim /usr/local/etc/nginx/nodebb.confTekrar çalıştırın ve Nginx'i HTTPS ters proxy olarak yapılandırın.

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";
  }

}

Yapılandırmayı kontrol edin.

sudo nginx -t

Nginx'i yeniden yükleyin.

sudo service nginx reload

NodeBB Kurulumu

Bir belge kök dizini oluşturun.

sudo mkdir -p /usr/local/www/nodebb

/usr/local/www/nodebbDizinin sahipliğini olarak değiştirin johndoe.

sudo chown -R johndoe:johndoe /usr/local/www/nodebb

Belge kök klasörüne gidin.

cd /usr/local/www/nodebb

En son NodeBB'yi belge kök klasörüne kopyalayın.

git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .

NodeBB kurulum komutunu çalıştırın ve istendiğinde her soruyu cevaplayın.

./nodebb setup

NodeBB kurulumu tamamlandıktan sonra ./nodebb start, NodeBB sunucunuzu manuel olarak başlatmak için çalıştırın .

./nodebb start

Bu komuttan sonra, bir web tarayıcısında NodeBB forum örneğinize erişebileceksiniz.

NodeBB'yi PM2 ile çalıştırın

Aracılığıyla ./nodebb startbaşlatıldığında, sistem yeniden başlatıldığında NodeBB otomatik olarak yeniden başlamaz. Bundan kaçınmak için NodeBB'yi bir sistem hizmeti olarak ayarlamamız gerekecek.

Çalışıyorsa, NodeBB'yi durdurun.

./nodebb stop

PM2'yi global olarak yükleyin.

sudo npm install pm2 -g

Versiyonu kontrol et.

pm2 -v
# 3.5.0

NodeBB belge köküne gidin.

cd /usr/local/www/nodebb

NodeBB'yi PM2 üzerinden başlatın.

pm2 start app.js

NodeBB işlemini listeleyin.

pm2 ls

Mevcut init sistemini tespit edin.

pm2 startup

Başlangıç ​​kancanızı ayarlamak için bu komutun çıkışını kopyalayıp CLI'ye yapıştırın.

İşlem listenizi kaydedin.

pm2 save

Bu kadar. NodeBB örneğiniz şimdi çalışıyor.



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun