Добро пожаловать на страницу проекта NiceOS. Мы — команда инженеров и специалистов в области Linux и инфраструктурного ПО, объединившихся вокруг идеи создать свободный, стабильный, предсказуемый и ориентированный на серверные окружения дистрибутив. NiceOS задуман как российская бесплатная альтернатива классическим корпоративным решениям, вроде CentOS в его прежней модели, и призван удовлетворить потребности тех, кто ценил длительную поддержку, минимализм и прозрачные процессы обновлений.

Ниже мы подробно расскажем о том, как возникла идея NiceOS, какие ценности легли в основу дистрибутива, как мы выстроили процессы сборки и тестирования, какие инструменты используем, и почему считаем, что NiceOS может пригодиться компаниям и командам, ищущим предсказуемую и гибкую платформу для своих серверных задач.

Миссия и Идеология

Поворотным моментом стало прекращение привычной модели поддержки CentOS. Многие инфраструктуры, полагавшиеся на стабильность и длительный жизненный цикл, столкнулись с необходимостью выбора: переходить на платные решения, использовать другие дистрибутивы или строить что-то своё. Мы выбрали третий путь — создать дистрибутив, который сочетал бы достоинства «классического» CentOS (предсказуемость, стабильные релизы, длительная поддержка) с возможностями локальной адаптации под определённые сценарии.

Главная идея NiceOS:

Предоставить стабильную серверную платформу с длительными (LTS) ветками. Обеспечить прозрачные и воспроизводимые процессы сборки пакетов. Избавиться от лишних зависимостей, минимизировав окружение до действительно необходимых компонентов.
Встроить механизмы безопасности (SELinux, AppArmor) изначально, упрощая их использование. Предложить российскую альтернативу — бесплатный дистрибутив, не зависящий от внешних политик и лицензий, и учитывающий локальные потребности компаний.

Для Кого Предназначен NiceOS

NiceOS может заинтересовать:
  • Команды, которые устали от непредсказуемых изменений в дистрибутивах и хотят сами контролировать обновления.
  • Инженеров и администраторов, использовавших CentOS и ищущих аналог с понятной политикой поддержки.
  • Проекты, нуждающиеся в минималистичной базе для сборки контейнерных образов, CI/CD конвейеров и высоконагруженных сервисов.
  • Компании, стремящиеся к независимости от зарубежных дистрибутивов и готовые оценить локальное решение.
  • Тех, кому важна безопасность «из коробки» благодаря встроенным профилям SELinux/AppArmor и прозрачному процессу обновлений безопасности.

Принципы и Ценности

При создании NiceOS мы руководствуемся несколькими ключевыми принципами:

Минимализм: Никакого перегруженного окружения по умолчанию. В базовой системе — ядро, системные библиотеки, инструменты сборки, сетевые утилиты, шифрование, системный менеджер и несколько необходимых языков сценариев. Всё остальное устанавливается при необходимости.

Предсказуемость и Долгосрочная Поддержка: Мы выделяем стабильные ветки и LTS-линии, где пакеты замораживаются на несколько лет, а обновления вносятся только для критических исправлений. Это напоминает классическую модель, в которой ценили CentOS, и упрощает долгосрочное планирование.

Прозрачная Сборка и Автоматизация: Весь процесс сборки пакетов, интеграционного тестирования, подписывания и размещения в репозиториях интегрирован с CI/CD. Инструкции, версии, контрольные суммы, рецепты сборки (spec-файлы) — всё хранится в Git, доступном для анализа. Автоматизация снижает риск человеческих ошибок.

Безопасность в Основании: SELinux и AppArmor включены изначально. Мы актуализируем пакеты при появлении CVE, оперативно патчим уязвимости. Минимализм снижает поверхность атаки, а автоматизированное тестирование позволяет быстро вылавливать проблемы.

Локальная Ориентация и Бесплатность: Мы предоставляем NiceOS бесплатно, без подписок и скрытых платежей. Цель — обеспечить доступность инструмента для российских компаний и команд, желающих иметь предсказуемую базу для своих проектов.

История Возникновения

