Всё целиком, а не первая половина.
Каждый гайд превращает один пустой инстанс в сервис, на который можно направить реальный трафик. Команды выполняются сверху вниз в том порядке, в котором напечатаны, плейсхолдеры помечены как плейсхолдеры, а последний раздел — всегда тест. Ни один гайд здесь не заканчивается фразой «а дальше настройте остальное по вкусу».
Гайд — это не статья из базы знаний
Оба формата существуют, потому что каждый плох в работе другого. Смешайте их — и получите документацию, которая объясняет, что делает каждый флаг, но никогда не говорит, какие флаги нужны.
База знаний отвечает на вопрос за минуту. Гайд стоит вам полдня и оставляет в конце работающий сервер.
Статья из базы знаний начинается с того, что у вас уже есть и что с этим не так: точка монтирования, которая не возвращается после перезагрузки, сертификат, который обновился, но не перезагрузился, консоль восстановления, из которой не получить приглашение. Она короткая, потому что контекст уже у вас в голове. Вы приходите с проблемой и уходите с ответом.
Руководство начинается с ничего. Вы оплатили счет, у вас есть root-доступ, и машина представляет собой неконфигурированный образ в городе, который вы выбрали по своим причинам. К концу у вас есть почтовый сервер, проходящий проверки аутентификации, или гипервизор, запускающий вложенные гостевые системы, или два терабайта, лежащие в другой стране, чем они были утром. Контекст создается по ходу дела, поэтому эти руководства занимают пару тысяч слов, а не двести.
Писать их так — больше работы, но это позволяет поймать больше ошибок. Каждое руководство на этой странице было полностью выполнено на свежеразвернутом инстансе перед публикацией и повторено, когда вышестоящий проект выпустил что-то, что его сломало. Дата вверху каждого — это дата последнего запуска, а не дата, когда кто-то его просмотрел.
Одна завершенная задача
Не обзор шести вариантов и пожимание плечами. Каждое руководство выбирает подход, объясняет почему и реализует его. Если существует реальная альтернатива, ей посвящается одно предложение и ссылка, а затем руководство продолжается.
Команды, выполняемые по порядку
Скопируйте их в указанном порядке на свежий образ, и они заработают. Если на шаге девять нужен пакет, установленный на шаге два, шаг два его устанавливает. Ничто не зависит от состояния, которое вам не сказали создать.
Именованная машина
Каждая сборка указывает, на какой линии она написана и что произойдет, если вы используете что-то меньшее. Настройка Postgres, предполагающая 64 ГБ ECC, бесполезна на машине с 16 ГБ, поэтому мы говорим об этом вверху.
Скучная середина
Права на файлы, усиление юнитов systemd, правила брандмауэра, ротация логов. Это та часть, которую большинство руководств пропускают, и та часть, которая определяет, будет ли сервис все еще работать в марте.
Тест в конце
Каждое руководство заканчивается командами, вывод которых однозначно говорит, сработала ли сборка. Не «теперь вы должны увидеть страницу входа». Что-то с кодом выхода или заголовком, который можно прочитать.
“Если последняя строка страницы — «и затем настройте брандмауэр», это не руководство, а список покупок.”
Как следовать руководству, не теряя вечер
Они написаны для тех, кто читает всю страницу, прежде чем что-либо вводить. Эта привычка стоит примерно часа на каждую сборку.
Если не указано иное, предполагается свежий образ Debian 13 и root-шелл. Все остальное указано в первых двух абзацах.
- 01
Разверните что-то новое
Подгонять руководство под машину, на которой уже работают три сервиса, — это способ выяснить, какой из них тихо использовал порт 8080. Свежий инстанс появляется меньше чем за минуту, и его можно уничтожить после.
- 02
Прочитайте его целиком
Особенно шаги DNS. Половине сборок здесь нужна запись, которая распространится до того, как более поздняя команда сможет выполниться, и самое дешевое место узнать об этом — при первом чтении, а не на шаге одиннадцать.
- 03
Замените плейсхолдеры
Все, что выглядит как example.com, 2001:db8: или <угловые скобки>, вы должны заменить. Диапазоны документации используются намеренно, чтобы ошибка копирования-вставки громко проваливалась, а не тихо достигала чужой сети.
- 04
Снапшот перед необратимым шагом
Переразбиение, dist-upgrade, все, что связано со словом «затирать». Пакет снапшотов дает пять слотов и восстановление, которое занимает секунды, что дешевле, чем повторять шаги с первого по девятый.
- 05
Выполните проверку
Это последний раздел каждого руководства, и он существует потому, что «казалось, запустилось» — не то же самое, что «работает». Две минуты проверки лучше, чем узнать от пользователя.
Ничто на этой странице не передает удаленный скрипт в шелл. Если вышестоящий проект поставляет только такой установщик, руководство показывает, как его скачать, прочитать и запустить как файл — вы должны знать, что попало на вашу машину, и мы тоже.
Какая машина нужна каждой сборке
Большинство из них без проблем работают на самом маленьком инстансе Ryzen. Четыре из них — нет, и выбор неправильной строки для этих четырёх потратит полдня, прежде чем вы доберётесь до интересной части.
Где в руководстве указан какой-то план, это тот план, на котором оно тестировалось. Использование более маленького обычно нормально, и об этом говорится там, где это не так. Более крупный — ничего не меняет, кроме чисел, которые вы подставляете в конфиги, и в руководствах, которым эти расчёты важны, они показаны.
| Сборка | Строка | Почему именно она |
|---|---|---|
| WireGuard, Tor-ретранслятор, Matrix, мониторинг | Ryzen R-4 | Однонитёвая, сетевая нагрузка, крошечный рабочий набор. Больше ядер ничего не меняет. |
| Почтовый сервер, CI-раннер, Nextcloud | Ryzen R-8 | И шаги сборки, и антиспам любят быстрые ядра. Сборка образов — это самое тяжёлое здесь. |
| Postgres | EPYC E-8 и выше | Настройка в этом руководстве предполагает 64 ГБ ECC-памяти и NUMA-осведомлённое закрепление. |
| Локальный инференс | GPU G-L40S | Сорок восемь гигабайт видеопамяти, проброшенных напрямую. Общая карта — это чужая очередь. |
| Сидербокс | Storage S-50 | Пятьдесят терабайт массива за NVMe-кэшем записи, на порту, достаточно жирном, чтобы его слить. |
| Proxmox с вложенными гостевыми системами | Bare metal BM-E | Вложенной виртуализации нужна физическая машина. Нашей гипервизорной прослойки нет. |
| Перенос двух терабайт между сайтами | Любые два инстанса | Писано для узла хранения и коробки Ryzen, но метод одинаков при любом размере. |
Каждое руководство предполагает маршрутизируемый IPv6 /64, который поставляется с каждым инстансом. Два из них просят /48, потому что раздавать клиентские подсети из одного /64 означает проксировать обнаружение соседей, а проксированный IPv6 — это то, что вы дебажите на работе, а не то, что вы запускаете.
Приватность
03Инфраструктура
04Development
02Сети
02Вопросы о руководствах, а не о сборках
В основном, да. Что наше — это шаги в панели, маршрутизируемый префикс и предположение о выделенных ядрах. Всё остальное — это стандартный Debian и софт из апстрима, так что команды переносятся без изменений туда, где дают root и не продают CPU в нагрузку.
Потому что писать двенадцать руководств пять раз — это путь к устареванию документации. Debian 13 — наш образ по умолчанию, имена пакетов стабильны годами, а перевод шага на AlmaLinux или Alpine — это подмена пакетного менеджера, а не переписывание. Полный список образов — на странице операционных систем.
Сообщите нам. Руководства перепрогоняются на чистом образе, когда мы узнаём о поломке, и исправленная версия выходит на той же неделе с обновлённой датой сверху. Тикета с командой и ошибкой достаточно; вам не нужно это диагностировать за нас.
Мы поддерживаем машину, сеть и хранилище под ней. Отладка ваших map-файлов Postfix в три часа ночи в этот список не входит, и у нас бы это всё равно плохо получилось. Управляемое усиление защиты есть как дополнение, если вы хотите, чтобы базовый уровень обслуживал кто-то другой.
Для восьми из двенадцати — да, и R-4 — то, на чём писаны несколько из них. Сборкам Postgres, инференса, сидербокса и Proxmox нужна линейка из таблицы выше; остальным достаточно четырёх выделенных ядер и 16 ГБ.
Выберите город, разверните, следуйте.
Инстанс, который вам нужен для большинства из этого, стоит меньше, чем кофе, который вы выпьете, пока его собираете. Платите в монетах, ждите около сорока семи секунд и начинайте с шага первого。