이 문서가 있는 곳. 설치 가이드·트러블슈팅 기록을 마크다운으로 정리한다.
http://192.168.0.240:3110| 후보 | RAM | 판단 |
|---|---|---|
| Wiki.js | ~500MB | 마크다운 우선, Git 동기화, 태그·전문검색 |
| BookStack | ~300MB | 가볍지만 Git 연동 없음 |
| Docmost | ~700MB | Notion 스타일. 8GB에는 부담 |
| MkDocs Material | ~50MB | 정적 생성. 웹에서 편집 불가 |
Git 저장소와 양방향 동기화되는 점이 결정적이었다.
웹에서 편집해도 .md 파일로 커밋되고, 파일을 밀어 넣어도 위키에 반영된다.
services:
db:
image: postgres:15-alpine
container_name: wikijs-db
restart: unless-stopped
environment:
POSTGRES_DB: wiki
POSTGRES_USER: wikijs
POSTGRES_PASSWORD: <영문숫자 20자>
volumes:
- wikijs_db:/var/lib/postgresql/data
wiki:
image: ghcr.io/requarks/wiki:2
container_name: wikijs
restart: unless-stopped
depends_on:
- db
ports:
- "3110:3000"
environment:
DB_TYPE: postgres
DB_HOST: db # ← IP 아님
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: <위와 동일한 값>
DB_NAME: wiki
volumes:
- wikijs_data:/wiki/data
volumes:
wikijs_db:
wikijs_data:
[MASTER] error: Database Initialization Error: password authentication failed for user "wikijs"
[wikijs-db] FATAL: password authentication failed for user "wikijs"
POSTGRES_PASSWORD 와 DB_PASS 가 달랐다. 기호가 들어간 비밀번호를
따옴표 없이 넣어 값이 잘린 것이 원인.
PostgreSQL은 첫 기동 때만 계정을 만들므로 스택만 고쳐서는 안 된다:
sudo docker rm -f wikijs wikijs-db
sudo docker volume ls -q | grep -i wikijs | xargs -r sudo docker volume rm
→ 재배포
교훈: DB 내부 비밀번호는 사람이 입력할 일이 없으니
기호 없이 영문+숫자 20자로. 길이만 충분하면 강도는 같고 이스케이프 사고가 사라진다.
첫 배포는 DB 초기화 때문에 1~2분 걸린다. 그 사이 포트는 열려 있지만
HTTP는 빈 응답(curl 이 000)이라 "안 된다"고 오해하기 쉽다.
sudo docker logs --tail 20 wikijs
# → HTTP Server on port: [ 3000 ] 이 나오면 완료
문서 작성: 우측 하단 + 새 페이지 → 경로(/docker/synology-acl)·제목·태그 입력.
기본 검색은 PostgreSQL 전문검색이라 한국어 형태소 분석은 되지 않는다.
단어 단위로는 찾지만 어미 변화는 잡지 못한다. 태그를 성실히 다는 것으로 보완한다.
관리 → 저장소(Storage) → Git 에서 저장소 URL과 자격증명을 설정하면
위키 내용이 .md 로 커밋된다. 위키가 안정적으로 도는 것을 확인한 뒤 붙일 것.
Watchtower 제외 목록에 wikijs 와 wikijs-db 를 모두 넣을 것.
PostgreSQL 메이저 버전이 자동으로 올라가면 데이터를 읽지 못한다.