Портативная сборка
Настройка
Запускайте HolyArrs как обычную программу на Linux или Windows, без Docker. Docker остаётся основным способом запуска.
Перед началом
Ссылка на «Перед началом»- Python 3, Git и Docker на компьютере для сборки.
- Заполненный кэш модулей Go после обычной сборки проекта и зависимости фронтенда, установленные по
app/frontend/package-lock.json. - Собранное веб-приложение в коммите. Сборка берёт только исходный код из коммита; правки вне коммита в неё не попадают.
Соберите и запустите
Ссылка на «Соберите и запустите»-
Из рабочей копии соберите архивы:
Terminal window python deploy/release/package.py --ref HEAD --version 1.0.0 --output /srv/holyarrs-archives/1.0.0 --web-node-modules app/frontend/node_modules --module-cache /home/you/go/pkg/modИспользуйте новую папку вывода вне рабочей копии. Вы увидите по одному архиву на каждую платформу и файл
SHA256SUMS. -
Сверьте архив с
SHA256SUMS. -
Распакуйте его в новую папку. Держите программу и конфигурацию в разных папках.
-
Запустите её со своим путём к конфигурации:
Terminal window ./holyarrs -config /srv/holyarrs/config -addr :6262В Windows PowerShell:
Terminal window .\holyarrs.exe -config 'C:\HolyArrs\config' -addr ':6262' -
Откройте
http://your-server:6262. Появится мастер первого запуска. Сразу создайте учётную запись владельца; владельцем становится первый посетитель.
Варианты выбора
Ссылка на «Варианты выбора»От какого пользователя запускать
Ссылка на «От какого пользователя запускать»Запускайте HolyArrs под отдельной учётной записью с правами на запись только в конфигурацию и ваши медиа.
- От root вне контейнера, без
PUIDиPGID, он останавливается с сообщением «started as root outside a container» (запущен от root вне контейнера). - Если
PUIDиPGIDзаданы, он передаёт папку конфигурации этому пользователю и переключается на него. - В Windows защитите папку конфигурации правом NTFS для этой учётной записи.
Перезапуски и лимиты
Ссылка на «Перезапуски и лимиты»Архив не устанавливает службу. Настройте автоматический перезапуск и жёсткие лимиты памяти в своём менеджере служб (systemd, NSSM, Task Scheduler). Перезапуск из приложения и восстановление резервной копии завершают программу и ждут, что её запустят снова.
Обновление и возврат к прежней версии
Ссылка на «Обновление и возврат к прежней версии»- Проверьте новый архив до того, как остановите приложение.
- Остановите HolyArrs и скопируйте всю папку конфигурации вместе с мастер-ключом. Или сделайте резервную копию в приложении и храните её ключ отдельно.
- Распакуйте новую программу в другую папку. Сохраните старую программу и старую копию конфигурации.
- Запустите новую программу на своей конфигурации. Вы должны суметь войти, а
/healthдолжен показать running.
См. Резервные копии.
Если не работает
Ссылка на «Если не работает»| Признак проблемы | Причина | Решение |
|---|---|---|
| «started as root outside a container» | Запущено от root | Запустите под отдельным пользователем или задайте PUID и PGID. |
| Приложение завершается после восстановления | Восстановление подготавливает данные и завершается с кодом 75 | Запустите его снова, чтобы применить их. Настройте менеджер служб на перезапуск. |
| HTTPS-запросы не проходят на Linux | Нет системных сертификатов CA | Установите их. |
| Сборка сообщает, что вывод уже существует | Существующие папки вывода не принимаются | Выберите новую папку. |
Для опытных
Ссылка на «Для опытных»Параметры сборки
| Параметр | Что делает | По умолчанию |
|---|---|---|
--targets |
Список платформ для сборки через запятую | linux-amd64, |
--low-resource |
Каждый контейнер сборки получает 1 CPU, 2 GiB и 256 процессов; Go собирает по одному пакету за раз. Упаковка всё равно идёт на хосте, вне этих лимитов. | выключен |
Сборка идёт в закреплённом за проектом образе сборщика Go с выключенной сетью, поэтому ничего не скачивает. Кэш модулей смонтирован только для чтения. Если хоть одна платформа не собралась, папка вывода не остаётся. Коммит добавляется к номеру версии и встраивается в программу; приложение и его резервные копии его сообщают.
Что лежит в архиве
Программа, лицензия, уведомления о сторонних компонентах, руководства, манифест исходного кода и идентификатор пакета. Отдельный архив с исходниками содержит исходный код проекта и зависимости Go; храните его рядом с бинарными файлами.
SHA256SUMS доказывает, что файлы совпадают. Это не подпись. Тот же коммит, версия и входные данные дают те же архивы, так что для проверки можно собрать заново.
Заметки о работе
| Тема | Подробности |
|---|---|
| Путь к конфигурации | По умолчанию /config. Всегда передавайте -config, на локальном диске. |
| Цель по памяти | 384 MiB без GOMEMLIMIT. Установите его примерно на 80 процентов памяти, которую выделяете. Это цель, а не жёсткий лимит. |
| Режим экономии памяти | На Linux включается сам, когда памяти около 2.5 GiB или меньше; цель снижается до четверти памяти, между 192 и 384 MiB. HOLYARRS_LOW_MEMORY=1 или 0 решает принудительно. |
| Node | Для запуска не нужен. |
| Жёсткие ссылки (hardlink) | Держите загрузки и папки Медиатеки на одной файловой системе. |
См. также
Ссылка на «См. также»HolyArrs бесплатен. Если он сэкономил вам время, поставьте звезду на GitHub, станьте спонсором или угостите меня кофе.