Перейти к содержимому

Портативная сборка

Настройка

Запускайте HolyArrs как обычную программу на Linux или Windows, без Docker. Docker остаётся основным способом запуска.

  • Python 3, Git и Docker на компьютере для сборки.
  • Заполненный кэш модулей Go после обычной сборки проекта и зависимости фронтенда, установленные по app/frontend/package-lock.json.
  • Собранное веб-приложение в коммите. Сборка берёт только исходный код из коммита; правки вне коммита в неё не попадают.
  1. Из рабочей копии соберите архивы:

    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.

  2. Сверьте архив с SHA256SUMS.

  3. Распакуйте его в новую папку. Держите программу и конфигурацию в разных папках.

  4. Запустите её со своим путём к конфигурации:

    Terminal window
    ./holyarrs -config /srv/holyarrs/config -addr :6262

    В Windows PowerShell:

    Terminal window
    .\holyarrs.exe -config 'C:\HolyArrs\config' -addr ':6262'
  5. Откройте http://your-server:6262. Появится мастер первого запуска. Сразу создайте учётную запись владельца; владельцем становится первый посетитель.

От какого пользователя запускать

Ссылка на «От какого пользователя запускать»

Запускайте HolyArrs под отдельной учётной записью с правами на запись только в конфигурацию и ваши медиа.

  • От root вне контейнера, без PUID и PGID, он останавливается с сообщением «started as root outside a container» (запущен от root вне контейнера).
  • Если PUID и PGID заданы, он передаёт папку конфигурации этому пользователю и переключается на него.
  • В Windows защитите папку конфигурации правом NTFS для этой учётной записи.

Архив не устанавливает службу. Настройте автоматический перезапуск и жёсткие лимиты памяти в своём менеджере служб (systemd, NSSM, Task Scheduler). Перезапуск из приложения и восстановление резервной копии завершают программу и ждут, что её запустят снова.

Обновление и возврат к прежней версии

Ссылка на «Обновление и возврат к прежней версии»
  1. Проверьте новый архив до того, как остановите приложение.
  2. Остановите HolyArrs и скопируйте всю папку конфигурации вместе с мастер-ключом. Или сделайте резервную копию в приложении и храните её ключ отдельно.
  3. Распакуйте новую программу в другую папку. Сохраните старую программу и старую копию конфигурации.
  4. Запустите новую программу на своей конфигурации. Вы должны суметь войти, а /health должен показать running.

См. Резервные копии.

Признак проблемы Причина Решение
«started as root outside a container» Запущено от root Запустите под отдельным пользователем или задайте PUID и PGID.
Приложение завершается после восстановления Восстановление подготавливает данные и завершается с кодом 75 Запустите его снова, чтобы применить их. Настройте менеджер служб на перезапуск.
HTTPS-запросы не проходят на Linux Нет системных сертификатов CA Установите их.
Сборка сообщает, что вывод уже существует Существующие папки вывода не принимаются Выберите новую папку.
Параметры сборки
Параметр Что делает По умолчанию
--targets Список платформ для сборки через запятую linux-amd64,linux-arm64,linux-armv7,windows-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, станьте спонсором или угостите меня кофе.