NodeBB 설치 · 6 min read · Oct 19, 2025

우분투 18.04 LTS에 NodeBB 포럼 설치하는 방법

NodeBB는 현대 웹을 위해 구축된 Node.js 기반 포럼 소프트웨어입니다. MongoDB 또는 Redis 데이터베이스를 기반으로 구축되었습니다. 즉각적인 상호작용과 실시간 알림을 위해 웹 소켓을 활용합니다. NodeBB는 소셜 네트워크 통합 및 스트리밍 토론과 같은 많은 현대적인 기능을 기본적으로 제공합니다. 추가 기능은 서드파티 플러그인을 통해 활성화됩니다. NodeBB는 Github에서 찾을 수 있는 오픈 소스 프로젝트입니다. 이 가이드에서는 Nginx를 리버스 프록시로 사용하고 MongoDB를 데이터베이스로 사용하며 acme.sh와 Let’s Encrypt를 HTTPS에 사용하여 우분투 18.04 LTS 운영 체제에서 NodeBB 설치 과정을 단계별로 안내합니다.

요구 사항

NodeBB를 설치하려면 다음 소프트웨어가 필요합니다:

  • Node.js 버전 6 이상
  • MongoDB 버전 2.6 이상 또는 Redis 버전 2.8.9 이상
  • Nginx 버전 1.3.13 이상
  • Git

참고: NodeBB의 종속성을 설치하려면 512메가바이트 이상의 시스템 메모리가 필요할 수 있습니다. 리눅스 시스템의 메모리가 부족한 경우 스왑 파티션을 활성화하는 것이 좋습니다.

전제 조건

  • 최소 1GB의 RAM을 가진 실행 중인 우분투 18.04 시스템.
  • A / AAAA 레코드가 설정된 도메인 이름.
  • sudo 권한이 있는 비루트 사용자.

초기 단계

우분투 버전을 확인하세요:

lsb_release -ds  
# Ubuntu 18.04.1 LTS

시간대를 설정하세요:

sudo dpkg-reconfigure tzdata

운영 체제 패키지(소프트웨어)를 업데이트하세요. 이는 운영 체제의 기본 소프트웨어 패키지에 대한 최신 업데이트 및 보안 수정을 보장하기 때문에 중요한 첫 단계입니다:

sudo apt update && sudo apt upgrade -y

우분투 운영 체제의 기본 관리를 위해 필요한 몇 가지 필수 패키지를 설치하세요:

sudo apt install -y curl wget vim git unzip socat bash-completion  

1단계: Node.js 및 npm 설치

NodeBB는 Node.js 위에 구축되어 있습니다. 우리는 이 글을 작성할 당시 NodeBB에 권장되는 버전인 8을 설치할 것입니다. 리눅스에서는 Node.js 설치 옵션이 몇 가지 있습니다: 리눅스 바이너리(x86/x64), 소스 코드 또는 패키지 관리자를 통한 설치. 우리는 패키지 관리 옵션을 사용할 것이며, 이는 Node.js 설치 및 업데이트를 쉽게 만들어 줍니다.

Nodesource 저장소에서 최신 장기 지원(LTS) 릴리스를 다운로드하고 설치하세요:

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

npm에서 네이티브 애드온을 컴파일하고 설치하려면 빌드 도구를 설치해야 할 수도 있습니다:

sudo apt install -y build-essential

참고: npm은 Node.js와 함께 배포됩니다. 즉, Node.js를 다운로드하면 시스템에 npm이 자동으로 설치됩니다.

Node.js 및 npm 버전을 확인하세요:

node -v && npm -v  
# v10.15.1  
# 6.4.1

npm은 Node.js와 별개의 프로젝트이며, 더 자주 업데이트되는 경향이 있습니다. 따라서 Node.js(따라서 npm)를 방금 다운로드했더라도 npm을 업데이트해야 할 가능성이 높습니다. 다행히도 npm은 스스로 업데이트하는 방법을 알고 있습니다! npm을 업데이트하려면 터미널에 다음을 입력하세요:

sudo npm install -g npm@latest

이 명령은 npm을 최신 안정 버전으로 업데이트합니다.

npm 버전을 다시 확인하세요:

npm -v  
# 6.7.0  

그리고 최신 버전 번호가 반환되어야 합니다.

2단계: MongoDB 설치 및 구성

