NodeBB 설치 · 7 min read · Oct 19, 2025
Ubuntu 20.04 LTS에서 Nginx 및 Let's Encrypt SSL로 NodeBB 포럼 설치하기

NodeBB는 MongoDB/Redis를 데이터베이스 플랫폼으로 사용하는 Node.js 기반의 현대적인 포럼 소프트웨어입니다. 즉각적인 상호작용과 실시간 알림을 위해 웹 소켓을 사용합니다.
이 튜토리얼에서는 Ubuntu 20.04 기반 서버에 NodeBB 포럼을 설치하는 방법을 배웁니다.
필수 조건
- sudo 권한이 있는 비루트 사용자로 설정된 Ubuntu 20.04 기반 서버.
- 최소 2GB RAM. 서버에 1GB RAM만 있는 경우 스왑 파티션을 활성화하는 것이 좋습니다.
- 모든 것이 업데이트되었는지 확인하십시오.
shell $ sudo apt update && sudo apt upgrade - 몇 가지 필수 패키지. 이 중 일부는 이미 서버에 있을 수 있습니다.
shell $ sudo apt install curl wget nano ca-certificates gnupg2 lsb-release
1단계 - 방화벽 구성하기
첫 번째 단계는 방화벽을 구성하는 것입니다. Ubuntu는 기본적으로 ufw(간단한 방화벽)를 제공합니다.
방화벽이 실행 중인지 확인하십시오.
$ sudo ufw status
다음과 같은 출력이 표시되어야 합니다.
Status: inactive
SSH 포트를 허용하여 방화벽을 활성화할 때 현재 연결이 끊어지지 않도록 합니다.
$ sudo ufw allow OpenSSH
MongoDB 서버를 위해 27017 포트를 허용하고 NodeBB 포럼을 실행하기 위해 4567 포트를 허용합니다. HTTP 및 HTTPS 포트도 허용합니다.
$ sudo ufw allow 27017
$ sudo ufw allow 4567
$ sudo ufw allow 80
$ sudo ufw allow 443
방화벽을 활성화합니다.
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
방화벽 상태를 다시 확인하십시오.
$ sudo ufw status
유사한 출력이 표시되어야 합니다.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
27017 ALLOW Anywhere
4567 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
27017 (v6) ALLOW Anywhere (v6)
4567 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
2단계 - Node.js 설치하기
여기에서는 LTS 버전의 Node.js를 설치합니다. Node.js를 설치하기 위해 다음 명령어를 실행하십시오.
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt install nodejs
Node가 제대로 설치되었는지 확인하십시오.
$ node --version
유사한 출력이 표시되어야 합니다.
v12.18.3
npm도 확인하십시오.
$ npm --version
6.14.6
3단계 - MongoDB 설치하기
MongoDB는 NodeBB의 기본 데이터베이스입니다. MongoDB 대신 Redis를 사용할 수도 있습니다. 이 튜토리얼에서는 두 데이터베이스를 모두 다룰 것입니다.
Ubuntu 20.04에 대한 MongoDB의 저장소는 아직 준비되지 않았으며 Ubuntu 자체는 매우 오래된 버전을 포함하고 있습니다. 우리의 목적을 위해, 우리는 18.04에 대한 MongoDB 저장소를 사용할 것입니다. 공식 지원이 제공되면 최신 저장소로 패키지 목록을 업데이트할 수 있습니다.
MongoDB의 공개 키를 가져옵니다.
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
MongoDB 저장소를 추가합니다.
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
로컬 패키지 데이터베이스를 업데이트합니다.
$ sudo apt update
MongoDB를 설치합니다.
$ sudo apt install mongodb-org
MongoDB 설치를 확인합니다.
$ mongod --version
db version v4.2.8
...
MongoDB 서비스를 시작합니다.
$ sudo systemctl start mongod
MongoDB 서비스를 활성화합니다.
$ sudo systemctl enable mongod
MongoDB 서비스 상태를 확인합니다.
$ sudo systemctl status mongod
4단계 - MongoDB 구성하기
Mongo 관리 작업은 MongoDB 셸을 통해 수행됩니다. MongoDB의 기본 설치는 포트 27017에서 수신 대기합니다.
MongoDB 셸에 접근합니다.
$ mongo
내장된 admin 데이터베이스로 전환합니다.
> use admin
관리 사용자 계정을 생성합니다. 이는 NodeBB 관리자 사용자와는 다릅니다.
> db.createUser( { user: "admin", pwd: "yourpassword", roles: [ { role: "root", db: "admin" } ] } )
플레이스홀더 “yourpassword”를 자신의 비밀번호로 변경하십시오.
NodeBB를 위한 새로운 데이터베이스를 추가합니다.
> use nodebb
다음으로, nodebb 데이터베이스를 관리할 nodebb 사용자를 생성합니다.
> db.createUser( { user: "nodebb", pwd: "yourpassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
readwrite 권한은 NodeBB가 nodebb 데이터베이스에서 데이터를 저장하고 검색할 수 있도록 허용합니다. clustermonitor 권한은 NodeBB가 데이터베이스 통계에 대한 읽기 전용 접근을 허용합니다. 이는 관리 패널을 통해 볼 수 있습니다.
Mongo 셸을 종료합니다.
> quit()
MongoDB 구성 파일을 편집하기 위해 엽니다.
$ sudo nano /etc/mongod.conf
파일 끝에 다음 줄을 추가합니다.
security:
authorization: enabled
MongoDB를 재시작하고 이전에 생성한 관리 사용자를 확인합니다.
$ sudo systemctl restart mongod
$ mongo -u admin -p yourpassword --authenticationDatabase=admin
모든 것이 올바르게 구성되었다면 Mongo 프롬프트가 표시되어야 합니다.
5단계 - Git 설치하기
NodeBB를 설치하기 전에 Git을 설치해야 합니다.
Git을 설치하기 위해 다음 명령어를 실행하십시오.
$ sudo apt install git
Git의 초기 구성을 수행하기 위해 다음 명령어를 실행하십시오.
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
6단계 - NodeBB 설치하기
NodeBB를 루트 사용자로 실행하는 것은 권장되지 않습니다.
비권한 사용자를 생성합니다.
$ sudo adduser nodebb
원하는 비밀번호를 설정하고 다른 옵션은 건너뜁니다.
NodeBB 포럼이 위치할 디렉토리를 생성합니다.
$ sudo mkdir /var/www/nodebb
폴더의 소유권을 새로 생성한 사용자에게 변경합니다.
$ sudo chown -R nodebb:nodebb /var/www/nodebb
새로 생성한 사용자로 로그인합니다.
$ su nodebb
NodeBB 설치 디렉토리로 전환합니다.
$ cd /var/www/nodebb
NodeBB를 설치하기 위해 먼저 GitHub 저장소를 클론해야 합니다.
NodeBB를 /var/www/nodebb 디렉토리에 클론합니다. 명령어 끝의 점은 현재 디렉토리를 나타냅니다.
$ git clone -b v1.14.2 https://github.com/NodeBB/NodeBB.git .
여기서는 튜토리얼 작성 시점에서 최신 안정 버전인 NodeBB의 v1.14.2를 클론했습니다. NodeBB의 최신 안정 브랜치는 NodeBB의 최신 릴리스 페이지에서 확인할 수 있습니다.
NodeBB는 명령줄 유틸리티와 함께 제공됩니다. NodeBB를 설치하기 위해 다음 명령어를 사용하십시오.
$ ./nodebb setup
기본값을 선택하려면 Enter를 누르십시오.
이 NodeBB에 접근하는 데 사용되는 URL의 값으로 포럼에 접근할 최종 URL을 선택하십시오. 서버 IP를 통해 포럼에 접근할 경우 해당 IP를 입력하거나 포럼의 전체 도메인을 입력하십시오. 여기서는 http://forum.example.com을 입력합니다.
기본값을 계속 선택하다가 MongoDB 사용자 이름을 묻는 프롬프트가 표시되면 nodebb를 입력하고 MongoDB 구성 시 해당 사용자 이름에 대해 선택한 비밀번호를 입력하십시오. 데이터베이스 nodebb가 선택되어야 합니다. 관리자 사용자 및 해당 세부 정보를 생성하라는 메시지도 표시됩니다.
설정이 완료되면 NodeBB를 시작하기 위해 다음 명령어를 실행하십시오.
$ ./nodebb start
이제 포럼이 실행 중입니다. http://를 통해 접근할 수 있어야 합니다.

NodeBB와의 연결이 끊어진 것 같습니다. 재연결을 시도하는 동안 기다려 주십시오.라는 오류 메시지가 표시될 수 있습니다. 이는 NodeBB의 기본 URL인 http://forum.example.com을 선택했기 때문이며 http://가 아닙니다. 그러나 설정 중에 IP 주소를 입력하면 더 이상 오류가 발생하지 않지만 포럼에 대한 도메인을 선택한 후 다시 구성해야 합니다.
NodeBB 사용자에서 로그아웃합니다.
$ exit
7단계 - Nginx 설치하기
Ubuntu 20.04는 기본적으로 최신 안정 버전의 Nginx를 포함하고 있습니다. 이를 설치하겠습니다.
$ sudo apt install nginx
정상적으로 설치되었는지 확인합니다.
$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
Nginx를 시작하고 활성화합니다.
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
웹 브라우저에서 서버의 IP 주소를 엽니다. 서버가 정상적으로 작동하고 있다는 것을 의미하는 다음 페이지가 표시되어야 합니다.

8단계 - Nginx 구성하기
사이트에 대한 구성 파일을 추가하기 위해 다음 명령어를 실행합니다.
$ sudo nano /etc/nginx/sites-available/nodebb.conf
편집기에 다음 코드를 붙여넣습니다.
server {
listen 80;
server_name forum.example.com;
access_log /var/log/nginx/forum.example.com.access.log;
error_log /var/log/nginx/forum.example.com.error.log;
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";
}
}
편집기를 종료하려면 Ctrl + X를 누르고 프롬프트가 표시되면 Y를 입력합니다.
구성이 완료되면 Nginx 구성이 올바른지 확인합니다.
$ sudo nginx -t
구성을 활성화하기 위해 Nginx 서비스를 다시 로드합니다.
$ sudo systemctl reload nginx
브라우저에서 http://forum.example.com을 방문하여 NodeBB 포럼을 엽니다.

9단계 - NodeBB를 시스템 서비스로 실행하기
NodeBB 서비스는 시스템 재부팅 후 실행되지 않습니다. 매번 NodeBB를 시작하지 않도록 시스템 서비스로 설치해야 합니다.
먼저 NodeBB 서비스를 중지합니다.
$ ./nodebb stop
다음 명령어를 실행하여 nodebb.service systemd 단위 구성 파일을 생성하고 편집합니다.
$ 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=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
여기서는 6단계에서 생성한 사용자 이름을 nodebb로 선택하고 NodeBB를 설치한 경로를 선택했습니다.
NodeBB 서비스를 활성화합니다.
$ sudo systemctl enable nodebb
NodeBB 서비스를 시작합니다.
$ sudo systemctl start nodebb
서비스 상태를 확인합니다.
$ sudo systemctl status nodebb
10단계 - Let’s Encrypt SSL 인증서 받기
HTTPS로 NodeBB 포럼을 보호하는 것은 사이트의 트래픽을 안전하게 보호하기 위한 필수 단계입니다. 이 튜토리얼에서는 Certbot 클라이언트를 사용하여 SSL을 설치합니다.
먼저 Certbot 도구를 설치합니다.
$ sudo apt install certbot python3-certbot-nginx
인증서를 생성합니다.
$ sudo certbot --nginx -d forum.example.com
이것이 시스템에서 Certbot을 처음 실행하는 경우 이메일 주소를 입력하고 서비스 약관에 동의하라는 메시지가 표시됩니다. EFF 재단과 데이터를 공유하는 것에 동의하는지 여부를 묻는 질문도 있으며, 이에 대해 ‘아니오’라고 대답할 수 있습니다. 그렇게 하면 Certbot이 Let’s Encrypt 서버와 통신하고 도메인을 확인하기 위한 챌린지를 실행합니다.
성공적으로 완료되면 HTTPS 리디렉션을 처리하는 방법을 묻는 질문이 표시됩니다.
Please choose whether HTTPS access is required or optional.
-------------------------------------------------------------------------------
1: Easy - Allow both HTTP and HTTPS access to these sites
2: Secure - Make all requests redirect to secure HTTPS access
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):Secure 선택지를 선택하고 Enter를 누릅니다. 이렇게 하면 http 도메인에 대한 모든 요청이 https 버전으로 올바르게 리디렉션됩니다. 그런 다음 인증서가 생성되고 Nginx 구성 파일이 SSL 설정으로 업데이트됩니다.
인증서가 준비되었으며 이제 https://forum.example.com으로 사이트를 열 수 있습니다.
11단계 - SSL 자동 갱신 확인하기
이것이 튜토리얼을 마치기 전 마지막 단계입니다.
갱신 프로세스를 확인하기 위해 갱신 프로세스의 드라이 런을 수행합니다.
$ sudo certbot renew --dry-run
오류가 없으면 설정이 완료된 것입니다. Certbot은 인증서를 자동으로 갱신합니다. 인증서 만료에 대한 경고 이메일이 발송됩니다.
결론
이 튜토리얼은 여기까지입니다. NodeBB 포럼 설정이 완료되었습니다. 질문이 있으시면 아래 댓글로 남겨주세요.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.