라즈베리파이

ubooquity를 이용한 온라인 도서관 구축하기-1

꼬망토끼 2020. 8. 12. 18:03

1. 개요

지난 2회에 걸친 포스팅에서 캘리버를 이용한 온라인 도서관을 구축해본 바 있다.

https://www.codesarang.com/39

 

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

1. 들어가기 전에 내가 캘리버를 처음 사용한 것은 아마도 몇년 전에 아마존 킨들을 구매하면서 부터 였던 걸로 기억한다. 그때는 캘리버를 이용해 epub 이북 포맷을 mobi 파일 즉 킨들 포맷으로 변

www.codesarang.com

https://www.codesarang.com/40

 

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

지난 포스팅에서 OMV5에 캘리버 설치 방법에 대해 설명한 바 있다. https://www.codesarang.com/39 OMV5에 캘리버(Calibre)를 이용한 온라인 도서관 구축하기-1 1. 들어가기 전에 내가 캘리버를 처음 사용한 것�

www.codesarang.com

 

그런데 왜? ubooquity를 이용한 온라인 도서관 구축 관련 글을 또다시 작성하는 것일까?

 

나의 경우 아래 그림처럼 캘리버에 다수의 ebook을 등록해 사용하고 있다. 그런데, 캘리버의 경우 책에대한 각종 정보를 디테일하게 관리할 수 있는 반면, 책 등록과 분류 및 관리가 좀 불편하다. 책장 기능을 이용해 분류가 가능하긴 하나 여러가지 불편하긴 마찬가지다.

 

이에 반해, ubooquity는 특정 폴더에 ebook 파일을 복사해 넣기만 하면 되어 매우 편리하다. 물론 캘리버에 비해 디테일한 맛은 떨어진다.

 

2. ubooquity 설치

2-1. 설치환경 분석

docker hub에서 ubooquity를 검색하면 아래처럼 여러 종류가 나오며, 그 중 linuxserver/ubooquity가 제일 무난하다.

 

linuxserver/ubooquity 설명을 보면 설정값을 살펴보면 아래 표와 같다.

-p 2202

전자책 도서관 접속 포트

-p 2203

전자책 도서관 관리 포트

-e PUID=1000

UserID 환경변수

-e PGID=1000

GroupID 환경변수

-e TZ=Europe/London

timezone 환경변수

-e MAXMEM=maxmem

메모리 사용량 관련 환경변수

-v /config

/config 폴더(ubooquity 설정파일 위치)

-v /books

/books 폴더(전자책 저장 위치)

-v /comics

/comics 폴더(만화책 저장 위치)

-v /files

/files 폴더(raw files 저장 위치)

ubooquity가 사용하는 폴더 중 /config 폴더는 외부 접근이 불필요 하므로 전용 Volume을 생성하고 /books, /comics, /files 폴더는 호스트 머신(라즈베리파이 외장 HDD)의 공유 폴더에 바인드 할 예정이다.

 

2-2. docker 환경 설정

우선, OMV5의 Portainer에 관리자 권한으로 접속 후, 왼쪽의 Images 메뉴를 선택한다. 그리고 아래처럼 "linuxserver/ubooquity" docker 이미지를 다운로드 받도록 한다.

 

이제, Volumes 메뉴를 선택하고 "Add volume" 버튼을 클릭한다.

 

그리고, ubooquity의 환경설정 정보가 저장될 "ubooquity_config" Volume을 생성하도록 한다.

 

이제, 라즈베리파이 공유 폴더중 하나를 선택(여기서는 web 폴더), ubooquity 폴더를 생성하고 그 아래에 books, comics, files 폴더를 각각 생성한다. 이 세 폴더는 나중에 전자책을 저장할때 사용할 것이다.

이로서, ubooquity 컨테이너 설치를 위한 준비가 완료 되었다.

 

이제, Portainer의 Containers 메뉴를 선택 "Add container" 버튼을 클릭한다.

 

아래 그림처럼, 컨테이너 이름(ubooquity)과 이미지 이름(linuxserver/ubooquity:latest)를 입력하고, 접속 포트(2202)와 관리 포트(2203)을 호스트 머신으로 매핑해 준다.

 

브라우져를 아래로 스크롤하여 Volumes 탭을 선택, /config 폴더를 아까 만들어 놓은 "ubooquity_config" 볼륨으로 매핑해 주고, /books, /comics, /files 폴더를 각각 host 머신의 절대 경로로 바인드 해준다. 참고로 나의 매핑 경로는 아래와 같다.

  • /books -> /srv/dev-disk-by-label-HDD/web/ubooquity/books
  • /comics -> /srv/dev-disk-by-label-HDD/web/ubooquity/comics
  • /files -> /srv/dev-disk-by-label-HDD/web/ubooquity/files

 

이제 Network 탭으로 이동, 사용자 네트워크인 ServerNetwork를 선택하고, IP 주소를 중복되지 않도록 할당해 준다.

만일 ServerNetwork가 없는 분의 경우 https://www.codesarang.com/34(NextCloud에서 Internal Server Error 발생시 해결 방법) 포스트 중 3-1 내용을 참조하시면 된다.

 

이제 Env 탭으로 이동, PUID와 PGID 그리고 TZ 값을 설정한다.

  • PUID : 65534 -> nobody
  • PGID : 100 -> users
  • TZ : Asia/Seoul

 

마지막으로 "Restart policy" 탭으로 이동하여 "Always"를 선택하고 "Deploy the container"를 선택한다.

 

3. ubooquity 최초 접속

라즈베리파이 IP주소의 2202포트로 접속하면 ubooquity 접속이 가능하다. 나의 경우 nas.codesarang.com 도메인의 경우 내부 네트워크 IP주소(192.168.219.101)로 매핑되어 있어 http://nas.codesarang.com:2202/ubooquity로 접속하였다.

 

 

http://nas.codesarang.com:2203/ubooquity/admin 으로 접속하면 ubooquity 관리 페이지 접속이 가능하다.

최초 접속시에 아래 그림처럼 관리자 비밀번호를 설정할 수 있다.

 

위에서 설정된 관리자 비밀번호로 로그인이 가능하다.

 

아래는 ubooquity 관리자 페이지 접속 화면이다.

이로서, ubooquity 설치 방법에 대한 1차 포스팅을 마무리 한다.