안녕하세요 대무무입니다.
오늘은 Calibre-Web 이라는 웹 기반 E-book 관리 도구입니다.
이건 뭐야?
해당 도구를 몰랐던 시절에는 모든 문서들을 NAS 에서 하나의 디렉토리에 넣고 관리했는데 이렇게 하니 원하는 문서를 검색하는 것이 어려웠고 문서 관리하는 것 또한 힘들었습니다. 그래서 관리 시스템을 제공하는 오픈 소스 기반의 도구가 어떤 것들이 있을지 찾아보다 발견하게 되었습니다.
Calibre 는 오픈 소스 E-book 관리 프로그램이며 문서들을 관리하는데 사용합니다. 다양한 문서 형식을 지원하며 OS 별로 다양하게 지원하는 것이 특징인데요. 요 프로그램을 web 기반으로 옮겨간 프로젝트가 Calibre-Web 입니다. 브라우저를 통해 E-book 파일들을 관리할 수 있는 장점이 있고 OPDS 프로토콜을 지원한다는 점이 가장 큰 장점 중 하나입니다.
OPDS 란 Open Publication Distribution System 의 약자로 HTTP 를 기반으로 하는 전자 출판물을 위한 프로토콜입니다. 이 프로토콜은 HTTP 를 통해 전자 출판물을 검색하고 다운로드할 수 있는 방법을 제공하며 E-book 리더기나 태블릿, PC 에서 지원합니다. 게다가 오픈 소스이므로 누구나 사용 가능하고 애플리케이션에서 해당 프로토콜을 사용하는데 제한이 없다는 장점을 가지고 있죠.
저는 iPad 에서 OPDS 프로토콜을 지원하는 앱에서 Calibre-Web 으로 접근해 전자 출판물을 보는데 사용하고 있습니다. Calibre-Web 은 Docker Image 를 제공하므로 편리하게 구축 가능합니다!
어떻게 구축하지?
docker-compose
version: "3"
services:
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
restart: unless-stopped
environment:
- PUID=[PUID]
- PGID=[PGID]
- TZ=Asia/Seoul
- DOCKER_MODS=linuxserver/mods:universal-calibre #optional
volumes:
- ./config:/config
- ./books:/books
ports:
- 8083:8083
- PUID, PGID: 컨테이너 내의 사용자를 Host 의 사용자에 매핑이 가능해서 자원 권한에 대해 더 철저하게 구성이 가능합니다. 각 id 를 얻는 방법은 다음과 같습니다.
$ id
uid=1000(user1) gid=1000(user1) ...
PUID 는 uid 번호로 매핑하시면 되고 PGID 는 gid 번호로 매핑하시면 됩니다.
- TZ: timezone 을 입력하시면 됩니다. 저는 한국에 살기 때문에 Asia/Seoul 이라고 썼습니다.
- DOCKER_MODS (Optional): 해당 환경변수는 64비트 CPU(intel, amd CPU) 를 사용하는 서버에서 가능합니다. 해당 옵션은 E-book 변환을 수행하는 기능이라고 합니다.
- /config Volume: calibre-web 이 사용하는 데이터베이스 파일이 위치하는 경로입니다.
- /books Volume: E-book 파일들이 위치하는 경로입니다.
기본적인 설정에 대해 알려드렸고 더 자세한 설정을 Dockerhub 를 참고하시기 바랍니다.
docker-compose.yml 파일이 위치하는 디렉토리에 books 디렉토리를 생성하고 books 디렉토리에 다음 파일을 추가해줍니다.
해당 파일은 최초 연결할 데이터베이스 파일인데 관리방법에서 설명하겠습니다.
이후 다음 명령을 통해 컨테이너 시작해주시면 됩니다.
$ sudo docker-compose up -d
관리 방법은?
관리 페이지(http://[SERVER_IP]:8083) 접속 후 최초 계정 정보(id: admin, pw: admin123) 를 사용하여 접속하시면 다음과 같은 창이 나옵니다.
Location of Calibre Database 에는 '/books' 를 입력하고 save 버튼을 클릭합니다. 여기서 언급하는 Database 는 구축 방법에서 언급했던 파일(metadata.db) 가 위치한 디렉토리를 지정하는 것입니다. books 디렉토리에 metadata.db 가 존재한다면 Save 버튼 클릭 시 다음과 같이 적용이 된 것을 확인할 수 있습니다.
현재 접속한 admin 계정은 보안에 취약할 수 있으므로 사용자를 생성합니다. 상단에 있는 Admin 을 클릭하고 Add New User 를 클릭하면 계정 생성이 가능합니다. 여기서 Language 를 한국어 로 설정하면 UI 가 한글로 표시됩니다. 새로 만드는 계정을 Admin User 로 설정한 후 기존 admin 계정은 꼭 삭제하시기 바랍니다. 웹을 통해 E-book 을 업로드하려면 Allow Uploads 도 활성화시켜줍니다.
이후 관리자 메뉴에서 기본 환경 설정 편집을 클릭하고 기능 설정에서 업로드 활성화를 체크해주세요. 외부 바이너리는 다음과 같이 입력해주세요. 해당 설정은 64비트 CPU(intel, amd CPU) 를 사용하는 서버에서 가능합니다.
/usr/bin/ebook-convert
/usr/bin/kepubify
/usr/bin/unrar
이렇게 구축하시면 기본적인 설정은 완료되었고 업로드 버튼도 활성화되었을 겁니다. 이제는 pdf 나 다른 확장자를 갖는 E-book 파일들도 업로드하여 관리가 가능합니다.
태블릿(Android, iPad OS) 에서 Calibre-Web 을 OPDS 프로토콜을 통해 접속하려면 OPDS 를 지원하는 앱을 설치해야 하는데요. Android 는 MoonReader 앱에서 지원하고 iPad 에서는 kybook3 에서 지원합니다. 기본 설치 시 HTTP 를 통해 Calibre-Web 에 접속 가능한데요. HTTPS 를 사용하여 암호화된 방법을 통해 접근 하셔야 합니다. HTTPS 를 사용하려면 이전에 소개해드린 Nginx Proxy Manager 로 Proxy 기능을 사용하여 접속하시길 바랍니다!
Reference
'인프라' 카테고리의 다른 글
[인프라 / Docker] Docker Container 통합 로그 뷰어 Dozzle (0) | 2024.01.10 |
---|---|
[인프라 / Docker] MongoDB (with Replica-Set) (0) | 2024.01.08 |
[인프라 / VPN] Tailscale 유사 Site-to-Site 설정(Subnet Router) (1) | 2024.01.03 |
[인프라 / VPN] Tailscale 설명 및 간단 사용 방법 (1) | 2024.01.01 |
[인프라 / Docker] WireGuard VPN (1) | 2023.12.30 |