Wiki.js
A modern and powerful wiki app built on Node.js
스타트업을 위한 셀프 호스팅 Wiki 설정 방법
Confluence, Notion과 같은 상용 위키 도구는 기능이 풍부하지만, 사용자 수가 증가할수록 비용이 급증함. 대부분의 상용 위키는 사용자당 월 약 $5의 요금을 부과하며, 큰 팀에서는 비용이 크게 증가함. 셀프 호스팅 솔루션의 경우, 직원 수에 관계없이 비용이 고정되어 비용 절감 효과가 있음. 3년 이상의 셀프 호스팅 위키 운영 경험을 통해 Wiki.js를 추천함
Wiki.js를 선택해야 하는 이유:
- Wiki.js는 Docker Compose를 사용해 간단하게 설치할 수 있으며, 기본 설정은 4GB RAM, 2 vCPU로도 안정적으로 작동함
- 검색 기능을 강화하고 싶다면 Elasticsearch를 추가할 수 있으며, 이 경우 최소 8GB RAM, 2 vCPU 필요
- 실제 운영 환경에서는 1,000개 이상의 페이지와 400명 이상의 사용자가 있어도 안정적으로 운영 가능함
비용 비교:
- AWS EC2에서 Wiki.js를 운영할 경우 예상 비용:
- t4g.medium 인스턴스: 2 vCPU, 4GB RAM, 월 $16 (예약 시 $10)
- t4g.large 인스턴스: 2 vCPU, 8GB RAM, 월 $33 (예약 시 $21)
프로덕션 환경에서 안정적인 운영을 위해 다음의 설정을 권장:
- wiki.yourcompany.com과 같은 커스텀 도메인 설정
- DNS 설정 및 로드 밸런서를 통해 트래픽 분산
- Google SSO 설정 (참고 링크)
- 회사 도메인으로 자체 등록 제한 (예: yourcompany.com)
- EC2 인스턴스의 시간별 AMI 백업 설정
Dockerfile
services:
db:
image: postgres:16.4
expose:
- 5432
ports:
- 5432:5432
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: pass # Change this to a strong password
POSTGRES_USER: root
wiki:
image: requarks/wiki:2.5
depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: root
DB_PASS: pass # Change this to a strong password
DB_NAME: wiki
restart: unless-stopped
ports:
- "80:3000"
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.23
container_name: elasticsearch
restart: unless-stopped
ports:
- 127.0.0.1:9200:9200
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- xpack.security.http.ssl.enabled=false
- xpack.license.self_generated.type=basic
volumes:
db-data: