NodeBB 설치 · 6 min read · Sep 09, 2025

AlmaLinux 9에서 MongoDB 및 Nginx 프록시와 함께 NodeBB 설치하는 방법

NodeBB는 온라인 커뮤니티를 위한 현대적이고 반응형 솔루션을 제공하는 오픈 소스 Node.js 기반 포럼 소프트웨어입니다. Ubuntu Linux에서 실행되는 NodeBB는 운영 체제의 강력함과 유연성을 활용하여 높은 성능과 확장성을 제공합니다. MongoDB와 Redis의 조합을 데이터베이스 관리에 활용하여 대량의 사용자 생성 콘텐츠를 효율적으로 처리할 수 있습니다.

NodeBB는 실시간 알림, 다양한 소셜 미디어 플랫폼과의 원활한 통합, 그리고 관리자가 특정 요구에 맞게 포럼을 사용자화할 수 있도록 하는 광범위한 플러그인 생태계로 잘 알려져 있습니다. 또한 모바일 우선 디자인은 모든 장치에서 일관되고 매력적인 사용자 경험을 보장합니다. Ubuntu의 안정성과 보안 기능은 NodeBB를 보완하여 동적인 온라인 커뮤니티를 호스팅하고 관리하는 데 이상적인 선택이 됩니다.

이 가이드는 Alma Linux 9 서버에 NodeBB를 설치하기 위한 단계별 지침을 제공합니다. MongoDB를 데이터베이스로 사용하고, Nginx를 리버스 프록시로 사용한 후, Certbot과 Letsencrypt를 통해 NodeBB를 HTTPS로 보호합니다.

전제 조건

시작하기 전에 다음 사항을 확인하세요:

  • Alma Linux 9 서버
  • 관리자 권한이 있는 비루트 사용자
  • 서버 IP 주소를 가리키는 도메인 이름
  • 상태가 허용적이고 활성화된 SELinux

종속성 설치

NodeBB는 Node.js 기반의 오픈 소스 포럼 소프트웨어입니다. NodeBB를 설치하려면 다음 패키지가 설치되어 있어야 합니다:

  • “개발 도구”, Git 및 ImageMagick과 같은 시스템 도구
  • Node.js 18 이상 및 NPM (Node 패키지 관리자)
  • MongoDB NoSQL 데이터베이스 서버
  • 리버스 프록시로 사용할 Nginx 웹 서버

이 섹션에서는 Alma Linux 9 서버에 이러한 종속성을 설치합니다.

먼저, 아래 명령어를 실행하여 Alma Linux CRB (CodeReadyBuild) 리포지토리를 활성화하고 EPEL 리포지토리를 설치합니다.

sudo crb enable  
sudo dnf install epel-release -y

그런 다음 ‘ nano ‘ 편집기로 새로운 리포지토리 파일 ‘ /etc/yum.repos.d/mongodb-org-7.0.repo ‘를 생성합니다.

sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo

파일에 다음 구성을 입력합니다:

[mongodb-org-7.0]  
name=MongoDB Repository  
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/  
gpgcheck=1  
enabled=1  
gpgkey=https://pgp.mongodb.com/server-7.0.asc

작업이 끝나면 파일을 저장하고 편집기를 종료합니다.

이제 아래 명령어를 실행하여 AlmaLinux의 Node.js 18 리포지토리를 활성화합니다.

sudo dnf module enable nodejs:18 -y

install deps

다음으로, 다음 ‘ dnf ‘ 명령어를 실행하여 ‘ 개발 도구 ‘, MongoDB 서버, Node.js, NPM, Git 및 ImageMagick을 설치합니다.

sudo dnf group install "Development Tools" -y  
sudo dnf install nodejs npm git ImageMagick mongodb-org -y

installing packages

설치가 완료되면 다음 명령어로 ‘ mongod ‘ 서비스를 시작하고 활성화합니다.

sudo systemctl enable --now mongod  
sudo systemctl status mongod

아래에서 MongoDB 서버가 실행 중이고 활성화된 것을 확인할 수 있습니다.

enable mongodb

마지막으로 아래 명령어로 Node.js 버전을 확인합니다. Alma Linux 서버에 Node.js 18이 설치되어 있는 것을 확인할 수 있습니다.

node --version  
npm --version

NodeBB를 위한 MongoDB 서버 및 데이터베이스 설정

종속성이 설치되었으므로 MongoDB 서버의 비밀번호 인증을 활성화하고 MongoDB 관리자 비밀번호를 설정하여 MongoDB 서버를 보호합니다. 그 후, NodeBB 설치를 위한 새로운 MongoDB 데이터베이스와 사용자를 생성합니다.

