<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[NodeBB로 게시판 만들기]]></title><description><![CDATA[<h1>Ubuntu 22.04 + Docker + Nginx Proxy Manager + Let's Encrypt + Redis + NodeBB 설치 가이드</h1>
<h2>1. 개요</h2>
<p dir="auto">본 문서는 Ubuntu 22.04 서버에서 다음 서비스를 Docker Compose로 한 번에 구축하는 방법을 설명합니다.</p>
<p dir="auto">구성 요소</p>
<ul>
<li>NodeBB (게시판)</li>
<li>Redis (데이터 저장소)</li>
<li>Nginx Proxy Manager (역방향 프록시)</li>
<li>Let's Encrypt SSL 인증서 자동 발급</li>
<li>Docker</li>
<li>Docker Compose</li>
</ul>
<p dir="auto">최종 구성도</p>
<pre><code>인터넷
    │
    ▼
도메인(nodebb.example.com)
    │
    ▼
Nginx Proxy Manager (80,443)
    │
    ▼
NodeBB (4567)
    │
    ▼
Redis (6379)
</code></pre>
<hr />
<h1>2. 서버 준비</h1>
<p dir="auto">Ubuntu 업데이트</p>
<pre><code class="language-bash">sudo apt update
sudo apt upgrade -y
</code></pre>
<p dir="auto">필수 패키지 설치</p>
<pre><code class="language-bash">sudo apt install -y curl wget git nano
</code></pre>
<hr />
<h1>3. Docker 설치</h1>
<pre><code class="language-bash">curl -fsSL https://get.docker.com | sudo sh
</code></pre>
<p dir="auto">설치 확인</p>
<pre><code class="language-bash">docker --version
</code></pre>
<p dir="auto">예상 출력</p>
<pre><code class="language-bash">Docker version 28.x.x
</code></pre>
<hr />
<h1>4. Docker Compose 설치 확인</h1>
<p dir="auto">최근 Docker는 Compose Plugin이 포함되어 있습니다.</p>
<pre><code class="language-bash">docker compose version
</code></pre>
<p dir="auto">예상 출력</p>
<pre><code class="language-bash">Docker Compose version v2.x.x
</code></pre>
<hr />
<h1>5. 프로젝트 폴더 생성</h1>
<pre><code class="language-bash">mkdir -p ~/nodebb
cd ~/nodebb
</code></pre>
<hr />
<h1>6. docker-compose.yml 작성</h1>
<pre><code class="language-yaml">version: "3.9"

services:

  npm:
    image: jc21/nginx-proxy-manager:latest
    container_name: npm

    restart: unless-stopped

    ports:
      - "80:80"
      - "81:81"
      - "443:443"

    volumes:
      - ./npm/data:/data
      - ./npm/letsencrypt:/etc/letsencrypt

  redis:
    image: redis:7-alpine
    container_name: redis

    restart: unless-stopped

    command: redis-server --appendonly yes

    volumes:
      - ./redis:/data

  nodebb:
    image: nodebb/docker:latest
    container_name: nodebb

    restart: unless-stopped

    depends_on:
      - redis

    ports:
      - "4567:4567"

    environment:
      - NODEBB_URL=https://nodebb.example.com
      - NODEBB_PORT=4567

    volumes:
      - ./nodebb:/usr/src/app

networks:
  default:
    name: nodebb-network
</code></pre>
<hr />
<h1>7. 컨테이너 실행</h1>
<pre><code class="language-bash">docker compose up -d
</code></pre>
<p dir="auto">상태 확인</p>
<pre><code class="language-bash">docker ps
</code></pre>
<p dir="auto">정상 실행 예시</p>
<pre><code class="language-bash">npm
redis
nodebb
</code></pre>
<hr />
<h1>8. 방화벽 설정</h1>
<p dir="auto">UFW 사용 시</p>
<pre><code class="language-bash">sudo ufw allow 80/tcp
sudo ufw allow 81/tcp
sudo ufw allow 443/tcp
sudo ufw reload
</code></pre>
<p dir="auto">확인</p>
<pre><code class="language-bash">sudo ufw status
</code></pre>
<hr />
<h1>9. 도메인 설정</h1>
<p dir="auto">예제</p>
<pre><code class="language-text">nodebb.example.com
</code></pre>
<p dir="auto">DNS 설정</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>타입</th>
<th>이름</th>
<th>값</th>
</tr>
</thead>
<tbody>
<tr>
<td>A</td>
<td>@</td>
<td>서버IP</td>
</tr>
<tr>
<td>A</td>
<td>nodebb</td>
<td>서버IP</td>
</tr>
</tbody>
</table>
<p dir="auto">예시</p>
<pre><code class="language-text">nodebb.example.com → 123.123.123.123
</code></pre>
<p dir="auto">DNS 전파 확인</p>
<pre><code class="language-bash">nslookup nodebb.example.com
</code></pre>
<hr />
<h1>10. Nginx Proxy Manager 접속</h1>
<p dir="auto">브라우저</p>
<pre><code class="language-text">http://서버IP:81
</code></pre>
<p dir="auto">기본 로그인</p>
<pre><code class="language-text">Email:
admin@example.com

Password:
changeme
</code></pre>
<p dir="auto">첫 로그인 시 비밀번호 변경</p>
<hr />
<h1>11. Proxy Host 생성</h1>
<p dir="auto">NPM 메뉴</p>
<pre><code class="language-text">Hosts
→ Proxy Hosts
→ Add Proxy Host
</code></pre>
<p dir="auto">설정</p>
<pre><code class="language-text">Domain Names:
nodebb.example.com

Forward Hostname:
nodebb

Forward Port:
4567
</code></pre>
<p dir="auto">체크</p>
<pre><code class="language-text">Block Common Exploits
Websocket Support
</code></pre>
<p dir="auto">저장</p>
<hr />
<h1>12. SSL 인증서 발급</h1>
<p dir="auto">SSL 탭 이동</p>
<pre><code class="language-text">Request a new SSL Certificate
</code></pre>
<p dir="auto">체크</p>
<pre><code class="language-text">Force SSL
HTTP/2 Support
HSTS Enabled
</code></pre>
<p dir="auto">이메일 입력 후 저장</p>
<p dir="auto">Nginx Proxy Manager가 Let's Encrypt 인증서를 자동 발급합니다.</p>
<hr />
<h1>13. NodeBB 초기 설정</h1>
<p dir="auto">브라우저 접속</p>
<pre><code class="language-text">https://nodebb.example.com
</code></pre>
<p dir="auto">설치 화면이 나타납니다.</p>
<hr />
<h2>Redis 설정</h2>
<pre><code class="language-text">Database Type : Redis
Host IP       : redis
Port          : 6379
Password      :
</code></pre>
<hr />
<h2>관리자 계정 생성</h2>
<pre><code class="language-text">Admin Username : admin
Admin Email    : admin@example.com
Password       : 원하는 비밀번호
</code></pre>
<p dir="auto">설치 완료</p>
<hr />
<h1>14. 관리자 페이지 접속</h1>
<pre><code class="language-text">https://nodebb.example.com/admin
</code></pre>
<p dir="auto">관리자 계정으로 로그인</p>
<hr />
<h1>15. 한글 게시판 설정</h1>
<p dir="auto">관리자 메뉴</p>
<pre><code class="language-text">Settings
→ General
</code></pre>
<p dir="auto">Language</p>
<pre><code class="language-text">한국어 (ko)
</code></pre>
<p dir="auto">저장 후 재시작</p>
<pre><code class="language-bash">docker restart nodebb
</code></pre>
<hr />
<h1>16. 이메일 설정 (선택)</h1>
<p dir="auto">회원가입 인증메일 사용 시</p>
<p dir="auto">관리자 페이지</p>
<pre><code class="language-text">Settings
→ Email
</code></pre>
<p dir="auto">SMTP 예제</p>
<pre><code class="language-text">smtp.gmail.com
Port 587
TLS 사용
</code></pre>
<hr />
<h1>17. 백업</h1>
<p dir="auto">Redis 데이터</p>
<pre><code class="language-bash">./redis
</code></pre>
<p dir="auto">NodeBB 데이터</p>
<pre><code class="language-bash">./nodebb
</code></pre>
<p dir="auto">백업</p>
<pre><code class="language-bash">tar czvf nodebb_backup.tar.gz nodebb redis npm
</code></pre>
<p dir="auto">복원</p>
<pre><code class="language-bash">tar xzvf nodebb_backup.tar.gz
</code></pre>
<hr />
<h1>18. 업데이트</h1>
<p dir="auto">이미지 다운로드</p>
<pre><code class="language-bash">docker compose pull
</code></pre>
<p dir="auto">재시작</p>
<pre><code class="language-bash">docker compose up -d
</code></pre>
<p dir="auto">불필요 이미지 정리</p>
<pre><code class="language-bash">docker image prune -a
</code></pre>
<hr />
<h1>19. 트러블슈팅</h1>
<h2>SSL 발급 실패</h2>
<p dir="auto">확인</p>
<pre><code class="language-bash">nslookup nodebb.example.com
</code></pre>
<p dir="auto">80번 포트 확인</p>
<pre><code class="language-bash">sudo ss -ntlp | grep :80
</code></pre>
<hr />
<h2>NodeBB 접속 불가</h2>
<p dir="auto">로그 확인</p>
<pre><code class="language-bash">docker logs nodebb
</code></pre>
<hr />
<h2>Redis 연결 실패</h2>
<p dir="auto">로그 확인</p>
<pre><code class="language-bash">docker logs redis
</code></pre>
<p dir="auto">컨테이너 확인</p>
<pre><code class="language-bash">docker ps
</code></pre>
<hr />
<h1>20. 완료</h1>
<p dir="auto">최종 접속 주소</p>
<pre><code class="language-text">https://nodebb.example.com
</code></pre>
<p dir="auto">운영 서비스</p>
<pre><code class="language-text">Nginx Proxy Manager
Redis
NodeBB
Let's Encrypt SSL
</code></pre>
<p dir="auto">Docker Compose 한 파일만으로 관리가 가능하며, SSL 인증서 갱신도 자동으로 처리됩니다.</p>
]]></description><link>http://bb.mirimonhub.com/topic/3/nodebb로-게시판-만들기</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 18:28:24 GMT</lastBuildDate><atom:link href="http://bb.mirimonhub.com/topic/3.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 May 2026 21:37:29 GMT</pubDate><ttl>60</ttl></channel></rss>