NodeBB는 데이터를 저장할 데이터베이스가 필요하며, MongoDB와 Redis를 지원합니다. 이 튜토리얼에서는 데이터 저장 엔진으로 MongoDB를 선택했습니다. 따라서 다음 몇 단계에서 공식 MongoDB rpm 저장소에서 MongoDB 데이터베이스를 다운로드하고 설치할 것입니다:

안정적인 버전의 MongoDB 패키지를 설치하려면 다음 명령을 실행하세요:

sudo apt install -y mongodb

MongoDB 버전을 확인하세요:

mongo --version | head -n 1 && mongod --version | head -n 1  

MongoDB 서비스를 시작하고 활성화하세요 (재부팅 시 시작하도록 설정):

sudo systemctl start mongodb.service  
sudo systemctl enable mongodb.service

다음 명령을 실행하여 MongoDB 데이터베이스 서버 상태를 확인하세요:

sudo systemctl status mongodb.service  
# active (running)

다음으로 NodeBB를 위한 MongoDB 데이터베이스와 사용자를 생성합니다.

먼저 MongoDB 서버에 연결하세요.

mongo

내장된 admin 데이터베이스로 전환하세요.

> use admin

관리 사용자 생성:

> db.createUser( { user: "admin", pwd: "<안전한 비밀번호 입력>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

참고: 플레이스홀더 <안전한 비밀번호 입력>을 선택한 비밀번호로 교체하세요.

nodebb라는 새 데이터베이스를 추가하세요.

> use nodebb

데이터베이스가 생성되고 nodebb로 컨텍스트가 전환됩니다. 다음으로 적절한 권한을 가진 nodebb 사용자를 생성하세요.

> db.createUser( { user: "nodebb", pwd: "<안전한 비밀번호 입력>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

참고: 다시 한 번, 플레이스홀더 <안전한 비밀번호 입력>을 선택한 비밀번호로 교체하세요.

Mongo 셸을 종료하세요.

> quit()

MongoDB를 재시작하고 이전에 생성한 관리 사용자가 연결할 수 있는지 확인하세요.

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

모든 것이 잘 진행되었다면 MongoDB가 설치되고 NodeBB를 위한 준비가 완료되었습니다. 다음 단계에서는 웹 서버 설치 및 구성에 대해 다룰 것입니다.

3단계 - acme.sh 클라이언트 설치 및 Let’s Encrypt 인증서 받기 (선택 사항)

NodeBB 포럼을 HTTPS로 보호하는 것은 필수는 아니지만, 사이트 트래픽을 보호하는 좋은 방법입니다. Let’s Encrypt에서 TLS 인증서를 받기 위해 acme.sh 클라이언트를 사용할 것입니다. Acme.sh는 종속성이 없는 순수 유닉스 셸 소프트웨어로, Let’s Encrypt에서 TLS 인증서를 받는 데 사용됩니다.

acme.sh를 다운로드하고 설치하세요:

sudo su - root  
git clone https://github.com/Neilpang/acme.sh.git  
cd acme.sh   
./acme.sh --install --accountemail [email protected]  
source ~/.bashrc  
cd ~

acme.sh 버전을 확인하세요:

acme.sh --version  
# v2.8.0

도메인/호스트 이름에 대한 RSAECC/ECDSA 인증서를 받으세요:

# RSA 2048  
acme.sh --issue --standalone -d example.com --keylength 2048  
# ECDSA  
acme.sh --issue --standalone -d example.com --keylength ec-256

테스트를 위해 가짜 인증서를 원하시면 위 명령에 --staging 플래그를 추가할 수 있습니다.

위 명령을 실행한 후, 인증서와 키는 다음 위치에 저장됩니다:

  • RSA: /home/username/example.com 디렉토리.
  • ECC/ECDSA: /home/username/example.com_ecc 디렉토리.

발급된 인증서를 나열하려면 다음을 실행하세요:

acme.sh --list

인증서를 저장할 디렉토리를 생성하세요. /etc/letsencrypt 디렉토리를 사용할 것입니다.

mkdir -p /etc/letsecnrypt/example.com  
sudo mkdir -p /etc/letsencrypt/example.com_ecc

인증서를 /etc/letsencrypt 디렉토리에 설치/복사하세요.

# RSA  
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"  
# ECC/ECDSA  
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

모든 인증서는 60일마다 자동으로 갱신됩니다.

인증서를 받은 후, 루트 사용자에서 로그아웃하고 일반 sudo 사용자로 돌아가세요:

exit

4단계: Nginx 설치 및 구성

NodeBB는 많은 웹 서버와 잘 작동합니다. 이 튜토리얼에서는 Nginx를 선택했습니다.

다음 명령을 실행하여 Nginx 패키지를 설치하세요:

sudo apt install -y nginx

설치 후, 다음 명령을 실행하여 Nginx 버전을 확인할 수 있습니다:

ginx -v  

Nginx 서비스를 시작하고 활성화하세요 (재부팅 시 시작하도록 설정):

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

다음 명령을 실행하여 Nginx 웹 서버 상태를 확인하세요:

sudo systemctl status nginx.service  
# active (running)

NodeBB는 기본적으로 포트 4567에서 실행됩니다. http://example.com:4567를 입력하는 것을 피하기 위해, Nginx를 NodeBB 애플리케이션의 리버스 프록시로 구성할 것입니다. 포트 80 또는 443 (SSL을 사용하는 경우)에서의 모든 요청은 포트 4567로 전달됩니다.

sudo vim /etc/nginx/conf.d/nodebb.conf를 실행하고 Nginx를 HTTPS 리버스 프록시로 구성하세요.

server {  
  listen [::]:443 ssl http2;  
  listen 443 ssl http2;  
  listen [::]:80;  
  listen 80;  
  
  server_name example.com;  
  
  client_max_body_size 50M;  
  
  # RSA  
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;  
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;  
  # ECDSA  
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;  
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.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 지원  
    proxy_http_version 1.1;  
    proxy_set_header Upgrade $http_upgrade;  
    proxy_set_header Connection "upgrade";   
  }  
  
}

Nginx 구성을 확인하세요:

sudo nginx -t

마지막으로, 변경 사항이 적용되도록 Nginx를 다시 로드해야 합니다:

sudo systemctl reload nginx.service

5단계: NodeBB 설치 및 설정

NodeBB가 위치할 문서 루트 디렉토리를 생성하세요:

sudo mkdir -p /var/www/nodebb

문서 루트 디렉토리로 이동하세요:

cd /var/www/nodebb

/var/www/nodebb 디렉토리의 소유권을 your_user로 변경하세요.

sudo chown -R [your_user]:[your_user] /var/www/nodebb

참고: 위 명령에서 your_user를 이 튜토리얼의 전제 조건으로 생성한 비루트 사용자로 교체하세요.

문서 루트 폴더에 최신 NodeBB 리포지토리를 클론하세요:

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

setup 플래그로 앱을 실행하여 설정 스크립트를 시작하세요. 각 질문에 답하세요:

./nodebb setup

NodeBB 설정이 완료된 후, ./nodebb start를 실행하여 NodeBB 서버를 수동으로 시작하세요:

./nodebb start

이 명령을 실행한 후, 웹 브라우저에서 새 포럼에 접근할 수 있어야 합니다:

브라우저의 NodeBB

6단계: NodeBB를 시스템 서비스로 실행

./nodebb start로 시작하면 시스템이 재부팅될 때 NodeBB가 자동으로 시작되지 않습니다. 이를 피하기 위해 NodeBB를 시스템 서비스로 설정해야 합니다.

실행 중이라면 NodeBB를 중지하세요:

./nodebb stop

새로운 nodebb 사용자를 생성하세요:

sudo useradd nodebb

/var/www/nodebb 디렉토리의 소유권을 nodebb 사용자로 변경하세요:

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

nodebb.service 시스템d 유닛 구성 파일을 생성하세요. 이 유닛 파일은 NodeBB 데몬의 시작을 처리합니다. sudo vim /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

참고: 사용자 이름과 디렉토리 경로를 선택한 이름에 맞게 설정하세요.

재부팅 시 nodebb.service를 활성화하고 즉시 nodebb.service를 시작하세요:

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

nodebb.service 상태를 확인하세요:

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

축하합니다! 우분투 18.04 시스템에 NodeBB 토론 플랫폼을 성공적으로 설치하고 배포했습니다. 도메인에서 포럼에 접근하고 포럼과 상호작용할 수 있어야 합니다.

링크

Share: X/Twitter LinkedIn

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

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