-
-
Notifications
You must be signed in to change notification settings - Fork 12
Setup_ru
-
Для небольших библиотек (до 50 000 книг):
- Процессор: ARM Cortex-A53 1 ГГц или x86/x64 1 ГГц
- Память: 1 ГБ ОЗУ
- Дисковое пространство: 100 МБ + размер базы данных
- ОС: Windows 10 версия 1903+, Windows 11, Windows 7 SP1/8/8.1 (требуется установка .NET 4.8), Linux, macOS 10.12+
- .NET Framework: 4.8 (для Windows)
- Работает даже на Raspberry Pi Zero 2 W
-
Для больших библиотек (500 000+ книг):
- Процессор: многоядерный 2+ ГГц
- Память: минимум 4 ГБ ОЗУ
- Дисковое пространство: 500 МБ + размер базы данных
- SSD диск для быстрого сканирования
Примечание: Размер базы данных составляет примерно 3-4 МБ на 1000 книг. Для библиотеки из 500 000 книг база данных займёт около 1,7 ГБ.
| Платформа | GUI версия | CLI версия | Поддержка Wine |
|---|---|---|---|
| Windows | ✅ Полная поддержка | ✅ Полная поддержка | Н/Д |
| Linux | ✅ Полная поддержка (через Mono) | ✅ Полная поддержка | ✅ Полная поддержка |
| macOS | ❌ Не поддерживается* | ✅ Полная поддержка | ✅ Полная поддержка |
Примечание для macOS: GUI версия не может работать нативно на macOS из-за несовместимости WinForms с 64-битным Mono. Используйте CLI версию или Wine для GUI функциональности.
- Скачайте последнюю версию с GitHub Releases
- Распакуйте архив в любую папку
- Для Windows 7 SP1, 8, 8.1 - установите .NET Framework 4.8, если его нет
- Запустите
TinyOPDS.exe
Программа полностью портативна и не требует установки. Все настройки сохраняются в файле TinyOPDS.config в папке программы.
Примечание: Windows 10 версии 1903 и выше, а также Windows 11, уже включают .NET Framework 4.8.
Ubuntu/Debian:
sudo apt update
sudo apt install mono-completeFedora/CentOS/RHEL:
sudo dnf install mono-completeArch Linux:
sudo pacman -S monoopenSUSE:
sudo zypper install mono-complete# Сделать файл исполняемым
chmod +x TinyOPDS.exe
# Запуск через Mono
mono TinyOPDS.exeВажно: GUI версия не работает нативно на macOS из-за несовместимости WinForms с 64-битным Mono. У вас есть три варианта:
- Использовать CLI версию (рекомендуется)
- Использовать Wine для запуска GUI версии
- Настроить параметры на Windows/Linux и скопировать файл конфигурации
Установка зависимостей:
# Установка Homebrew, если его нет
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Установка Mono
brew install mono
# ВАЖНО: Установка свежего SQLite для избежания сбоев
brew install sqliteЗапуск CLI версии:
# Перейти в папку программы
cd /path/to/tinyopds
# Сканировать библиотеку
mono TinyOPDSCLI.exe scan
# Запустить сервер
mono TinyOPDSCLI.exe startПримечание SQLite: Системный SQLite macOS имеет проблемы совместимости с Mono.Data.Sqlite. Установка SQLite через Homebrew решает сбои при сканировании.
# Установка Wine через Homebrew
brew install --cask wine-stable
# Запуск GUI версии
wine TinyOPDS.exe
# Создание ярлыка приложения (опционально)
echo '#!/bin/bash
cd "$(dirname "$0")"
wine TinyOPDS.exe 2>/dev/null &' > TinyOPDS.app/Contents/MacOS/TinyOPDS
chmod +x TinyOPDS.app/Contents/MacOS/TinyOPDSWine позволяет запускать Windows версию на Linux и macOS с полной GUI функциональностью.
Linux:
# Ubuntu/Debian
sudo apt install wine wine32
# Fedora
sudo dnf install wine
# Arch
sudo pacman -S winemacOS:
brew install --cask wine-stable# Базовый запуск
wine TinyOPDS.exe
# Запуск без вывода в консоль
wine TinyOPDS.exe 2>/dev/null
# Запуск в фоне
nohup wine TinyOPDS.exe > /dev/null 2>&1 &Linux (.desktop файл):
[Desktop Entry]
Name=TinyOPDS
Comment=OPDS сервер книг
Exec=wine /path/to/TinyOPDS.exe
Icon=/path/to/icon.png
Terminal=false
Type=Application
Categories=Network;macOS (Automator приложение):
- Откройте Automator
- Создайте новое Приложение
- Добавьте действие "Выполнить сценарий оболочки"
- Введите:
cd /path/to/tinyopds && wine TinyOPDS.exe 2>/dev/null - Сохраните как TinyOPDS.app
TinyOPDSCLI может быть установлен как системная служба для автоматического запуска при загрузке системы.
Важно: Перед установкой службы рекомендуется сначала настроить все параметры через GUI версию (TinyOPDS.exe), затем использовать готовый файл конфигурации TinyOPDS.config для консольной версии.
Консольная версия использует SC.EXE для регистрации Windows службы:
# Открыть командную строку от имени администратора
# Установить службу
TinyOPDSCLI.exe install
# Запустить службу
TinyOPDSCLI.exe start
# Остановить службу
TinyOPDSCLI.exe stop
# Удалить службу
TinyOPDSCLI.exe uninstallОсобенности Windows службы:
- Устанавливается с автоматическим запуском (delayed-auto)
- Запускается под LocalSystem
- Настроена политика восстановления (перезапуск при сбое)
- Логи сохраняются в файл
TinyOPDS.logв папке программы
Установщик автоматически определяет систему инициализации (systemd или init.d):
# Требуются права root
sudo mono TinyOPDSCLI.exe install
# Управление службой
sudo mono TinyOPDSCLI.exe start
sudo mono TinyOPDSCLI.exe stop
sudo mono TinyOPDSCLI.exe uninstallПри установке создаётся файл /etc/systemd/system/tinyopds.service:
[Unit]
Description=TinyOPDS OPDS сервер
After=network.target
[Service]
Type=simple
User=tinyopds
Group=tinyopds
WorkingDirectory=/opt/tinyopds
Environment="TINYOPDS_SERVICE=1"
ExecStart=/usr/bin/mono /opt/tinyopds/TinyOPDSCLI.exe start
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.targetРасположение файлов:
- Данные:
/var/lib/tinyopds/ - Логи:
/var/log/tinyopds/ - Конфигурация: в папке программы
Создаётся скрипт /etc/init.d/tinyopds со стандартной поддержкой команд init.d (сам скрипт поддерживает status, но TinyOPDSCLI.exe не имеет этой команды)
Использует launchd для управления службой:
# ВАЖНО: Сначала установите SQLite
brew install sqlite
# Установка (требует sudo для системной службы)
sudo mono TinyOPDSCLI.exe install
# Или установка для текущего пользователя (без sudo)
mono TinyOPDSCLI.exe install
# Управление службой
mono TinyOPDSCLI.exe start
mono TinyOPDSCLI.exe stop
mono TinyOPDSCLI.exe uninstallПри установке с правами root создаётся /Library/LaunchDaemons/com.senssoft.tinyopds.plist:
- Запускается при загрузке системы
- Работает в фоне для всех пользователей
- Логи:
/usr/local/var/log/tinyopds/
При установке без root создаётся ~/Library/LaunchAgents/com.senssoft.tinyopds.plist:
- Запускается при входе пользователя
- Работает только для текущего пользователя
- Логи:
~/Library/Logs/TinyOPDS/
Особенности macOS службы:
- Автоматический перезапуск при сбое
- 5 секунд задержки между перезапусками
- Поддержка Apple Silicon (M1/M2) и Intel
- Требует Homebrew SQLite для стабильности
- Запустите TinyOPDS (GUI или CLI)
- Для GUI: Перейдите на вкладку "Сканер"
- Укажите путь к папке с книгами
- Нажмите "Начать сканирование" или используйте
mono TinyOPDSCLI.exe scan
- Для GUI: Перейдите на вкладку "Сервер"
- Если у вашего компьютера несколько сетевых карт, выберите подходящий сетевой интерфейс
- Установите порт (по умолчанию 8080)
- Нажмите "Запустить сервер" или используйте
mono TinyOPDSCLI.exe start
Примечание: По умолчанию сервер слушает на всех сетевых интерфейсах. Выбор конкретного интерфейса нужен только при наличии нескольких сетевых карт.
Откройте браузер и перейдите по адресу:
- Локальный доступ:
http://localhost:8080/ - По сети:
http://[ваш-ip]:8080/ - OPDS каталог:
http://[ваш-ip]:8080/opds
Рекомендация: Для консольной версии сначала настройте все параметры через GUI версию, затем скопируйте файл
TinyOPDS.configв папку сTinyOPDSCLI.exe. Если оба исполняемых файла находятся в одной папке, они автоматически используют общий файл конфигурации.
- Настройки:
TinyOPDS.config - База данных:
books.sqliteв папке программы - Логи:
TinyOPDS.logв папке программы
- Настройки:
TinyOPDS.config - База данных:
books.sqliteв папке программы - Логи программы:
TinyOPDS.logв папке программы - Логи службы:
/var/log/tinyopds/(Linux) или~/Library/Logs/TinyOPDS/(macOS)
- Остановите службу/программу
- Сохраните копию базы данных
books.sqlite - Замените файлы программы на новую версию
- Запустите программу/службу
База данных совместима между версиями и не требует конвертации.
GUI версия не может работать нативно на macOS из-за того, что реализация WinForms в Mono несовместима с 64-битным режимом. Вы увидите эту ошибку:
WARNING: The Carbon driver has not been ported to 64bits, and very few parts of Windows.Forms will work properly, or at all
Решения:
- Используйте CLI версию (полностью функциональна)
- Запустите GUI версию с Wine
- Настройте на Windows/Linux и скопируйте файл конфигурации
Если вы испытываете сбои при сканировании на macOS, установите SQLite от Homebrew:
brew install sqliteЭто решает проблемы совместимости между Mono.Data.Sqlite и системным SQLite macOS.
Windows:
# Проверить статус службы
sc query TinyOPDS
# Просмотр логов в просмотрщике событий
eventvwr.mscLinux:
# Для systemd
sudo systemctl status tinyopds
sudo journalctl -u tinyopds -f
# Для init.d
sudo service tinyopds status
tail -f /var/log/tinyopds/*.logmacOS:
# Проверить статус
launchctl list | grep tinyopds
# Просмотр логов
tail -f ~/Library/Logs/TinyOPDS/*.log
# или для системной службы
tail -f /usr/local/var/log/tinyopds/*.logИзмените порт в настройках или найдите процесс, использующий порт:
# Linux/macOS
lsof -i :8080
# Windows
netstat -ano | findstr :8080- Используйте SSD для базы данных
- Выполните начальное сканирование на мощном компьютере
- Скопируйте готовую базу данных на целевое устройство
- Используйте HTTP авторизацию (вкладка "Авторизация")
- Настройте брандмауэр для ограничения доступа по IP
- Используйте VPN для удалённого доступа
Регулярно сохраняйте копии:
- База данных:
books.sqlite - Конфигурация:
*.configфайлы
Для Linux/macOS можно настроить задание cron:
# Добавить в crontab
0 3 * * * mono /path/to/TinyOPDSCLI.exe scanДля доступа из интернета:
- Настройте проброс портов на роутере
- Используйте сервис динамического DNS
- Или настройте обратный прокси (nginx/Apache)
- macOS GUI: Нативный GUI не поддерживается из-за ограничений Mono WinForms. Используйте CLI или Wine.
- Большие библиотеки: Начальное сканирование 500 000+ книг может занять несколько часов в зависимости от оборудования.
- Использование памяти: Примерно 1 ГБ ОЗУ на 200 000 книг при сканировании.