v0.23.1

sleep3r/mtproto.zigv0.23.1May 11, 2026by sleep3r

Upgrading?

AI Summary

Patch release fixing one-liner bootstrap installation on fresh Ubuntu images by automatically installing the required `minisign` tool if missing.

Key Highlights

  • Bootstrap script now installs `minisign` via available package managers
  • Support for multiple package managers (apt, dnf, yum, apk, pacman)
  • Secure mode remains the default behavior

Full Release Notes

<details open>
<summary>🇷🇺 Что нового (RU)</summary>

## Что решает этот релиз

`v0.23.1` - небольшой patch-релиз для one-liner bootstrap install.

После включения обязательной проверки release assets через minisign безопасный bootstrap-путь стал зависеть от наличия `minisign` на целевой машине. На обычной установленной системе это часто уже есть или легко ставится позже через `mtbuddy`, но на свежей minimized Ubuntu 24.04 пакет отсутствует по умолчанию.

В результате команда:

```bash
curl -fsSL https://raw.githubusercontent.com/sleep3r/mtproto.zig/main/deploy/bootstrap.sh | sudo bash
```

могла скачать release metadata, найти `v0.23.0`, скачать `mtbuddy`, checksum и signature, а потом остановиться до проверки подписи:

```text
minisign is required for signature verification (use --insecure or MTPROTO_INSECURE=1 to bypass)
```

Это было неправильное поведение для fresh-host сценария: bootstrap сам должен подготовить минимальную зависимость для безопасной проверки, а не подталкивать оператора к `--insecure`.

> [!IMPORTANT]
> Security model не ослаблен. По умолчанию checksum по-прежнему проверяется через minisign-подписанный `.sha256`, а unsigned mode всё ещё требует явного `--insecure` или `MTPROTO_INSECURE=1`.

> [!NOTE]
> Обновление полезно прежде всего для новых установок через one-liner. Уже установленные хосты, где `mtbuddy install` / `mtbuddy update` работают, не требуют изменений конфига.

## Что изменено

### Bootstrap сам ставит minisign ([#253](https://github.com/sleep3r/mtproto.zig/pull/253))

- `deploy/bootstrap.sh` теперь в secure mode проверяет наличие `minisign` до скачивания/проверки артефактов.
- Если `minisign` отсутствует, bootstrap пытается установить его через доступный package manager:
  - `apt-get` для Ubuntu/Debian;
  - `dnf`;
  - `yum`;
  - `apk`;
  - `pacman`.
- Для Ubuntu/Debian используется `apt-get install -y --no-install-recommends minisign`, чтобы не подтягивать лишний мусор на minimized образах.
- После установки bootstrap повторно проверяет, что `minisign` действительно появился в `PATH`.
- Старый hard-fail оставлен только для систем без поддерживаемого package manager или когда установка пакета реально не удалась.

### `--insecure` остался явным обходом

- `--insecure` и `MTPROTO_INSECURE=1` не изменились.
- В insecure mode bootstrap не устанавливает `minisign` и пропускает signature verification, как и раньше.
- Secure mode остаётся поведением по умолчанию.

## Проверено

- `bash -n deploy/bootstrap.sh`
- `git diff --check`

</details>

---

<details>
<summary>🇬🇧 Release notes (EN)</summary>

## What this release addresses

`v0.23.1` is a small patch release for the one-liner bootstrap installer.

After signed release verification became mandatory by default, the safe bootstrap path depended on `minisign` already being available on the target machine. On a normal long-lived host that is often already true, or `mtbuddy` can install it later. On a fresh minimized Ubuntu 24.04 image, however, `minisign` is not installed by default.

As a result, this command:

```bash
curl -fsSL https://raw.githubusercontent.com/sleep3r/mtproto.zig/main/deploy/bootstrap.sh | sudo bash
```

could fetch release metadata, resolve `v0.23.0`, download `mtbuddy`, checksum, and signature files, then stop before signature verification with:

```text
minisign is required for signature verification (use --insecure or MTPROTO_INSECURE=1 to bypass)
```

That was the wrong behavior for a fresh-host bootstrap flow: the script should install the minimal verification dependency itself instead of nudging operators toward `--insecure`.

> [!IMPORTANT]
> The security model is not weakened. By default, the checksum is still verified through a minisign-signed `.sha256` file, and unsigned mode still requires explicit `--insecure` or `MTPROTO_INSECURE=1`.

> [!NOTE]
> This release mainly matters for new one-liner installs. Already installed hosts where `mtbuddy install` / `mtbuddy update` work do not need config changes.

## What changed

### Bootstrap installs minisign when needed ([#253](https://github.com/sleep3r/mtproto.zig/pull/253))

- `deploy/bootstrap.sh` now checks for `minisign` in secure mode before artifact verification.
- If `minisign` is missing, bootstrap tries to install it through the available package manager:
  - `apt-get` for Ubuntu/Debian;
  - `dnf`;
  - `yum`;
  - `apk`;
  - `pacman`.
- Ubuntu/Debian uses `apt-get install -y --no-install-recommends minisign` to keep minimized images lean.
- After installation, bootstrap verifies that `minisign` is actually available in `PATH`.
- The hard failure remains only for systems without a supported package manager or where package installation really failed.

### `--insecure` remains an explicit bypass

- `--insecure` and `MTPROTO_INSECURE=1` behavior is unchanged.
- In insecure mode, bootstrap does not install `minisign` and skips signature verification as before.
- Secure mode remains the default.

## Verified

- `bash -n deploy/bootstrap.sh`
- `git diff --check`

</details>

## Changelog

* fix: install minisign during bootstrap ([#253](https://github.com/sleep3r/mtproto.zig/pull/253)) ([91728de](https://github.com/sleep3r/mtproto.zig/commit/91728de163e9e3ea0eabfa628ccfd6472010c4ff))
* chore(main): release 0.23.1 ([#254](https://github.com/sleep3r/mtproto.zig/pull/254)) ([d6cf252](https://github.com/sleep3r/mtproto.zig/commit/d6cf25225af628e86729a9041362ef3ec0d9a56d))

Related Repositories