История началась с изменений в политике CentOS, когда «классическая» ветка поддержки была пересмотрена. Внутри нашей команды, управлявшей различными проектами и CI/CD конвейерами, встал вопрос: на что переключаться? Переход на платный продукт не всегда рационален, а сторонние дистрибутивы не всегда гарантируют нужную длительность поддержки или предсказуемость.

Попытки использовать универсальные решения натыкались на недостаток контроля. В итоге мы решили выстроить собственный дистрибутив, взяв RPM и схожие с Fedora/RHEL/CentOS инструменты, но адаптировав их под нужды локальной среды и применив строгую политику обновлений и тестов. Несколько пилотных проектов показали, что идея жизнеспособна. Так оформился проект NiceOS.

Как Мы Работали Над Проектом

С самого начала мы стремились к методичному подходу:

  • Создали репозиторий с рецептами сборки пакетов (spec-файлы, патчи, контрольные суммы).
  • Настроили CI/CD-конвейеры для каждого изменения: от загрузки исходников до интеграционных тестов на поднятых виртуальных машинах.
  • Внедрили статические проверки, тестирование встроенных пакетных тестов (make check при сборке), а также интеграционные сценарии, запускающие типовые сервисы (Nginx, PostgreSQL, OpenSSL/TLS проверку) на вновь собранных пакетах.
  • Организовали подписание пакетов GPG-ключом дистрибутива с хранением секретов в зашифрованном хранилище.
  • Прописали чёткие политики: ветка testing для новых пакетов, stable для проверенных временем версий и LTS для долгосрочной стабильности. Пакет не попадает в stable, пока не пройдёт оговорённый период тестирования без инцидентов.

В результате выстроилась чёткая цепочка: Изменения в spec-файле → CI/CD тесты → тестовый репозиторий → ожидание и проверка на тестовых стендах → продвижение в стабильный репозиторий → при необходимости — фиксация в LTS.

Инструменты и Технологии

Для сборки пакетов мы используем RPM-формат и инструменты вроде rpmbuild и mock для создания изолированных окружений. При этом сам процесс сборки обёрнут в пайплайны GitLab CI (или Jenkins, по ситуации), а контейнеризация (Docker/Podman) гарантирует воспроизводимость.

mock позволяет собрать пакет в чистом окружении, гарантируя, что никакие лишние зависимости не повлияют на результат. createrepo_c формирует репозитории для dnf/yum. GPG подписывает пакеты, повышая доверие к содержимому репозиториев.

Для интеграционных тестов используем Ansible, Terraform или Vagrant для подъёма временных VM/контейнеров, в которые устанавливаем свежесобранные пакеты и проверяем их работу в «боевых» условиях. Статические анализаторы, скрипты контроля зависимостей и мониторинг сборочного времени дополняют картину.

Длительная Поддержка и Обновления

Предположим, у вас есть долгосрочный проект, который нельзя ломать резкими апдейтами. Вы выбираете LTS-ветку NiceOS: она стабилизирована, версии пакетов заморожены. В течение нескольких лет вы получаете только патчи безопасности и критические фикс-пакеты, без изменения API или ABI.

Если же вам нужно более актуальное ПО, можно следить за стабильной веткой, где обновления выходят чаще, но всё ещё предсказуемо, с подробными changelog и тестами. Для экспериментов есть testing-ветка, но она не для продакшна.

Такая модель напоминает классические LTS-дистрибутивы, предоставляя выбор между консервативной стабильностью и умеренным обновлением.

Безопасность «Из Коробки»

SELinux и AppArmor — это мощные инструменты контроля доступа, часто вызывающие сложности при постустановочной настройке. В NiceOS они уже встроены. Мы проверяем совместимость пакетов с этими профилями, стремимся включить готовые политики для типовых сервисов. Таким образом, администратор не тратит часы на интеграцию механизма безопасности — всё уже настроено на базовом уровне.

При обнаружении критической уязвимости (CVE), команда быстро подготавливает патч, запускает сборку, тесты, проверяет, что обновление не ломает зависимые сервисы, и затем выкладывает обновлённый пакет в репозиторий. Таким образом, инфраструктура получает актуальную защиту в кратчайшие сроки.

Документация и Прозрачность

