Семейный сервер для хранения книг
Довольно давно у меня была задача сделать сервер (удобный) для централизованного хранения книг для всей семьи (и родственников) из-за того, что частенько книжные интересы у нас пересекаются и она и та же книга покупается дважды (иногда и трижды). Поделюсь, как я ее решил:
Для локального хранения и преобразования из различных форматов использую известную и по-моему единственную программу 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;
}В целом это все, если интересны подробности, задавайте вопросы в комментариях.