Семейный сервер для хранения книг
Довольно давно у меня была задача сделать сервер (удобный) для централизованного хранения книг для всей семьи (и родственников) из-за того, что частенько книжные интересы у нас пересекаются и она и та же книга покупается дважды (иногда и трижды). Поделюсь, как я ее решил:
Для локального хранения и преобразования из различных форматов использую известную и по-моему единственную программу Calibre. Для использования базы Calibre через web есть несколько решений, я, мне кажется, выбрал самое достойное, calibre-web.
Далее расскажу как я его настраивал:
- Устанавливать решил на Synology, поэтому единственный путь это docker контейнер (правда в библиотеке приложений Synology есть несколько реализаций web версии Calibre, но они все убогие более чем полностью). Нашел уже готовый контейнер от известных изготовителей: linuxserver/calibre-web.
- Настройка очень простая:
docker create \ --name=calibre-web \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Moscow \ -e DOCKER_MODS=linuxserver/calibre-web:calibre \ -p 8083:8083 \ -v <path to data>:/config \ -v <path to calibre library>:/books \ --restart unless-stopped \ linuxserver/calibre-web
- Но есть несколько нюансов, стоит обратить внимание на папку:
- v <path to calibre library>:/books \
В ней уже должна быть база Calibre (например уже подготовленная на десктопной клиенте) иначе настроить сервер вы не сможете.
- Далее после запуска контейнера сервер Calibre-web на по адресу http://your-ip:8083
- При первом запуске указывается calibre library location: /books (не забываем про то, что в папке уже должна лежать библиотека Calibre)
Отдельная интересная история, как я настирывал Caddy для работы с Calibre-web, там тоже один маленький нюанс:
https://books.abramenko.me { tls vaxann@gmail.com gzip proxy / http://192.168.1.84:8083 { transparent } }
http://books.abramenko.me { redir https://books.abramenko.me{uri} }
Это запись transparent.
К слову официальная конфигурация для NginX, немного сложнее, но из нее понятно зачем нужен transparent :
location / { proxy_pass http://your-ip:8083; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; proxy_set_header X-Script-Name /calibre-web; }
В целом это все, если интересны подробности, задавайте вопросы в комментариях.