Repository navigation
Releases: KiboMibo/mini-repo
Releases · KiboMibo/mini-repo
Release list
apprepo v0.1.0
Первый публичный релиз apprepo — своего репозитория бинарников приложений.
Один бинарник на Go: веб-интерфейс и JSON API, метаданные в SQLite, файлы на диске. Без Docker, внешней базы и CGO — драйвер SQLite работает на WASM через wazero, поэтому сборка под любую платформу обходится без тулчейнов.
Что умеет
- Загрузка версий — semver с канонизацией, проверка SHA-256, запрет перезаписи существующего файла. Публикация атомарна: временный файл, затем эксклюзивный
os.Link, проигравший гонку получает 409, а файл победителя не трогается. - Стабильные ссылки —
/download/{app}/{version}, latest резолвится на лету (максимум semver или закреплённая версия), отдельного поля в БД нет. - Платформа версии — определяется из самого файла по заголовку: ELF, Mach-O, PE, fat Mach-O. Читается меньше килобайта независимо от размера файла, поэтому 256-мегабайтная «бомба» стоит десятки микросекунд. Архив определить нечего — для него платформа указывается явно, иначе загрузка отклоняется.
- Роли —
deployer<developer<maintainer<admin. Матрица прав живёт в одном месте, роль читается из БД на каждом запросе, поэтому смена роли действует немедленно.deployerнамеренно не пускают в веб-интерфейс: это машинная роль для CI и прямых ссылок. - Управление учётками — через API, интерфейс и CLI. Последнего активного администратора нельзя разжаловать, заблокировать или удалить; смена пароля и блокировка мгновенно гасят все сессии пользователя.
- Аварийный вход — группа команд
apprepo userработает с базой напрямую, без сессии: в установку, куда некому войти, можно попасть.
Установка
Скачайте архив для своей платформы, распакуйте и запустите:
tar xzf apprepo_v0.1.0_linux_amd64.tar.gz
./apprepo user add admin # пароль спросит интерактивно
./apprepo serve -data-dir /opt/appsЮнит systemd, конфигурация через флаги и переменные окружения, примеры curl — в README. Описание API с таблицей «маршрут → требуемое право» — в docs/api.md.
Проверьте контрольную сумму — файл SHA256SUMS приложен к релизу.
Сборки
| Платформа | Файл |
|---|---|
| Linux x86-64 | apprepo_v0.1.0_linux_amd64.tar.gz |
| Linux ARM64 | apprepo_v0.1.0_linux_arm64.tar.gz |
| macOS Intel | apprepo_v0.1.0_darwin_amd64.tar.gz |
| macOS Apple Silicon | apprepo_v0.1.0_darwin_arm64.tar.gz |
| Windows x86-64 | apprepo_v0.1.0_windows_amd64.zip |
Версию сборки печатает apprepo -version.
Что стоит знать
- Ограничения частоты входа нет. Нижняя граница пароля в 8 байт — единственное, что стоит между установкой и перебором. Не выставляйте наружу без обратного прокси, который это закрывает.
- Отката миграций нет. Перед обновлением существующей установки снимите копию файла базы:
store.Openдосоздаёт недостающие колонки автоматически и назад их не убирает. - Загрузка архива теперь требует явной платформы. Определить её в
.tar.gzили.zipнечего, поэтому без параметра запрос отклоняется с 400 и перечнем допустимых значений; для платформо-независимого артефакта есть значениеany.
Нулевая мажорная версия означает ровно то, что означает: ломающие изменения возможны без смены мажора.