komga docker synology 설치 완벽 가이드: 나만의 만화/소설 서버 구축
만화책, 소설책 파일들을 NAS에 쌓아두고 계시진 않으신가요? 파일 관리가 복잡하고, 모바일에서 볼 때마다 파일을 복사하거나 다운로드해야 하는 번거로움, 저도 너무 잘 알고 있거든요. 😥
이 글에서는 시놀로지(Synology) NAS 사용자분들이라면 누구나 쉽게 따라 할 수 있도록, Docker를 활용해 개인 도서관 서버 Komga(콤가)를 설치하고 설정하는 방법을 단계별로 안내해 드릴 거예요. 이 글을 끝까지 읽으시면, 언제 어디서든 스마트폰이나 태블릿으로 나만의 서재에 접속해 책을 스트리밍할 수 있게 됩니다! 😊
Komga란 무엇이고, 왜 Docker로 설치해야 할까요? 🤔
Komga는 만화(CBZ, CBR)와 소설(EPUB, PDF) 파일을 관리하고 웹 브라우저나 전용 앱(Komga, Tachiyomi 등)을 통해 스트리밍 방식으로 읽을 수 있게 해주는 개인 도서관 서버예요. Plex나 Jellyfin이 영상 파일을 다룬다면, Komga는 미디어 파일을 다룬다고 생각하시면 쉽습니다.
특히 시놀로지 NAS에 Docker로 설치하는 것을 추천드리는데요. Docker는 앱을 격리된 환경에서 실행할 수 있게 해줘서, NAS의 시스템 설정과 충돌 없이 깔끔하게 Komga를 설치하고 나중에 업데이트나 제거도 아주 간편하게 할 수 있거든요. 😉
Komga 설치를 위해서는 시놀로지 NAS의 패키지 센터에서 'Docker' 패키지가 설치되어 있어야 합니다. 최신 시놀로지 OS인 DSM 7.0 버전부터는 패키지 이름이 'Container Manager'로 바뀌었으니 참고하세요!
1단계: Komga 설치 전, 시놀로지 폴더 및 환경 설정 📊
본격적인 Docker 설치 전에, Komga가 사용할 폴더와 설정을 미리 준비해야 해요. 이게 가장 중요한 기초 작업이거든요.
NAS의 'File Station'에서 아래 두 가지 폴더를 꼭 만들어주세요. 폴더 위치는 Docker 패키지를 설치한 볼륨 내에 만드는 것이 일반적입니다.
필수 폴더 생성 목록
| 구분 | 설명 | 권장 경로 예시 | 역할 |
|---|---|---|---|
| 설정 파일 | Komga 서버의 데이터베이스, 설정 파일 저장 | /docker/komga/config |
서버 정보 영구 보존 (볼륨 매핑 필요) |
| 도서 파일 | 만화/소설 파일(CBZ, EPUB 등)이 저장된 위치 | /자료/comics 또는 /자료/books |
Komga가 라이브러리로 접근할 위치 |
Docker를 사용할 때는 폴더 권한 설정을 꼭 확인해야 합니다. 만든 폴더(특히 도서 파일 폴더)에 Docker 사용자(또는 Komga가 실행될 User ID)가 읽기/쓰기 권한을 가지고 있어야 파일에 접근할 수 있습니다. 권한이 없으면 Komga가 파일을 못 읽는 문제가 발생할 수 있어요!
2단계: Docker (Container Manager)에서 Komga 컨테이너 생성 🧮
이제 Komga 이미지를 다운로드하고 컨테이너를 실행할 차례입니다. 시놀로지 'Container Manager' 앱을 실행해 주세요.
이미지 다운로드 및 실행 공식
Docker Hub 이미지명: gotson/komga
다음 순서로 진행해 주세요:
1) 첫 번째 단계: '레지스트리' 탭에서 komga를 검색하여 gotson/komga 이미지를 다운로드합니다. (가장 최신 latest 태그 선택)
2) 두 번째 단계: '이미지' 탭에서 다운로드된 이미지를 선택 후 '실행' 버튼을 눌러 컨테이너 생성 마법사를 시작합니다.
→ **주의**: 마법사에서 '자동 재시작'을 활성화하여 NAS 재부팅 시에도 Komga가 자동으로 시작되게 설정하는 것이 좋습니다.
컨테이너 설정 중 가장 핵심인 포트 설정과 볼륨 설정을 다음 표를 참고하여 진행해 주세요:
포트 및 볼륨 설정 상세
| 항목 | 값 (시놀로지 NAS 경로) | 값 (컨테이너 내부 경로) | 설정 방식 |
|---|---|---|---|
| 설정 볼륨 | /docker/komga/config |
/config |
마운트 경로/볼륨 설정 |
| 도서 볼륨 | /자료/comics |
/data |
마운트 경로/볼륨 설정 |
| 로컬 포트 | 8080 (또는 비어있는 다른 포트) |
8080 |
포트 설정 (자동 선택 가능) |
환경 변수 설정 (선택 사항)
Komga 서버의 동작 환경을 설정할 수 있어요. 아래 값은 필수는 아니지만, 보안을 위해 권장되는 설정입니다.
- **PWA_ENABLED**:
true(웹 앱으로 설치 가능하게 함) - **KOMGA_CONFIG_FILE**:
/config/application.yml(고급 설정 시 필요)
**팁**: Docker 컨테이너 생성 시 '추가 설정'에서 환경 변수를 추가할 수 있습니다.
3단계: Komga 초기 접속 및 라이브러리 설정 👩💼👨💻
컨테이너 생성이 완료되고 실행(초록색 아이콘 확인)되었다면, 이제 웹 브라우저를 열어 Komga 서버에 접속해 볼 차례예요. NAS IP 주소와 설정한 포트 번호를 입력하면 됩니다.
NAS의 IP가
192.168.1.100이고 포트를 8080으로 설정했다면, 접속 주소는 http://192.168.1.100:8080 입니다.
최초 접속 시에는 **관리자 계정**을 생성하는 화면이 나타납니다. 이메일 주소와 강력한 비밀번호를 입력해서 서버를 관리할 마스터 계정을 만들어주세요. 이 계정이 있어야 라이브러리 추가 및 사용자 관리가 가능해요.
실전 예시: 구체적인 라이브러리 추가 사례 📚
관리자 계정으로 로그인했다면, 이제 Komga에 저장된 도서 파일을 인식시켜야 합니다. '라이브러리(Libraries)' 메뉴로 이동해 주세요.
40대 직장인 박모모씨의 라이브러리 추가 과정
- 정보 1: 박모모씨는 NAS 경로
/자료/comics에 만화책을,/자료/novels에 소설책 파일을 분리하여 저장했습니다. - 정보 2: Docker 설정 시,
/자료/comics를 컨테이너 내부 경로/data로 매핑했습니다.
라이브러리 설정 과정
1) 'Add Library' 버튼 클릭 후, 'Name'에 "만화책 서재" 입력
2) 'Root folder'에 컨테이너 내부 경로 /data 입력 (NAS 경로 X, Docker 설정 볼륨 매핑 경로 O!)
3) 'Type'을 "COMIC"으로 선택하고 저장
최종 결과
- 결과 항목 1: Komga가 /data 폴더(실제 NAS의 /자료/comics)를 스캔하여 만화책 메타데이터를 자동으로 불러옵니다.
- 결과 항목 2: 스마트폰/태블릿의 Komi나 Tachiyomi 앱에서 서버 주소를 등록하여 접속할 수 있게 됩니다.
이 사례처럼, 반드시 Docker 설정 시 매핑했던 컨테이너 내부 경로를 라이브러리 'Root folder'에 입력해야 합니다. 이 점만 주의하면 나만의 개인 도서관 구축은 이미 성공하신 거예요! 😉
마무리: 핵심 내용 요약 📝
Komga를 시놀로지 Docker에 설치하는 과정은 다소 복잡해 보이지만, 핵심만 요약하면 아주 간단합니다. 이 과정을 통해 여러분의 미디어 생활이 한 단계 업그레이드되길 바랍니다!
- 1. Docker 환경 준비. 시놀로지 Container Manager(Docker)가 설치되어 있는지 확인하는 것이 기본 중의 기본입니다.
- 2. 필수 폴더 생성 및 권한 설정. 설정 파일(
/config)과 도서 파일(/data)을 저장할 NAS 폴더를 만들고, 권한 문제가 없도록 확인하세요. - 3. Komga 이미지 다운로드 및 컨테이너 실행.
gotson/komga이미지를 사용하며, 포트(8080)와 볼륨 매핑(NAS 경로 → 컨테이너 내부 경로)이 정확한지 확인해야 합니다. - 4. 최초 접속 및 라이브러리 설정.
http://NAS_IP:PORT로 접속해 관리자 계정을 만들고, **컨테이너 내부 경로**를 라이브러리 루트 폴더로 등록하세요. - 5. 모바일 앱 활용. Komi나 Tachiyomi 같은 전용 리더 앱을 사용하면 훨씬 쾌적하게 스트리밍할 수 있어요.
Komga 설치로 나만의 완벽한 개인 서재를 만드신 것을 축하드립니다! 궁금한 점이 있으시면 언제든지 댓글로 물어봐주세요~ 제가 아는 선에서 최대한 도와드릴게요! 😊
Komga 설치 핵심 요약
/volume1/data/comics)를 컨테이너 내부 경로(예: /data)로 정확히 매핑해야 인식이 됩니다.