Мы много внимания уделяем документированию процессов:

  • Описываем каждый этап CI/CD, указываем, какие тесты проходят пакеты. Предоставляем инструкции по установке, настройке сети, управлению службами, интеграции с CI/CD-пайплайнами, контейнеризацией и оркестрацией (Docker, Kubernetes).
  • Публикуем changelog для каждого релиза, чтобы администратор знал, почему обновился пакет, какие CVE закрыты, что изменилось.
  • Подробные технические гайды помогают быстро освоиться с дистрибутивом, не тратить время на догадки. Мы стремимся к тому, чтобы любой новый пользователь мог понять логику обновлений, принципы формирования репозиториев и методики тестирования.

Практический Опыт и Результаты

Внутренние пилотные проекты показали, что NiceOS хорошо вписывается в сценарии, где нужно собирать контейнерные образы для микросервисов: минималистичная база уменьшает размер образов и ускоряет сборку. В CI/CD конвейерах предсказуемость версий инструментов снижает риск спонтанных сбоев тестов.

Для высоконагруженных серверов приложений, особенно там, где ранее использовался CentOS, переход на NiceOS не вызвал серьёзных проблем. Администраторы отметили знакомую архитектуру, предсказуемое поведение, отсутствие резких изменений. Настройка SELinux/AppArmor оказалась проще, так как всё было готово сразу.

Российская Альтернатива и Зачем Это Нужно

На фоне изменения мирового ландшафта дистрибутивов иметь локальный проект, развиваемый внутри страны, даёт независимость от внешних политик и решений. Бесплатность снимает вопрос лицензий и подписок. Возможность адаптировать дистрибутив под локальные криптоалгоритмы или отраслевые стандарты упрощает жизнь российским компаниям.

NiceOS — не замена всем дистрибутивам сразу, а точечное решение для тех, кто ценит стабильность, контроль и прозрачность. Мы не утверждаем, что это единственно верный выбор, но для определённых сценариев NiceOS может стать оптимальным фундаментом.

Обратная Связь и Сообщество

Мы готовы к взаимодействию с сообществом. Если у вас есть идеи по улучшению, новые пакеты, которые стоит включить, или вы нашли ошибку — мы открыты для pull-request, тикетов в баг-трекере и обсуждений. В будущем планируем публиковать часть сборочных рецептов и документации в открытый доступ, чтобы сторонние специалисты могли лучше понять, как устроен NiceOS изнутри.

Обратная связь помогает нам совершенствовать тесты, добавлять нужные фичи, улучшать документацию. Чем активнее станет сообщество, тем более гибким и качественным будет дистрибутив.

Планы на Будущее

Мы не стоим на месте. В ближайших планах:

  • Расширение автотестов, включение более сложных сценариев нагрузочного тестирования.
  • Исследование интеграции отечественных криптоалгоритмов для соответствия локальным нормативам.
  • Создание удобных инструментов миграции с CentOS и других дистрибутивов, чтобы переход проходил ещё более безболезненно.
  • Улучшение документации по настройке и оптимизации SELinux/AppArmor-профилей.
  • Цель — сделать NiceOS ещё надёжнее, понятнее и удобнее в эксплуатации, чтобы он стал привычным выбором для долгосрочных инфраструктур.

Заключение

NiceOS — результат нашего стремления к предсказуемой, безопасной и долговечной серверной платформе, доступной без лицензионных платежей и способной адаптироваться под локальные нужды. Мы начали с желания заменить утраченную стабильность CentOS и пришли к созданию дистрибутива с чёткими принципами, прозрачными процессами и акцентом на минимализм и безопасность.

Команда NiceOS продолжит работу над проектом, приветствуя идеи, предложения и обратную связь от сообщества. Мы надеемся, что дистрибутив окажется полезным как для компаний, ищущих российскую альтернативу корпоративным решениям, так и для инженерных команд, стремящихся к максимальному контролю над своей инфраструктурой.

Добро пожаловать в мир NiceOS — стабильный фундамент для долгосрочных и критически важных проектов.

Версии базового софта | NiceOS 5.1(2)

Ниже представлен список ключевых пакетов, используемых в сборках NiceOS, с указанием версий, ссылок для загрузки, контрольных сумм MD5 и кратких описаний. Эти пакеты составляют основу инфраструктуры дистрибутива. Все они проходят наш CI/CD конвейер, включающий тестирование, проверку целостности и интеграционные сценарии.

