• NodeBB로 게시판 만들기

    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 인증서 갱신도 자동으로 처리됩니다.