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:
<pre class="lang:sh decode:true ">[shell]# 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/
Всем пока:)

Рейтинг
( 2 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

:) :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.