-
-
Notifications
You must be signed in to change notification settings - Fork 10
Setup_uk
-
Для невеликих бібліотек (до 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 книг при скануванні.