아래 ‘ mongosh ‘ 명령어로 MongoDB 서버에 로그인합니다.

mongosh

login mongodb

로그인한 후, ‘ admin ‘ 데이터베이스로 전환하고 아래 쿼리를 실행하여 MongoDB의 관리자 비밀번호를 설정합니다. ‘ MongoDBAdminPass ‘를 자신의 비밀번호 조합으로 변경하세요.

use admin  
db.createUser( { user: "admin", pwd: "MongoDBAdminPass", roles: [ { role: "root", db: "admin" } ] } )

이제 아래 쿼리를 실행하여 새로운 데이터베이스와 사용자 ‘ nodebb ‘를 비밀번호 ‘NodeBBPassword’와 함께 생성합니다. 필요한 경우 다음 데이터베이스 세부정보를 조정할 수 있습니다.

use nodebb  
db.createUser( { user: "nodebb", pwd: "NodeBBPassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

quit() ‘를 입력하여 MongoDB 서버에서 로그아웃합니다.

create admin user and setup database

MongoDB의 관리자 비밀번호를 구성한 후, MongoDB 인증을 활성화합시다.

nano ‘ 편집기로 기본 MongoDB 구성 파일 ‘ /etc/mongod.conf ‘를 엽니다.

sudo nano /etc/mongod.conf

MongoDB 인증을 활성화하려면 ‘ security ‘ 줄의 주석을 제거하고 ‘ authorization: enabled ‘를 다음과 같이 추가합니다:

security:  
authorization: enabled

작업이 끝나면 파일을 저장하고 종료합니다.

이제 아래 ‘ systemctl ‘ 명령어를 실행하여 MongoDB 서버를 재시작하고 변경 사항을 적용합니다. 이제 MongoDB 인증이 활성화되어야 합니다.

sudo systemctl restart mongod

구성을 확인하려면 아래 ‘ mongosh ‘ 명령어를 실행하여 ‘ nodebb ‘ 사용자로 MongoDB에 로그인합니다. ‘ nodebb ‘ 사용자의 비밀번호를 입력합니다.

mongosh "mongodb://127.0.0.1:27017" --username nodebb --authenticationDatabase nodebb

NodeBB 설치

이제 MongoDB 서버를 구성했으므로 Alma Linux 서버에 NodeBB를 설치할 준비가 되었습니다.

아래 명령어로 새로운 시스템 사용자 및 그룹 ‘ nodebb ‘를 추가합니다.

sudo adduser -r -M -d /opt/nodebb -U nodebb

NodeBB 소스 코드를 ‘ /opt/nodebb ‘ 디렉토리에 다운로드하고 소유권을 ‘ nodebb ‘ 사용자로 변경합니다.

git clone -b v3.x https://github.com/NodeBB/NodeBB.git /opt/nodebb  
sudo chown -R nodebb:nodebb /opt/nodebb

/opt/nodebb ‘ 디렉토리로 이동하고 다음과 같이 NodeBB 설정 스크립트를 실행합니다:

cd /opt/nodebb  
sudo su -s /bin/bash -c "./nodebb setup" nodebb

여기서 몇 가지 NodeBB 구성에 대해 질문을 받게 됩니다:

  • NodeBB의 도메인 이름을 입력하세요. 예: https://forum.howtoforge.local.
  • NodeBB 비밀 구성에서 ENTER를 누릅니다. 기본값으로 두세요.
  • NodeBB에 대한 익명 액세스를 비활성화하려면 ‘no’를 입력하세요.
  • 데이터베이스로 MongoDB를 선택하세요.
  • MongoDB 데이터베이스 세부정보를 mongodb://nodebb:[email protected]:27017/nodebb 형식으로 입력하세요.
  • NodeBB의 새로운 관리자 사용자 및 이메일 주소를 입력하세요.
  • NodeBB 관리자 사용자의 비밀번호를 입력하고 반복하세요.

과정이 완료되면 다음과 같은 출력이 표시됩니다:

login to mongodb

이제 다음과 같이 ‘ nodebb ‘ 스크립트를 실행하여 NodeBB를 수동으로 시작하거나 중지할 수 있습니다:

sudo su -s /bin/bash -c "./nodebb start" nodebb  
sudo su -s /bin/bash -c "./nodebb stop" nodebb

nodebb start and stop

NodeBB를 systemd 서비스로 실행

NodeBB를 더 쉽게 관리하기 위해 ‘ systemctl ‘ 유틸리티를 사용하여 NodeBB 프로세스를 제어할 수 있습니다. 이를 위해 NodeBB를 실행하기 위한 새로운 systemd 서비스 파일을 생성해야 합니다.

nano ‘ 편집기로 새로운 systemd 서비스 파일 ‘ /etc/systemd/system/nodebb.service ‘를 생성합니다.

sudo nano /etc/systemd/system/nodebb.service

NodeBB를 systemd 서비스로 실행하기 위한 다음 구성을 입력합니다.

[Unit]  
Description=NodeBB  
Documentation=https://docs.nodebb.org  
After=system.slice multi-user.target mongod.service  
  
[Service]  
Type=simple  
User=nodebb  
  
StandardError=syslog  
SyslogIdentifier=nodebb  
  
Environment=NODE_ENV=production  
WorkingDirectory=/opt/nodebb  
ExecStart=/bin/env node loader.js --no-silent --no-daemon  
Restart=always  
  
[Install]  
WantedBy=multi-user.target

파일을 저장하고 편집기를 종료합니다.

아래 ‘ systemctl ‘ 명령어로 systemd 관리자를 다시 로드합니다.

sudo systemctl daemon-reload

마지막으로 ‘ nodebb ‘ 서비스를 시작하고 활성화한 후, 서비스가 실행 중인지 확인합니다:

sudo systemctl enable --now nodebb  
sudo systemctl status nodebb

아래에서 NodeBB가 systemd 서비스로 백그라운드에서 실행되고 있는 것을 확인할 수 있습니다.

setup nodebb systemd

Nginx를 리버스 프록시로 설정

이제 NodeBB가 서비스로 백그라운드에서 실행되고 있으므로 Nginx를 설치하고 NodeBB의 리버스 프록시로 사용할 새로운 서버 블록을 생성합니다.

먼저, 아래 ‘ dnf ‘ 명령어를 실행하여 Nginx 웹 서버를 설치합니다.

sudo dnf install nginx -y

install nginx

이제 ‘ nano ‘ 편집기로 새로운 Nginx 구성 ‘ /etc/nginx/conf.d/nodebb.conf ‘를 생성합니다.

sudo nano /etc/nginx/conf.d/nodebb.conf

다음 구성을 입력하고 ‘ server_name ‘ 매개변수를 자신의 도메인 이름으로 변경하세요.

server {  
listen 80;  
  
server_name forum.howtoforge.local;  
  
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 지원  
proxy_http_version 1.1;  
proxy_set_header Upgrade $http_upgrade;  
proxy_set_header Connection "upgrade";  
}  
}

작업이 끝나면 파일을 저장하고 편집기를 종료합니다.

다음으로, 아래 명령어를 실행하여 Nginx 구문을 확인합니다. 성공하면 ‘ syntax is ok - test is successful ‘라는 출력이 표시됩니다.

sudo nginx -t

setup vhost

마지막으로 아래 ‘ systemctl ‘ 명령어를 실행하여 Nginx 웹 서버를 시작하고 활성화하며 확인합니다.

sudo systemctl enable --now nginx  
sudo systemctl status nginx

아래에서 Nginx 웹 서버가 실행되고 있는 것을 확인할 수 있습니다.

check nginx

HTTPS로 NodeBB 보호하기

이 시점에서 NodeBB 설치가 준비되었습니다. 그러나 공개 도메인 이름을 사용하는 경우 NodeBB를 HTTPS로 보호해야 합니다. 이 섹션에서는 Certbot과 Letsencrypt를 사용하여 NodeBB에 HTTPS를 설정합니다.

다음 명령어로 Certbot과 Certbot Nginx 플러그인을 설치합니다:

sudo dnf install certbot python3-certbot-nginx -y

이제 아래 ‘ certbot ‘ 명령어를 실행하여 NodeBB 설치를 HTTPS로 보호합니다. 이 명령어에서 도메인 이름과 이메일 주소를 변경하세요.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d forum.howtoforge.local

과정이 완료되면 SSL/TLS 인증서가 ‘ /etc/letsencrypt/live/domain.com ‘ 디렉토리에 저장되며 NodeBB 설치가 HTTPS로 보호됩니다.

NodeBB 접근하기

웹 브라우저를 열고 NodeBB 도메인 이름인 https://forum.howtoforge.local에 방문하세요. 설치가 성공적이라면 다음 NodeBB 홈페이지를 볼 수 있습니다.

nodebb

결론

축하합니다! Alma Linux 9 서버에 NodeBB 설치를 완료했습니다. MongoDB 서버와 Nginx를 리버스 프록시로 사용하여 NodeBB 포럼이 실행되고 있습니다. 또한 Certbot과 Letsencrypt를 통해 NodeBB 설치를 HTTPS로 보호했습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.