Пакет и Версия Описание, Домашняя страница, Загрузка и MD5
Acl 2.3.2 (363 KB)

Описание: Инструменты для управления списками контроля доступа (ACL) в POSIX-системах.

Home page: https://savannah.nongnu.org/projects/acl
Download: acl-2.3.2.tar.xz
MD5: 590765dee95907dbc3c856f7255bd669
Attr 2.5.2 (484 KB)

Описание: Утилиты для работы с расширенными атрибутами файлов.

Home page: https://savannah.nongnu.org/projects/attr
Download: attr-2.5.2.tar.gz
MD5: 227043ec2f6ca03c0948df5517f9c927
Autoconf 2.72 (1,360 KB)

Описание: Инструмент для автоматической генерации скриптов configure.

Home page: https://www.gnu.org/software/autoconf/
Download: autoconf-2.72.tar.xz
MD5: 1be79f7106ab6767f18391c5e22be701
Automake 1.17 (1,614 KB)

Описание: Инструмент для автоматической генерации Makefile на основе шаблонов.

Home page: https://www.gnu.org/software/automake/
Download: automake-1.17.tar.xz
MD5: 7ab3a02318fee6f5bd42adfc369abf10
Bash 5.2.32 (10,697 KB)

Описание: Bourne-Again Shell — основная оболочка в большинстве дистрибутивов Linux.

Home page: https://www.gnu.org/software/bash/
Download: bash-5.2.32.tar.gz
MD5: f204835b2e06c06e37b5ad776ff907f4
Bc 6.7.6 (463 KB)

Описание: Язык для арифметических вычислений произвольной точности.

Home page: https://git.gavinhoward.com/gavin/bc
Download: bc-6.7.6.tar.xz
MD5: a47aa5e4e7395fbcd159a9228613b97b
Binutils 2.43.1 (27,514 KB)

Описание: Набор инструментов для работы с двоичными файлами (ассемблер, линковщик и др.).

Home page: https://www.gnu.org/software/binutils/
Download: binutils-2.43.1.tar.xz
MD5: 9202d02925c30969d1917e4bad5a2320
Bison 3.8.2 (2,752 KB)

Описание: Генератор синтаксических анализаторов (замена Yacc).

Home page: https://www.gnu.org/software/bison/
Download: bison-3.8.2.tar.xz
MD5: c28f119f405a2304ff0a7ccdcc629713
Bzip2 1.0.8 (792 KB)

Описание: Высококачественный сжатие данных (bzip2 формат).

Download: bzip2-1.0.8.tar.gz
MD5: 67e051268d0c475ea773822f7500d0e5
Check 0.15.2 (760 KB)

Описание: Фреймворк модульного тестирования для C.

Home page: https://libcheck.github.io/check
Download: check-0.15.2.tar.gz
MD5: 50fcafcecde5a380415b12e9c574e0b2
Coreutils 9.5 (5,867 KB)

Описание: Основные утилиты для работы с файлами, шеллом и текстом (ls, cp, mv, rm).

Home page: https://www.gnu.org/software/coreutils/
Download: coreutils-9.5.tar.xz
MD5: e99adfa059a63db3503cc71f3d151e31
Expat 2.6.2 (474 KB)

Описание: Библиотека XML-парсера с открытым исходным кодом.

Home page: https://libexpat.github.io/
Download: expat-2.6.2.tar.xz
MD5: 0cb75c8feb842c0794ba89666b762a2d
Expect 5.45.4 (618 KB)

Описание: Автоматизация взаимодействия с текстовыми интерфейсами.

Home page: https://core.tcl.tk/expect/
Download: expect-5.45.4.tar.gz
MD5: 00fce8de158422f5ccd2666512329bd2
File 5.45 (1,218 KB)

Описание: Утилита для определения типа файлов.

Home page: https://www.darwinsys.com/file/
Download: file-5.45.tar.gz
MD5: 26b2a96d4e3a8938827a1e572afd527a
Findutils 4.10.0 (2,189 KB)

Описание: Утилиты для поиска файлов (find, locate и др.).

