Repository navigation
Releases: snaplyze/optimize-debian
Release list
v2026.10.21.1
Второй закрепленный выпуск: новое оформление и подробная документация, файлы сообщества и исправления, найденные при сверке документов с кодом. Все скрипты в нем проверены CI (docs/plan.md, этап «Оформление и документация 2026-10-21»).
Запуск этого выпуска (вместо main — тег):
TAG=v2026.10.21.1
bash <(curl -fsSL "https://raw.githubusercontent.com/snaplyze/optimize-debian/$TAG/optimize_vps.sh")Исправлено
-
optimize_amnezia_host.sh --kernel-backportsостанавливался на шаге ядра сdetect_debian_version: command not foundна Debian 12 и 13. Теперь версия берется из/etc/os-release, и ядро из Debian Backports ставится. -
optimize_wsl2.sh, шаг ssh-agent без пользовательского systemd:- прежде создавал
~/.bash_profile, после чего login-bash переставал читать~/.profileи~/.bashrc, и автопереход в Fish пропадал; - если целевым пользователем был root, шаг падал.
Теперь агент запускает
/etc/profile.d/wsl2-ssh-agent.shдля login-оболочек. Сокет лежит в$XDG_RUNTIME_DIRили/tmp/ssh-agent-<uid>, сниппет ничего не печатает и безопасен дляset -e. Блок прежних версий удаляется. Если терминал WSL открывался без Fish, запустите скрипт повторно с пунктом «Configure ssh-agent». - прежде создавал
-
optimize_wsl2.sh: повторный запуск в тот же день затирал копию/etc/wsl.conf. Теперь в имени копии есть время, и каждая копия остается. -
optimize_vps.shна Debian 13 печатал пустую версию ядра.
Добавлено
--helpвсех пяти скриптов печатает версию: VPS 3.0.0, Amnezia 0.3.0, мини-ПК 2.0.0, WSL2 4.1.0, upgrade 2.0.3.LICENSE(MIT) иSECURITY.md. Об уязвимостях сообщайте приватно: https://github.com/snaplyze/optimize-debian/security/advisories/new.CONTRIBUTING.md,CODE_OF_CONDUCT.md, формы issue и шаблон PR.docs/README.md— оглавление документации,docs/ARCHITECTURE.md— устройство репозитория,CHANGELOG.md.
Документация
-
README переоформлен:
- баннер для светлой и темной темы;
- таблица выбора скрипта с версиями;
- быстрый старт по скриптам;
- схема работы и матрица возможностей.
Команды запуска те же.
-
Пять руководств приведены к одной структуре и сверены с кодом: параметры, шаги в порядке исполнения, файлы, которые пишет скрипт, и их откат, проверка после запуска, повторный запуск, решение проблем. Исправлены прежние неточности, в том числе команды отката ядра Backports и UFW.
Проверки
- Тест ссылок и якорей во всех документах.
- Пробелы в конце строк проверяются во всем дереве.
Не проверено: настоящая WSL2, установка ядра Backports на настоящей Debian 12, полный интерактивный прогон на целевой машине. Проверки шли на моках и в контейнерах Debian 12/13.
v2026.10.21
Первый закрепленный выпуск. Все скрипты в нем проверены CI. После первоначальной публикации 2026-09-04 код прошел аудит, и найденные задачи закрыты (docs/plan.md).
Запуск этого выпуска (вместо main — тег):
TAG=v2026.10.21
bash <(curl -fsSL "https://raw.githubusercontent.com/snaplyze/optimize-debian/$TAG/optimize_vps.sh")Безопасность
- SSH-закалка VPS, мини-ПК и Amnezia пишется в drop-in
00-*.conf. sshd берет первое прочитанное значение, поэтому, например,50-cloud-init.confсPasswordAuthentication yesее больше не отменяет. Послеsshd -tдействующие значения сверяются черезsshd -T; если они расходятся, закалка откатывается без перезапуска SSH. Файл99-*.confпрежних версий удаляется. - Starship, fnm, Go, gum и
cuda-keyringустанавливаются только из закрепленной версии, проверенной по SHA-256. Ключи Docker и NVIDIA принимаются только с закрепленным отпечатком. Загрузки идут только по HTTPS, с пределом времени, во временные каталоги, которые удаляются после установки. - sudoers записывается атомарно, с проверкой
visudo -cf. Мини-ПК закаляет SSH только послеsshd -t, с откатом. Samba открыт только для локальной сети и принимает только NTLMv2. - Amnezia не создает пользователя, пока не найден источник SSH-ключей. Порядок изменений SSH и firewall не отрезает текущую сессию.
Надежность
- Шаги VPS, мини-ПК и WSL2 начинаются только после полной загрузки скрипта.
--helpработает без root. - Общие APT-хелперы: ошибка установки останавливает шаг, ядро из Debian Backports ставится, ожидание блокировки dpkg не зависит от
fuser,apt-get updateвыполняется один раз. - Синхронизация времени проверяется по
NTPSynchronized. Уже установленная служба времени сохраняется. - Повторный запуск не плодит конфигурацию и не пересоздает swap-файл нужного размера. Неудачный
swapoffне останавливает скрипт и не удаляет активный файл. Конфиги Fish и Bash общие,.bashrcкопируется только один раз, если он чужой. - Прерванная загрузка gum не оставляет временный каталог.
Обновление до Debian 13 (upgrade-to-debian13.sh)
- Источники старого релиза убираются, включая официальный
.listс опциями[...], в которых есть пробелы. - Бэкап проверяется, порты SSH и права файлов источников сохраняются.
Документация и CI
- Значения sysctl, read-ahead и
dirty_ratioв документах приведены к коду. Версия WSL2 — 4.1.0. - CI на self-hosted раннере;
mainпринимает только PR с пройденной проверкойchecks.
Не проверено: arm64, WSL2 с GPU, полный интерактивный прогон на настоящей машине (проверки шли на контейнерах Debian 12/13).