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

Debian 12에서 Nginx 프록시로 NodeBB 설치하는 방법

NodeBB는 JavaScript와 Node.js로 작성된 오픈 소스 포럼 소프트웨어입니다. 기본 데이터베이스로 MongoDB를 사용합니다. NodeBB는 웹 소켓을 통한 실시간 알림, 소셜 미디어 통합 및 전체 REST API와 같은 여러 기능을 제공합니다.

이 가이드는 MongoDB를 데이터베이스로 사용하고 Nginx를 리버스 프록시로 사용하는 Debian 12 서버에 NodeBB를 설치하는 방법을 보여줍니다.

전제 조건

시작하기 전에 다음 사항을 확인하십시오:

  • Debian 12 서버.
  • sudo 권한이 있는 비루트 사용자.
  • 서버 IP 주소를 가리키는 도메인 이름.

의존성 설치

프로세스를 시작하려면 NodeBB의 의존성을 설치해야 합니다. 여기에는 Debian 저장소에서 Node.js, NPM(노드 패키지 관리자) 및 Nginx 웹 서버가 포함됩니다. MongoDB는 공식 MongoDB 저장소를 통해 설치합니다.

먼저, Debian 시스템에 gnupg 및 curl 패키지를 설치하기 위해 다음 명령을 실행합니다.

sudo apt install gnupg curl -y

다음 명령을 사용하여 MongoDB GPG 키와 저장소를 추가합니다:

curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \  
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \  
--dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

이제 Debian 패키지 인덱스를 업데이트하고 MongoDB, Node.js, NPM, Nginx 및 Git을 설치합니다. 설치를 확인하려면 Y를 입력하십시오.

sudo apt update  
sudo apt install mongodb-org nodejs npm git nginx

install dependencies

설치가 완료되면 다음 명령으로 systemd 관리자를 다시 로드합니다:

sudo systemctl daemon-reload

이제 아래 명령을 실행하여 MongoDB 서비스 상태를 시작, 활성화 및 확인합니다.

sudo systemctl enable --now mongod  
sudo systemctl status mongod

다음 출력은 MongoDB가 실행 중임을 확인합니다.

check mongodb

다음으로, 아래 명령으로 Nginx 서비스 상태를 확인합니다. 시스템에서 Nginx가 활성화되고 실행 중임을 확인할 수 있어야 합니다.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

check nginx

마지막으로, 다음 명령으로 Node.js 및 NPM 버전을 확인합니다:

sudo node -v  
sudo npm -v

아래에서 Node.js 18 및 NPM 9가 설치된 것을 확인할 수 있습니다.

check node.js and npm

MongoDB 서버 설정

이 섹션에서는 MongoDB 인증을 활성화하고 MongoDB에 대한 새로운 관리자 사용자를 생성한 다음 NodeBB 설치를 위한 새로운 데이터베이스와 사용자를 생성합니다.

아래 명령으로 MongoDB 서버에 로그인합니다.

mongosh

다음 쿼리를 실행하여 ‘admin’ 데이터베이스로 전환하고 MongoDB에 대한 새로운 관리자 사용자 ‘admin‘을 생성합니다. 비밀번호 ‘MongoDBAdminPass‘를 새로운 비밀번호로 변경해야 합니다.

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

다음으로, 비밀번호 ‘NodeBBPassword‘로 새로운 데이터베이스와 사용자 ‘nodebb‘를 생성합니다. 이 데이터베이스와 사용자는 NodeBB 설치에 사용됩니다.

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

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

setup mongodb admin and create new database and user

다음으로, nano 편집기로 MongoDB 구성 ‘/etc/mongod.conf‘를 엽니다.

sudo nano /etc/mongod.conf

다음 구성을 추가하여 MongoDB 인증을 활성화합니다.

security:  
authorization: enabled

작업이 완료되면 파일을 저장하고 닫습니다.

이제 아래 명령을 실행하여 MongoDB 서비스를 재시작하고 새로운 변경 사항을 적용합니다. 명령이 실행된 후 MongoDB 인증이 활성화됩니다.

sudo systemctl restart mongod

MongoDB 구성이 성공적인지 확인하기 위해 사용자 ‘nodebb‘로 데이터베이스 ‘nodebb‘에 로그인합니다. 요청 시 비밀번호를 입력합니다.

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

로그인 후 아래 쿼리를 실행하여 연결을 확인하고 MongoDB에서 로그아웃합니다.

db.runCommand( { connectionStatus: 1, showPrivileges: false } )  
quit()

다음 출력에서 ‘ nodebb ‘로 데이터베이스 ‘ nodebb ‘에 인증된 것을 확인할 수 있습니다.

check mongodb user connection

NodeBB 설치

MongoDB 구성이 완료되면 NodeBB를 다운로드하고 설치합니다. NodeBB를 위한 전용 사용자를 생성하고 NodeBB 의존성을 다운로드 및 설치한 다음 NodeBB 설치를 위한 서비스 파일을 설정합니다.

다음 명령을 사용하여 기본 홈 디렉토리 ‘/opt/nodebb‘를 가진 새로운 시스템 사용자 ‘nodebb‘를 추가합니다.

sudo adduser --system --no-create-home --home=/opt/nodebb --group nodebb

