본문 바로가기
Tech/Containers

Web기반 PDF/EPUB Reader Ubooquity

by 타이호 2019. 5. 13.
반응형

IT 기술 관련 PDF/EPUB/MOBI 파일로 된 책을 하루에 한권씩 공짜로 배포하는 사이트를 알게 되었다. https://www.packtpub.com//packt/offers/free-learning?login=1

이렇게 한권 두권씩 모으다 보니, 저장해서 아이패드로 복사해서 보거나 하는 일이 상당히 귀찮아 졌다. 물론 NAS가 있어서 크게 불편한 점은 없지만, AirComix처럼 웹 기반으로 접속해서 다운로드만 해당 디렉토리에 넣어두면 볼 수 있는 형태를 찾다 보니 당연하게도 Docker 이미지로 이런 형태의 서비스를 배포 할 수 있도록 만들어 놓은 이미지를 찾았다(Ubooquity).

 

1. PACKT 사이트

해당 사이트에서 책을 받게 되면 본인 계정에 이렇게 다운 받은 책을 볼 수 있다.

 

예를 들어 Pandas Cookbook이라는 책을 다운 받으려면 아래와 같이 View Details로 들어가서 Buy eBook을 누르게 되면 아래와 같이 이미 무료로 풀렸을 때 Claim을 했다면 다운로드 받을 수 있다.

우선 테스트를 위해 ePub와 PDF 둘다 다운로드를 받아본다.

 

2. Ubooquity 설치

ubooquity는 Docker 형태로 설치를 할 수 있다. 시놀로지 NAS의 Docker를 이용하여 간단하게 설치를 해본다.

https://hub.docker.com/r/linuxserver/ubooquity/

 

시놀로지 Docker Registry에서 ubooquity를 검색하고, linuxserver/ubooquity를 다운로드 한다.

 

다운로드가 완료되면 해당 이미지로 Container를 생성한다.

 

그리고 고급설정에서 아래와 같이 볼륨, 포트, 환경변수를 추가한다.

볼륨은 books, comics, files, config로 만화나 책 모두 볼 수 있다. 단 ubooquity는 zip압축 형태를 지원하지 않기 때문에 zip파일의 확장자를 cbz로 변경해야 볼 수 있는 것을 참고하자

 

포트는 2202와 2203을 사용하는데 2203은 admin이 사용하는 포트이며 2202는 서비스를 위한 포트이다.

 

마지막으로 환경 설정에서 환경변수에 PID, GID, MAXMEM을 설정한다. Docker Container가 해당 볼륨의 파일을 읽기 위해서 필요한 PID, GID는 본인 계정의 값으로 설정하고, 최대 메모리를 설정해두면 해당 메모리까지 Container가 소모한다. PDF크기에 따라 다르겠지만 큰 파일은 메모리를 많이 사용하니 여유가 되면 충분한 메모리를 주는 것이 좋다.

그러면 아래와 같이 Ubooquity Docker Container를 실행할 수 있다.

 

2. Ubooquity 사용

설치한 ubooquity에 접속하기 위해서는 우선 admin page로 접속한다.

http://<nas_ip>:2203/ubooquity/admin

최초 접속 시 비밀번호를 넣어준다.

 

아직은 docker가 마운트한 디렉토리에 파일이 없어서 아래와 같이 스캔 결과가 0이지만 해당 디렉토리에 파일을 업로드 하고 나서 서비스 페이지로 접속하면 인터넷 상으로 책을 볼 수 있게 된다.

 

서비스 사이트는 http://<nas_ip>:2202/ubooquity 로 접속하면 아래와 같이 볼 수 있다.

 

이제 위에서 샘플로 받은 책을 넣어본다. 테스트를 위해 epub, pdf 두권을 넣어서 확인을 해 본다.

이렇게 두권이 추가가 된 것을 볼 수 있다.

*** 책은 해당 디렉토리와 파일의 권한이 Read 권한이 있어야 한다. 만약 책을 업로드 했는데 추가가 되지 않는다면 나스로 ssh 접속해서 chmod -R 755 <디렉토리> 로 권한을 바꿔준다. ***

 

다시 서비스 페이지 http://<nas_ip>:2202/ubooquity 로 접속해서 Books로 들어가면 아래와 같이 업로드 된 책을 볼 수 있다.

 

PDF로 업로드 된 책을 눌러보면 다운을 받을 수도 있고, 웹에서 볼 수도 있다.

 

Read를 클릭해서 들어가보면 View 설정도 할 수 있다.

 

 

그래서 이렇게 책을 볼 수 있다.

 

3. 사용자 설정

기본 설정은 모든 사용자가 사용할 수 있지만, 유저를 추가 할 수 있다.

유저를 추가하게 되면 해당 유저는 자신이 본 책들을 다음에 접속해도 동일한 페이지에서 볼 수 있는 특징도 가지고 있다.

그리고 Add User를 할 때 위의 Protect옵션에 체크를 하게 되면 다른 유저는 해당 디렉토리에 Access를 할 수 없다.

 

그리고 나서 Comics, Books, Files항목으로 가서 생성된 유저를 추가한다. 위 Protect shard content with user accounts를 설정하면 초기에는 Nobody로 아무도 접근이 되지 않는다.

 

이렇게 설정하고 나면 다음에 접속할 때는 계정과 비밀번호로 접속해서 사용할 수 있다.




반응형