Home page: https://www.gnu.org/software/findutils/
Download: findutils-4.10.0.tar.xz
MD5: 870cfd71c07d37ebe56f9f4aaf4ad872
Flex 2.6.4 (1,386 KB)

Описание: Генератор лексических анализаторов.

Home page: https://github.com/westes/flex
Download: flex-2.6.4.tar.gz
MD5: 2882e3179748cc9f9c23ec593d6adc8d
Flit-core 3.9.0 (41 KB)

Описание: Минималистичный инструмент для управления Python-пакетами.

Home page: https://pypi.org/project/flit-core/
Download: flit_core-3.9.0.tar.gz
MD5: 3bc52f1952b9a78361114147da63c35b
Gawk 5.3.0 (3,356 KB)

Описание: Программируемый обработчик текста, часть семейства AWK.

Home page: https://www.gnu.org/software/gawk/
Download: gawk-5.3.0.tar.xz
MD5: 97c5a7d83f91a7e1b2035ebbe6ac7abd
GCC 14.2.0 (90,144 KB)

Описание: GNU Compiler Collection — компилятор для C, C++, Fortran и др.

Home page: https://gcc.gnu.org/
Download: gcc-14.2.0.tar.xz
MD5: 2268420ba02dc01821960e274711bde0
GDBM 1.24 (1,168 KB)

Описание: GNU Database Manager — библиотека для работы с хеш-таблицами.

Home page: https://www.gnu.org/software/gdbm/
Download: gdbm-1.24.tar.gz
MD5: c780815649e52317be48331c1773e987
Gettext 0.22.5 (10,031 KB)

Описание: Утилита для интернационализации приложений.

Home page: https://www.gnu.org/software/gettext/
Download: gettext-0.22.5.tar.xz
MD5: 3ae5580599d84be93e6213930facb2db
Glibc 2.40 (18,313 KB)

Описание: Стандартная библиотека C для GNU/Linux.

Home page: https://www.gnu.org/software/libc/
Download: glibc-2.40.tar.xz
MD5: b390feef233022114950317f10c4fa97
GMP 6.3.0 (2,046 KB) Home page: https://www.gnu.org/software/gmp/
Download: gmp-6.3.0.tar.xz
MD5: 956dc04e864001a9c22429f761f2c283
Gperf 3.1 (1,188 KB) Home page: https://www.gnu.org/software/gperf/
Download: gperf-3.1.tar.gz
MD5: 9e251c0a618ad0824b51117d5d9db87e
Grep 3.11 (1,664 KB) Home page: https://www.gnu.org/software/grep/
Download: grep-3.11.tar.xz
MD5: 7c9bbd74492131245f7cdb291fa142c0
Groff 1.23.0 (7,259 KB) Home page: https://www.gnu.org/software/groff/
Download: groff-1.23.0.tar.gz
MD5: 5e4f40315a22bb8a158748e7d5094c7d
GRUB 2.12 (6,524 KB) Home page: https://www.gnu.org/software/grub/
Download: grub-2.12.tar.xz
MD5: 60c564b1bdc39d8e43b3aab4bc0fb140
Gzip 1.13 (819 KB) Home page: https://www.gnu.org/software/gzip/
Download: gzip-1.13.tar.xz
MD5: d5c9fc9441288817a4a0be2da0249e29
Iana-Etc 20240806 (590 KB) Home page: https://www.iana.org/protocols
Download: iana-etc-20240806.tar.gz
MD5: ea3c37c00d22f1159fc3b7d988de8476
Inetutils 2.5 (1,632 KB) Home page: https://www.gnu.org/software/inetutils/
Download: inetutils-2.5.tar.xz
MD5: 9e5a6dfd2d794dc056a770e8ad4a9263
Intltool 0.51.0 (159 KB) Home page: https://freedesktop.org/wiki/Software/intltool
Download: intltool-0.51.0.tar.gz
MD5: 12e517cac2b57a0121cda351570f1e63
IPRoute2 6.10.0 (900 KB) Home page: https://www.kernel.org/pub/linux/utils/net/iproute2/
Download: iproute2-6.10.0.tar.xz
MD5: 6282e47de9c5b230e83537fba7181c9c
Jinja2 3.1.4 (235 KB) Home page: https://jinja.palletsprojects.com/en/3.1.x/
Download: jinja2-3.1.4.tar.gz
MD5: 02ca9a6364c92e83d14b037bef4732bc
Kbd 2.6.4 (1,470 KB) Home page: https://kbd-project.org/
Download: kbd-2.6.4.tar.xz
MD5: e2fd7adccf6b1e98eb1ae8d5a1ce5762
Kmod 33 (503 KB) Home page: https://github.com/kmod-project/kmod
Download: kmod-33.tar.xz
MD5: c451c4aa61521adbe8af147f498046f8
Less 661 (634 KB) Home page: https://www.greenwoodsoftware.com/less/
Download: less-661.tar.gz
MD5: 44f54b6313c5d71fa1ac224d8d84766a
Libcap 2.70 (187 KB) Home page: https://sites.google.com/site/fullycapable/
Download: libcap-2.70.tar.xz
MD5: df0e20c6eeca849347b87d5d6a8870c0
Libffi 3.4.6 (1,360 KB) Home page: https://sourceware.org/libffi/
Download: libffi-3.4.6.tar.gz
MD5: b9cac6c5997dca2b3787a59ede34e0eb
Libpipeline 1.5.7 (956 KB) Home page: https://libpipeline.nongnu.org/
Download: libpipeline-1.5.7.tar.gz
MD5: 1a48b5771b9f6c790fb4efdb1ac71342
Libtool 2.4.7 (996 KB) Home page: https://www.gnu.org/software/libtool/
Download: libtool-2.4.7.tar.xz
MD5: 2fc0b6ddcd66a89ed6e45db28fa44232
Libxcrypt 4.4.36 (610 KB) Home page: https://github.com/besser82/libxcrypt/
Download: libxcrypt-4.4.36.tar.xz
MD5: b84cd4104e08c975063ec6c4d0372446
Linux 6.10.5 (141,739 KB) Home page: https://www.kernel.org/
Download: linux-6.10.5.tar.xz
MD5: 276ef1f11ed3713ec5d6f506ff55ac12
D-Bus 1.14.10 (1,344 KB)

