부제: 지식도 백업이 되나요? 엔지니어의 '데이터 영속성' 확보 작전
들어가며
안녕하세요, 시스템 엔지니어이자 4남매 아빠 수누다입니다.
지난 13년간 엔지니어로 밥벌이를 하며 쌓아온 수만 줄의 명령어, 트러블슈팅 로그, 그리고 개인적인 공부 기록들... 이 소중한 자산들이 OneNote라는 클라우드 감옥(?)에 갇혀 있었습니다. 동기화는 느리고, 서식은 깨지고, 무엇보다 "이 데이터가 진짜 내 것인가?"라는 의문이 들었죠.
오늘은 이 지식들을 해방시켜 Wiki.js라는 오픈소스 위키에 담고, 동시에 11TB NAS로 실시간 복제되는 완벽한 파이프라인을 구축한 과정을 기록합니다.
1. 아키텍처 설계: 컴퓨팅과 스토리지의 분리
가장 중요한 설계 원칙은 단 하나입니다.
"위키 서버(컨테이너)가 폭발해도, 데이터(지식)는 살아남아야 한다."
이를 위해 Compute(연산)와 Storage(저장)를 철저히 분리했습니다.
- Compute: Wiki.js (LXC ID 104)
- 역할: 웹 서비스 구동, 검색 인덱싱, 사용자 UI 제공.
- Storage: File Server (LXC ID 100, 11TB)
- 역할: 위키에서 생성된 모든 문서를 물리적 파일(.md / .html)로 영구 보관.
2. 설치 과정 및 AppArmor 'Plan A' 트러블슈팅
LXC 컨테이너(ID 104)에 Docker를 올리고 Wiki.js와 PostgreSQL을 설치하는 과정에서, 또다시 권한 문제(Permission Denied)가 발생했습니다. 3일 차에 적용했던 해결책(unconfined)만으로는 부족했던 상황.
여기서 13년 차의 짬(?)에서 나온 'Plan A' 설정을 적용했습니다. Docker가 AppArmor를 인식하지 못하게 속이는 방식입니다.
[/etc/pve/lxc/104.conf 수정]
# 1. 기본 보안 프로필 해제
lxc.apparmor.profile: unconfined
# 2. Docker를 위한 마운트 속임수 (핵심!)
# 이 한 줄이 없으면 DB 컨테이너가 무한 재시작 됩니다.
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind,optional,create=file
이 설정을 적용하고 재부팅 하니, 거짓말처럼 Docker 컨테이너들이 정상적으로 올라오기 시작했습니다. (홈랩 하시는 분들, 이 코드는 꼭 메모해두세요. 정신 건강에 이롭습니다.)
3. 데이터 이중화의 꽃: SFTP 실시간 동기화
Wiki.js의 가장 강력한 기능인 Storage(보관소) 모듈을 이용해 100번 NAS와 연결했습니다.
[설정 값]
- Target: SFTP / SSH
- Host:
192.168.XXX.XXX(파일 서버 IP) - Path:
/mnt/nas/wiki-backup - Sync Direction: 양방향 (Bi-directional) 혹은 Push Only
이 설정이 완료되는 순간, 위키에서 [저장] 버튼을 누르면 0.5초 뒤에 NAS의 하드디스크에 실제 파일이 생성됩니다. 이제 위키 서버를 날려먹어도 텍스트 파일은 11TB 하드에 고스란히 남습니다.
4. 에디터 전략: Visual vs Markdown
OneNote 데이터를 옮기면서 알게 된 흥미로운 사실은, 에디터에 따라 백업 파일의 확장자가 달라진다는 점입니다.
① Visual Editor 사용 시 👉 .html 저장
- 용도: 기존 OneNote 복사/붙여넣기용.
- 장점: 서식, 표, 이미지 배치가 거의 완벽하게 유지됩니다. 마이그레이션 용도로 제격입니다.
② Markdown Editor 사용 시 👉 .md 저장
- 용도: 순수 기술 문서, 코딩 기록용.
- 장점: 깃허브(GitHub) 등 다른 플랫폼으로 언제든 이사가 가능한 '범용성'을 가집니다.
💡 나의 전략:
일단 Visual Editor로 빠르게 데이터를 옮기고(Migration), 중요한 기술 문서는 Markdown으로 리팩토링하여 데이터의 순도(Purity)를 높이는 방식을 택했습니다.
5. 에필로그: 진정한 데이터 소유권
이제 제 13년 엔지니어링 기록은 클라우드 회사의 서버가 아닌, 제 방 구석 11TB 하드디스크에 안전하게 안착했습니다.
- 파일 서버 (File Browser) ✅
- 사진 서버 (Immich) ✅
- 미디어 서버 (Jellyfin) ✅
- 지식 서버 (Wiki.js) ✅
4일간의 대장정을 통해 '디지털 자립'을 이뤄냈습니다. 이제 이 든든한 시스템 위에서 '일본어 정복'과 '주식 데이터 분석'이라는 새로운 데이터를 쌓아 올릴 예정입니다.
Next Step: 일본어 회화 공부를 위한 위키 템플릿 만들기! 🇯🇵