Ubuntu 22.04 + Docker + Nginx Proxy Manager + Let's Encrypt + Redis + NodeBB 설치 가이드
1. 개요
본 문서는 Ubuntu 22.04 서버에서 다음 서비스를 Docker Compose로 한 번에 구축하는 방법을 설명합니다.
구성 요소
- NodeBB (게시판)
- Redis (데이터 저장소)
- Nginx Proxy Manager (역방향 프록시)
- Let's Encrypt SSL 인증서 자동 발급
- Docker
- Docker Compose
최종 구성도
인터넷
│
▼
도메인(nodebb.example.com)
│
▼
Nginx Proxy Manager (80,443)
│
▼
NodeBB (4567)
│
▼
Redis (6379)
2. 서버 준비
Ubuntu 업데이트
sudo apt update
sudo apt upgrade -y
필수 패키지 설치
sudo apt install -y curl wget git nano
3. Docker 설치
curl -fsSL https://get.docker.com | sudo sh
설치 확인
docker --version
예상 출력
Docker version 28.x.x
4. Docker Compose 설치 확인
최근 Docker는 Compose Plugin이 포함되어 있습니다.
docker compose version
예상 출력
Docker Compose version v2.x.x
5. 프로젝트 폴더 생성
mkdir -p ~/nodebb
cd ~/nodebb
6. docker-compose.yml 작성
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
7. 컨테이너 실행
docker compose up -d
상태 확인
docker ps
정상 실행 예시
npm
redis
nodebb
8. 방화벽 설정
UFW 사용 시
sudo ufw allow 80/tcp
sudo ufw allow 81/tcp
sudo ufw allow 443/tcp
sudo ufw reload
확인
sudo ufw status
9. 도메인 설정
예제
nodebb.example.com
DNS 설정
| 타입 | 이름 | 값 |
|---|---|---|
| A | @ | 서버IP |
| A | nodebb | 서버IP |
예시
nodebb.example.com → 123.123.123.123
DNS 전파 확인
nslookup nodebb.example.com
10. Nginx Proxy Manager 접속
브라우저
http://서버IP:81
기본 로그인
Email:
admin@example.com
Password:
changeme
첫 로그인 시 비밀번호 변경
11. Proxy Host 생성
NPM 메뉴
Hosts
→ Proxy Hosts
→ Add Proxy Host
설정
Domain Names:
nodebb.example.com
Forward Hostname:
nodebb
Forward Port:
4567
체크
Block Common Exploits
Websocket Support
저장
12. SSL 인증서 발급
SSL 탭 이동
Request a new SSL Certificate
체크
Force SSL
HTTP/2 Support
HSTS Enabled
이메일 입력 후 저장
Nginx Proxy Manager가 Let's Encrypt 인증서를 자동 발급합니다.
13. NodeBB 초기 설정
브라우저 접속
https://nodebb.example.com
설치 화면이 나타납니다.
Redis 설정
Database Type : Redis
Host IP : redis
Port : 6379
Password :
관리자 계정 생성
Admin Username : admin
Admin Email : admin@example.com
Password : 원하는 비밀번호
설치 완료
14. 관리자 페이지 접속
https://nodebb.example.com/admin
관리자 계정으로 로그인
15. 한글 게시판 설정
관리자 메뉴
Settings
→ General
Language
한국어 (ko)
저장 후 재시작
docker restart nodebb
16. 이메일 설정 (선택)
회원가입 인증메일 사용 시
관리자 페이지
Settings
→ Email
SMTP 예제
smtp.gmail.com
Port 587
TLS 사용
17. 백업
Redis 데이터
./redis
NodeBB 데이터
./nodebb
백업
tar czvf nodebb_backup.tar.gz nodebb redis npm
복원
tar xzvf nodebb_backup.tar.gz
18. 업데이트
이미지 다운로드
docker compose pull
재시작
docker compose up -d
불필요 이미지 정리
docker image prune -a
19. 트러블슈팅
SSL 발급 실패
확인
nslookup nodebb.example.com
80번 포트 확인
sudo ss -ntlp | grep :80
NodeBB 접속 불가
로그 확인
docker logs nodebb
Redis 연결 실패
로그 확인
docker logs redis
컨테이너 확인
docker ps
20. 완료
최종 접속 주소
https://nodebb.example.com
운영 서비스
Nginx Proxy Manager
Redis
NodeBB
Let's Encrypt SSL
Docker Compose 한 파일만으로 관리가 가능하며, SSL 인증서 갱신도 자동으로 처리됩니다.