FreBSD: Личный OPDS каталог

Всем привет!
Данная тема уже была затронута в рамках этого блога в 2015 году.
Домашний сервер за это время был переведен на FreeBSD, а автор Simple OPDS уже давно переписал свой проект на Django.
Сегодня попробовал запустить SOPDS на FreeBSD 12.1, запуск прошел успешно и я решил поделится данным рецептом:)

В рамках этой статьи будем использовать базу данных SQLite, в качестве фронтэнда — NGINX.
Если у вас установлен Python версии ниже 3.7, то обновляем

Все будем ставить из «пакеджей», (считаем, что система у вас чистая) поехали:

# pkg update
# pkg install python37 py37-pip py37-pillow py37-lxml py37-django-picklefield-2.0 nginx git

Переходим в корневую директорию NGINX и забираем дистрибутив SOPDS:
# cd /usr/local/www
# git clone https://github.com/mitshel/sopds.git

Переходим в клонированный проект:
# cd /usr/local/www/sopds

Запускаем дополнительную установку софта:
# python3.7 -m pip install -r requirements.txt

Выполняем инициализацию и заполнение справочника жанров:
# python3.7 manage.py migrate
# python3.7 manage.py sopds_util clear

Заводим суперпользователя:
# python3.7 manage.py createsuperuser

Указываем путь до книг (в моем случае /home/books)
# python3.7 manage.py sopds_util setconf SOPDS_ROOT_LIB /home/books

Выставляем русский язык по умолчанию:
# python3.7 manage.py sopds_util setconf SOPDS_LANGUAGE ru-RU

Создадим директорию для логов и укажем пути:
# mkdir /var/log/sopds
# python3.7 manage.py sopds_util setconf SOPDS_SERVER_LOG /var/log/sopds/sopds_server.log
# python3.7 manage.py sopds_util setconf SOPDS_SCANNER_LOG /var/log/sopds/sopds_scanner.log
# python3.7 manage.py sopds_util setconf SOPDS_TELEBOT_LOG /var/log/sopds/sopds_telebot.log

Настроим ротацию логов:
# vi /etc/newsyslog.conf

/var/log/sopds/sopds_server.log         640  5     1000 *     JC
/var/log/sopds/sopds_scanner.log        640  5     1000 *     JC
/var/log/sopds/sopds_telebot.log        640  5     1000 *     JC

Перезапустим newsyslog:
# /etc/rc.d/newsyslog restart

Внесем в crontab запуск sopds при перезагрузке:
# crontab -e
@reboot python3.7 /usr/local/www/sopds/manage.py sopds_scanner start --daemon
@reboot python3.7 /usr/local/www/sopds/manage.py sopds_server start --daemon

Стартуем, веб интерфейс по умолчанию на 8001 порту,
можно изменить аргументами —host 127.0.0.1 —port 8888
# python3.7 manage.py sopds_scanner start --daemon
# python3.7 manage.py sopds_server start --daemon

По умолчанию сканирование каталога происходит два раза в сутки: в 0 часов и в 12.
Запустим принудительное сканирование:
# python3.7 manage.py sopds_scanner scan --verbose

Займемся NGINX:
Разрешаем запуск:
# echo nginx_enable=\"YES\" >> /etc/rc.conf

Создадим директорию для конфигурационных файлов виртуальных серверов NGINX:
# mkdir /usr/local/etc/nginx/conf.d

Подключим конфигурационный файлы из вышеуказанной директории:
# vi /usr/local/etc/nginx/nginx.conf

В директиву http добавим строку:
include /usr/local/etc/nginx/conf.d/*.conf;

Теперь nginx будет обрабатывать все .conf файлы из директории  /usr/local/etc/nginx/conf.d/
Создадим конфигурационный файл для нашего opds каталога
(!!!имя books.myhost.ru — заменить на свое!!!):
# vi /usr/local/etc/nginx/conf.d/books.myhost.ru.conf

server {
        listen 80;
        server_name books.myhost.ru;
        access_log /var/log/nginx/books/access.log;
        error_log  /var/log/nginx/books/error.log  error;
        
location / {
    proxy_pass http://127.0.0.1:8001;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_connect_timeout 120;
    proxy_send_timeout 120;
    proxy_read_timeout 180;
    }
}

Создаем отдельную директорию для логов NGINX:
# mkdir -p /var/log/nginx/books

Проверяем корректность конфигурации NGINX:
# nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

Запускаем NGINX:
# /usr/local/etc/rc.d/nginx start

Проверяем по адресу http://books.myhost.ru должен быть доступен web-интерфейс.
opds каталог доступен по адресу:
http://books.myhost.ru/opds/
Всем пока:) 

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Комментарии: 1
  1. Александр

    Не получается настроить NGINX. При проверке командой # nginx -t выдает ошибки в nginx.conf. К этому пункту (В директиву http добавим строку:
    include /usr/local/etc/nginx/conf.d/*.conf;) тоже есть вопросы. Хотелось бы увидеть примеры готовых конфигурационных файлов, чтобы понять где допущена ошибка.

Добавить комментарий

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.