Ubuntu 18.04 LTS Üzerinde NodeBB Forum Kurulumu

NodeBB , Node.js tabanlı bir forumdur. 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 Ubuntu 18.04 LTS 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:

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

Sen başlamadan önce

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

lsb_release -ds
# Ubuntu 18.04 LTS

Erişimi olan yeni bir non-rootkullanıcı hesabı oluşturun sudove bu hesaba geçin.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

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

Saat dilimini ayarlayın.

sudo dpkg-reconfigure tzdata

Sisteminizin güncel olduğundan emin olun.

sudo apt update && sudo apt upgrade -y

Gerekli paketleri kurun.

sudo apt install -y git build-essential apt-transport-https

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 dosyasını NodeSource deposundan yükleyin.

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs

Node.js ve npm kurulumunu doğrulayın.

node -v && npm -v
# v10.15.0
# 5.6.0

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

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

MongoDB'yi yükleyin.

sudo apt install -y mongodb

Versiyonu kontrol et.

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.3
# db version v3.6.3

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

Önce MongoDB sunucusuna 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ğini doğrulayın.

sudo systemctl restart mongodb.service
mongo -u admin -p your_password --authenticationDatabase=admin

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

Nginx'in en son ana sürümünü resmi Nginx deposundan yükleyin.

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx

Versiyonu kontrol et.

sudo nginx -v
# nginx version: nginx/1.15.0

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

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

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

sudo vim /etc/nginx/conf.d/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";
  }

}

Not: Yönergeyi alan adınız / ana bilgisayar adınızla güncelleyin server_name.

Yapılandırmayı kontrol edin.

sudo nginx -t

Nginx'i yeniden yükleyin.

sudo systemctl reload nginx.service

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 ~
source ~/.bashrc

Versiyonu kontrol et.

acme.sh --version
# v2.7.9

İç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 systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --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 systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength ec-256

Yukarıdaki komutları çalıştırdıktan sonra, sertifikalarınız ve anahtarlarınız aşağıdaki dizinlerde 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 /etc/nginx/conf.d/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 systemctl reload nginx.service

NodeBB Kurulumu

Bir belge kök dizini oluşturun.

sudo mkdir -p /var/www/nodebb

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

sudo chown -R johndoe:johndoe /var/www/nodebb

Belge kök klasörüne gidin.

cd /var/www/nodebb

NodeBB'nin en son sürümünü belge kök klasörüne kopyalayın.

git clone -b v1.10.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 forumunuza web tarayıcınızdan erişebileceksiniz.

NodeBB'u Sistem Hizmeti Olarak Çalıştırma

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

Yeni bir ayrıcalıksız nodebbkullanıcı oluşturun.

sudo adduser nodebb

/var/www/nodebbDizinin sahipliğini nodebbkullanıcı olarak değiştirin.

sudo chown -R nodebb:nodebb /var/www/nodebb

Oluşturmak nodebb.servicesystemd birim yapılandırma dosyası. Bu birim dosyası, NodeBB deamonunun başlatılmasını yönetir. sudo vim /etc/systemd/system/nodebb.serviceDosyayı aşağıdaki içerikle çalıştırın ve doldurun:

[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

NOT: Seçtiğiniz adlara göre kullanıcı adı ve dizin yollarını ayarlayın.

nodebb.serviceYeniden başlatma sırasında etkinleştirin ve hemen başlayın nodebb.service.

sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service

nodebb.serviceDurumu kontrol edin .

sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service

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



Leave a Comment

CentOS 7de Tavşan Kümesini Kümeleme

CentOS 7de Tavşan Kümesini Kümeleme

RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir

Debianda NFS Paylaşımı Ayarla

Debianda NFS Paylaşımı Ayarla

NFS, bilgisayarların bilgisayar ağı üzerindeki dosyalara erişmesine izin veren ağ tabanlı bir dosya sistemidir. Bu kılavuz, klasörleri NF üzerinden nasıl açığa çıkarabileceğinizi açıklar

GitBucket Ubuntu 16.04 Kurulumu

GitBucket Ubuntu 16.04 Kurulumu

Bu kılavuz, Ubuntu 16.04 çalıştıran bir Vultr örneği için GitBucketin temel kurulumunu ve kurulumunu kapsar ve komutları şu şekilde yürüttüğünüzü varsayar:

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Directus 6.4 CMS, geliştirici sağlayan güçlü ve esnek, ücretsiz ve açık kaynaklı Başsız İçerik Yönetim Sistemidir (CMS)

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Mattermost, Slack SAAS mesajlaşma servisine açık kaynaklı, kendi kendine barındırılan bir alternatiftir. Başka bir deyişle, Mattermost ile,

Linuxta TeamTalk Sunucusu Kurma

Linuxta TeamTalk Sunucusu Kurma

TeamTalk, kullanıcıların yüksek kaliteli sesli / görüntülü konuşmalara, metin sohbetine, dosya aktarımına ve ekranları paylaşmasına olanak tanıyan bir konferans sistemidir. Ben

Pagekit CMSyi CentOS 7ye Yükleme

Pagekit CMSyi CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Vultr, yeni bir örnek oluşturduktan sonra SSH anahtarlarını önceden yüklemenizi sağlayan bir özellik sağlar. Bu, sunucu kök kullanıcısına erişmenizi sağlar, ancak

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Farklı Bir Sistem mi Kullanıyorsunuz? Diaspora gizliliğe duyarlı, açık kaynaklı bir sosyal ağdır. Bu derste, bir Diaspora posının nasıl kurulacağını ve yapılandırılacağını öğreneceksiniz

Debian 9 Üzerinde Yakıt CMS Kurulumu

Debian 9 Üzerinde Yakıt CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Fuel CMS, CodeIgniter tabanlı bir içerik yönetim sistemidir. Kaynak kodu GitHubda barındırılmaktadır. Bu kılavuz size

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların önüne # ve bir

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Snipe-IT, BT varlık yönetimi için ücretsiz ve açık kaynaklı bir web uygulamasıdır. Laravel 5.2 çerçevesi ve kullanımı üzerine yazılmıştır.

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Ranger, VI anahtar bağlamaları olan komut satırı tabanlı bir dosya yöneticisidir. Dizin hiyerarşisi manzaralı minimalist ve hoş bir curses arayüzü sağlar

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Farklı Bir Sistem mi Kullanıyorsunuz? Brotli, GZIPden daha iyi bir sıkıştırma oranına sahip yeni bir sıkıştırma yöntemidir. Kaynak kodu bu Githuda herkese açık olarak barındırılıyor

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Omeka Classic 2.4 CMS, digita paylaşımı için ücretsiz ve açık kaynaklı bir dijital yayıncılık platformu ve İçerik Yönetim Sistemidir (CMS)

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların başına # işareti gelir. th

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

SSH üzerinden kök girişine izin vermek, teknoloji endüstrisinde genellikle zayıf bir güvenlik uygulaması olarak kabul edilir. Bunun yerine, hassas yönetim gerçekleştirebilirsiniz

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? RabbitMQ, Erlang programlama dilinde yazılmış, yaygın olarak kullanılan açık kaynaklı bir mesaj aracısıdır. Mesaj odaklı bir ara katman yazılımı olarak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

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?