본문 바로가기

라즈베리파이

OMV5에 캘리버(Calibre)를 이용한 온라인 도서관 구축하기-1

1. 들어가기 전에

내가 캘리버를 처음 사용한 것은 아마도 몇년 전에 아마존 킨들을 구매하면서 부터 였던 걸로 기억한다. 그때는 캘리버를 이용해 epub 이북 포맷을 mobi 파일 즉 킨들 포맷으로 변환하기 위해 사용했었다. 가지고 있던 전자책이 많지도 않았을 뿐더러, 캘리버가 웹상에서 동작한다는 것을 알지 못한 상태에서 캘리버를 이용해 전자책 관리는 생각도 못했다. 단지 위키를 설치해 PDF 문서들을 올려놓고 필요시 보는 정도였다.

 

그러던 와중, 아래 위키백과사전에서 캘리버에 대한 설명에서 볼 수 있드시 웹 기반 캘리버가 있고, 이를 이용해 전자책 관리가 가능하다는 것을 알게 되었다. 

 

오늘은 캘리버를 이용해 어떻게 전자책을 관리할 수 있을지 설명해 보도록 하겠다.

 

2. docker 이미지 준비

docker hub에서 "linuxserver/calibre"를 검색해 보면, 아래처럼 두 가지 종류의 캘리버를 찾을 수 있다.

우선 "linuxserver/calibre"는 윈도우즈용 마치 캘리버 프로그램을 웹에서 접속해서 사용하는 느낌이 든다. 뭔가 웹 환경에 최적화 된것이 아닌, 억지로 짜 넣은듯한 느낌이다.

따라서, 우리가 설치할 docker 이미지는 "linuxserver/calibre-web"이다.

 

우선 Portainer에 접속, "Images" 메뉴에서 "linuxserver/calibre-web" 이미지를 다운로드 받도록 한다.

 

3. 볼륨 준비

"linuxserver/calibre-web" 컨테이너는 "/books"와 "/config" 두개의 볼륨을 필요로 한다.

 

이 중 "/books" 폴더는 이북 파일을 저장하는 위치이므로, SMB 공유 설정을 통해 저장할 폴더를 준비해 두도록 한다. 여기서는 "web"이라는 SMB 공유 폴더를 설정하고 그 아래 "ebooks" 폴더를 컨테이너의 "/books" 폴더와 매핑시킬 예정이다.

 

컨테이너의 "/config" 폴더는 OMV에서 직접 접속해 수정할 일이 없으므로 아래처럼 독립 볼륨 파일을 생성해 지정하도록 하겠다. "Volumes" 메뉴에서 "Add volume" 버튼을 클릭해 "calibre_config" 볼륨을 생성하도록 한다.

 

4. 컨테이너 생성

이미지 다운로드 및 볼륨 매핑 준비가 완료 되었으므로 이제 컨테이너를 생성할 순서이다. "Containers" 메뉴에서 "Add container" 버튼을 클릭해 아래와 같은 화면이 나오면 컨테이너 이름 설정, 다운받은 이미지를 지정한다.

이 캘리버 컨테이너의 경우 접속을 위해 8083포트를 사용하므로, 8083 포트로 직접 접속할 경우 아래처럼 포트 매핑도 해주도록 한다. 나의 경우 NginX Reverse Proxy를 사용할 것이므로 포트 매핑은 생략하였다.

 

이제 "Volumes" 탭에서 "/config"는 아까 만든 볼륨으로 지정하고, "/books"는 아까 공유한 폴더에 대한 절대 경로를 바인딩 하도록 한다.

 

"Network" 탭에서 사용자 네트워크인 ServerNetwork를 지정하고, 내부망 IP 주소를 할당하도록 한다.

 

이제 PUID, PGID, TZ 등 환경설정 정보를 아래처럼 지정한다.

 

마지막으로 "Restart policy"를 "Always"로 설정하고 "Deploy the container" 버튼을 눌러 컨테이너 생성을 마무리하도록 한다.

 

5. NginX Reverse Proxy 설정

컨테이너 생성을 완료했으므로 컨테이너에 접속하기 위해서는 도메인을 새로 만들어 연결시켜 주어야 한다. 본인의 도메인 관리 관리 페이지에 접속, 온라인 도서관으로 사용할 도메인을 새로 할당하고 IP주소를 지정해 주도록 한다.

 

나의 경우 DNSzi에 접속, elib.codesarang.com이라는 새로운 도메인에 IP주소를 할당해 주었다.

 

그리고 docker의 Reverse Proxy 설정 폴더로 이동, 샘플 파일을 "elib.codesarang.com.subdomain.conf"로 복사해 준다.

 

그리고, "elib.codesarang.com.subdomain.conf" 파일 내용을 아래처럼 내용을 수정해 준다. 물론 당연한 얘기겠지만, 도메인 서버 주소라든지 내부 IP 주소의 경우 본인의 상황에 맞도록 수정해야 한다.

 

마지막으로 컨테이너 리스트에서 LetsEncrypt 컨테이너를 재시작 해주면 Reverse Proxy 설정이 완료된다.

 

6. 설치 완료

이제 "https://elib.codesarang.com" 주소로 접속해 아래와 같은 화면이 나온다면 설치가 완료된 것이다. 혹시 도메인에 해당하는 IP주소를 찾을 수 없다는 에러가 나올 경우 DNS설정 적용이 아직 안된 것이니 좀 기다렸다가 다시 시도해 보면 된다.

 

여기까지 캘리버 기본 설정에 대해 설명하겠다. "OMV5에 캘리버(Calibre)를 이용한 온라인 도서관 구축하기-2" 에서는 초기 오류 해결, 환경 설정, 전자책 업로드 방법 등에 대해 추가 설명하도록 하겠다.