РазделОбновление

Обновление панели

Версия выпускается тегом; всё остальное делает CI. Тег v0.8.10 собирает .deb и .rpm под amd64 и arm64, подписывает список контрольных сумм ключом ed25519 из секрета репозитория и публикует релиз; текст аннотированного тега становится описанием релиза.

make keygen                  # один раз: ключ подписи (приватный — в секрет MONOPANEL_RELEASE_KEY)
make release VERSION=0.8.10  # тег + push, дальше CI собирает и публикует
make packages VERSION=0.8.10 # то же локально, без публикации

На сервере:

mp update trust --key <публичный ключ>   # пишется в config.yaml, доступен только root
mp update settings --repo owner/name     # --token-stdin для приватного репозитория
mp update                                # что установлено и что доступно
mp update apply                          # скачать, проверить, установить, перезапуститься

Проверка идёт по расписанию (по умолчанию раз в сутки), --auto-apply ставит обновление без участия человека. Устанавливает не сама панель: агент запускает transient-юнит monopanel-update.service, который переживает перезапуск API и агента и возвращает прежний бинарник, если новая версия не отвечает. Пока задан ключ, неподписанный релиз не установится. Медленный канал не помеха: у загрузки пакета нет общего таймаута, обрывается только застывший поток.

Исходник страницы на GitHub