Ты ставишь цель: “хочу, чтобы на моём ноуте/сервере были Docker, Nginx, PostgreSQL, открыты нужные порты, создан пользователь с ключом, и всё это работало одинаково каждый раз”. В Debian/Arch/macOS ты делаешь это руками: ставишь пакеты, правишь конфиги, включаешь сервисы, добавляешь себя в группы, настраиваешь файрвол. Через месяц забываешь, что именно делал, и на новой машине всё повторяется с нуля.
В NixOS ты один раз описываешь желаемое состояние в файле. Потом выполняешь один rebuild. Всё. Система сама приводит себя к этому состоянию: установит пакеты, включит сервисы, создаст пользователя, откроет порты, разложит конфиги — без твоих ручных команд. Если что-то пошло не так — откат за один шаг.
- Почему так проще
- Декларативность: один файл — один источник правды о системе.
- Воспроизводимость: пиннинг каналов через flakes, одинаковые версии везде.
- Атомарные обновления и откаты: генерации системы переключаются без “полупочинки”.