이제 git을 사용하여 ‘/opt/nodebb‘ 디렉토리에 NodeBB 소스 v3를 다운로드하고 ‘/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 비밀은 기본값으로 두고 ENTER를 누릅니다.
  • 익명 플러그인 사용을 비활성화하려면 ‘no’를 입력합니다.
  • 데이터베이스로 MongoDB를 선택합니다.
  • MongoDB 데이터베이스에 URL 문자열을 입력합니다: mongodb://nodebb: [email protected]:27017/nodebb.
  • NodeBB의 관리자 사용자 및 이메일 주소를 입력합니다.
  • 비밀번호를 입력하고 반복합니다.

프로세스가 완료되면 ‘ NodeBB Setup Completed ‘라는 출력을 볼 수 있습니다. NodeBB를 실행하는 명령도 확인할 수 있습니다.

setup complete

다음으로, 아래 명령을 실행하여 NodeBB를 시작하거나 중지합니다. 수동으로 NodeBB를 시작하거나 중지해야 할 때 사용할 수 있습니다.

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

start and stop nodebb

NodeBB 관리를 쉽게 하기 위해 NodeBB에 대한 새로운 systemd 서비스 파일을 생성합니다. 이를 통해 NodeBB 설치가 백그라운드에서 실행되며 systemctl 명령으로 관리할 수 있습니다.

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

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

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

[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=/usr/bin/env node loader.js --no-silent --no-daemon  
Restart=always  
  
[Install]  
WantedBy=multi-user.target

파일을 저장하고 닫습니다.

이제 아래 명령을 실행하여 systemd 관리자를 다시 로드하고 새로운 NodeBB 서비스 파일을 적용합니다.

sudo systemctl daemon-reload

그 후, 다음 systemctl 명령으로 ‘ nodebb ‘ 서비스를 시작하고 활성화합니다.

sudo systemctl start nodebb  
sudo systemctl enable nodebb

서비스가 실행 중인지 확인하기 위해 다음 명령으로 ‘ nodebb ‘ 서비스를 확인합니다.

sudo systemctl status nodebb

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

setup nodebb systemd

Nginx를 리버스 프록시로 설정하기

이 시점에서 NodeBB는 포트 ‘4567’에서 백그라운드에서 실행되고 있습니다. 이제 NodeBB 포럼의 리버스 프록시로 사용될 새로운 Nginx 서버 블록을 생성할 것입니다. 도메인 이름이 서버 IP 주소를 가리키고 있는지 확인하십시오.

nano 편집기로 새로운 Nginx 서버 블록 구성 ‘/etc/nginx/sites-available/nodebb‘를 생성합니다.

sudo nano /etc/nginx/sites-available/nodebb

다음 구성을 추가하여 Nginx를 NodeBB의 리버스 프록시로 설정합니다. 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";  
 }  
}

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

이제 ‘nodebb’ 서버 블록 파일을 활성화하고 다음 명령으로 Nginx 구문을 테스트합니다:

sudo ln -s /etc/nginx/sites-available/nodebb /etc/nginx/sites-enabled/  
sudo nginx -t

올바른 Nginx 구문이 있는 경우 ‘syntax is ok - test is successful’라는 출력을 볼 수 있습니다.

setup nginx

마지막으로, 아래 명령을 실행하여 Nginx 서비스를 재시작하고 변경 사항을 적용합니다.

sudo systemctl restart nginx

HTTPS로 NodeBB 보안 설정

이 가이드에서는 Certbot과 Letsencrypt를 통해 NodeBB를 HTTPS로 보안 설정합니다. 로컬 도메인을 사용하는 경우 이 단계를 건너뛸 수 있으며, 자체 서명된 인증서를 생성할 수도 있습니다.

다음 apt 명령으로 Certbot 및 Certbot Nginx 플러그인을 설치합니다. 설치를 진행하려면 Y를 입력합니다.

sudo apt install certbot python3-certbot-nginx

이제 아래 certbot 명령을 실행하여 NodeBB 도메인 이름에 대한 SSL 인증서를 생성합니다. 이메일 주소와 도메인 이름을 자신의 정보로 변경해야 합니다.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d forum.hwdomain.i

프로세스가 완료되면 NodeBB 설치가 자동으로 HTTPS로 보안 설정됩니다. SSL/TLS 인증서는 ‘/etc/letsencrypt/live/domain.com‘ 디렉토리에서 사용할 수 있습니다.

NodeBB 접근하기

웹 브라우저를 사용하여 https://forum.howtoforge.local/를 방문하면 다음과 같은 NodeBB의 기본 인덱스 페이지를 볼 수 있습니다:

homepage

홈 페이지에서 로그인 메뉴를 클릭하면 NodeBB 로그인 페이지가 표시됩니다. 관리자 사용자와 비밀번호를 입력한 후 로그인 버튼을 클릭합니다.

login page

성공적으로 로그인하면 다음 사용자 대시보드를 볼 수 있습니다.

user dashboard

관리 메뉴를 클릭하여 다음과 같은 NodeBB 관리 대시보드에 접근합니다:

admin dashboard

결론

축하합니다! 이제 Debian 12 서버에 NodeBB를 설치했습니다. MongoDB 데이터베이스와 Nginx 리버스 프록시로 NodeBB가 실행되고 있습니다. 또한 Certbot과 Letsencrypt를 통해 NodeBB를 HTTPS로 보안 설정했습니다.

Share: X/Twitter LinkedIn

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

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