Описание: Шина сообщений для межпроцессного взаимодействия.

Home page: https://www.freedesktop.org/wiki/Software/dbus
Download: dbus-1.14.10.tar.xz
MD5: 46070a3487817ff690981f8cd2ba9376
DejaGNU 1.6.3 (608 KB)

Описание: Каркас для тестирования других программ.

Home page: https://www.gnu.org/software/dejagnu/
Download: dejagnu-1.6.3.tar.gz
MD5: 68c5208c58236eba447d7d6d1326b821
Diffutils 3.10 (1,587 KB)

Описание: Утилиты для сравнения файлов (diff, cmp).

Home page: https://www.gnu.org/software/diffutils/
Download: diffutils-3.10.tar.xz
MD5: 2745c50f6f4e395e7b7d52f902d075bf
E2fsprogs 1.47.1 (9,720 KB)

Описание: Утилиты для управления файловыми системами ext2/3/4.

Home page: https://e2fsprogs.sourceforge.net/
Download: e2fsprogs-1.47.1.tar.gz
MD5: 75e6d1353cbe6d5728a98fb0267206cb
Elfutils 0.191 (9,092 KB)

Описание: Утилиты и библиотеки для работы с ELF-файлами (объектными файлами, библиотеками).

Home page: https://sourceware.org/elfutils/
Download: elfutils-0.191.tar.bz2
MD5: 636547248fb3fae58ec48030298d3ef7

Примечание по Glibc:
Разработчики Glibc поддерживают ветку Git с патчами для Glibc-2.40, которые не вошли в основной релиз. Мы оперативно реагируем на критические обновления безопасности.

Примечание по ядру Linux:
Ядро часто обновляется из-за обнаружения уязвимостей. Рекомендуется использовать последнюю стабильную версию.

Примечание по Vim:
Версия Vim меняется ежедневно. Последние теги доступны здесь: https://github.com/vim/vim/tags.

Все эти пакеты — фундамент для сборки, настройки и работы системы NiceOS. Мы регулярно отслеживаем обновления, проверяем совместимость и качество, чтобы обеспечить предсказуемость и устойчивость инфраструктуры.