Есть отличный термин self hosted
, который очень популярен в англоязычном интернете.
Но он плохо переводится, почти как open source - хотя википедия и пытается дать ужасно звучащий термин "самохостинг"...
Как ни странно, на Хабре нет про него обзорных статей, и даже нет соответствующего тега, хоть я и искал.Возможно, плохо искал, и вы кинете в комментарии что-то хорошее.
В общем, self hosted - это когда вы решаете, что какие-то вещи лучше хранить у себя, а не отдавать злым корпорациям - фотографии, почту, умный дом, книги, и так далее.
И собираете под это какой-то сервер, полноценным хозяином которого являетесь только вы.
Эту статью я пишу во многом для нескольких друзей, которые решили приобщиться к этому тренду, и здесь будет обзор моего личного self hosted - про всякие разные штуки, которые показались полезны лично мне, и плотно заняли своё место на моём домашнем сервере.
На хабре много опытных пользователей, так что если вам что-то кажется очевидным - смело листайте дальше. Здесь есть много классных подробных статей, которые идут в глубину, а в этой статье я хотел дать общее представление, куда вообще можно копать и что делать.
Железки
Наверняка, вы начнёте с вопроса - "и куда мне всё это ставить?" Вариантиков много, и у всех есть плюсы и минусы.
Raspberry pi. По моему необязательному мнению - неоправданно дорогое, слабое и не масштабирующееся решение. Да и память в них быстро умирает. Но если у вас мало места и хочется чуток поэкспериментировать - хороший вариант.
Мини-ПК, например Intel NUC, или любой другой. Не сильно больше по размеру, зато полноценная железка с кучей оперативки и SSD. Минус - я не очень представляю, как это добро ремонтировать, если что-то погорело, в особенности если вы взяли красивую экзотику с алика.
Старый ноутбук. Отличный способ бесплатного переиспользования того, что и так пылится в шкафу.
Готовый брендовый NAS. Мне вот очень нравятся Synology. Они красивенькие, выглядят довольно долговечно, ремонтопригодно, и в них обычно сразу есть куча всего полезного софта и бекапы в облако производителя. Хотя с некоторых пор облачные бекапы в другие страны стали вызывать вопросики. Минус только один - дорого.
PC. Мне кажется идеальным вариантом, если у вас есть место, куда его можно закинуть. Всегда можно модернизировать, и легко выкинуть и заменить умерший диск\кулер\материнскую плату \ что угодно. Минусы - большой размер, большее энергопотребление, и весь софт - это то, что ты поставил туда сам. В общем, на любителя вроде меня.
Как туда ставить софт?
Начинал я с олдскульной установки всего софта в пакетах, однако примерно год спустя снёс всё нафиг и перешёл на докер контейнеры:
Это безопаснее. Например, в статье рядом я рассказывал, как поднять заведомо устаревший на 10 лет и дырявый софт.
Это надёжнее, так как в меньшей степени зависит от версии твоего дистрибутива Linux, установленных пакетов и погоды на улице
Можно поиграться и снести обратно какой-то сервис, не оставив от этого ни следа. А после классического способа установки в виде пакетов часто остаются конфиги, базы, настройки, логи, подцепленные репозитории, установленные зависимости и так далее.
Легко выделить мух и котлеты. Котлеты - в смысле - данные сервиса. Гораздо прозрачнее, что именно нужно резервировать.
Это банально быстрее - достаточно скопипастить compose файл - и вуаля, сервис поднят.
Если у вас красивый дорогой NAS, то в нём часто есть свои средства работы с контейнерами.
Если нет - удобно поставить какой-нибудь UI для того, чтобы не делать всё через терминал.
В качестве примера такого UI мне нравится portainer - бесплатный, легковесный, с удобным UI.
Если актуально, могу приложить свои docker compose файлы для каждого упомянутого в статье сервиса, но вообще в 2024 они всегда лежат где-то рядом с главной страницей, как основной способ установки. Ссылки давать не буду - весь помянутый софт находится по первой ссылке с запроса в поисковике.
Так, а что ставить-то?
Умный дом
Майн гот, ещё одна статья про умный дом? Нет, конечно! Про него уже сказали тысячу раз, и есть много хороших статей. В том числе я даже писал про умный дом моего геккона. Так что просто упомяну, что у меня стоит Home Assistant (вот например хорошая обзорная статья про него на хабре).
Кроме самого Home Assistant, в комплект у меня входит:
ESPHome - позволяет программировать на ямлах микроконтроллеры и легко интегрировать их в Home Assistant.
Zigbee2Mqtt - классная софтина, которая позволяет засунуть в Home Assistant практически любой Zigbee девайс.
Mosquitto - требуется для Zigbee2Mqtt, и в целом для Mqtt, если этот прокол вам нужен. Иногда посматриваю на EMQX - но mosquitto полностью удовлетворяет мои небольшие потребности.
Hass-dbstats - написанный мной сервис для контроля за размером СУБД Home Assistant. Можно использовать как эддон и как docker контейнер.
Frigate - для записи видео и прокидывания всяких событий в Home Assistant. У меня он записывает входящих в дом людей и кидает в телеграмм картинки с ними.
Торренты
После 2022 года актуализировалась... Потребность передавать друзьям большие файлы, конечно же. Например, фотоархивы с праздников. И если вы не пользуетесь большим и дорогим облаком, то раздавать их через торренты - отличный вариант.
Что тут есть интересного:
Transmission - наиболее экономный по ресурсам клиент. К сожалению, я перестал его использовать, так как его веб интерфейс так и не поменялся за последние 20 лет...
Qbittorrent - торрент клиент, который использую сейчас. Довольно прожорлив по ресурсам, и даже при ограничении оных начинает жрать своп (в докер файле 3 стандарта нельзя вменяемо его запретить). Тем не менее, если поиграть с настройками - получается довольно неплохо. А интерфейс - самый приятный.
Opentracker - домашний трекер, если вы хотите раздать что-то друзьям и не светить на открытых трекерах. Древний, как бивень (бивень же, да?) мамонта, но работает, и ресурсов не кушает.
Просмотр видео
Вот решили вы... Посмотреть запись семейного праздника. Которая у вас лежит на домашнем сервере. Самый простой вариант - сделать на сервере, где лежит видео, samba share с разрешением на чтение, и открывать видео по сети через VLC, который можно поставить на любой утюг. Однако, не всегда видео пролазит через сеть, не все форматы хорошо декодируются, и, если ваши праздники разбиты на много эпизодов - их просто неудобно переключать. Поэтому часто ставят различные медиа серверы, которые имеют удобный интерфейс и на лету кодируют видео в удобный формат.
Мой выбор пал на Jellyfin - он понравился простым и удобным веб интерфейс и хорошими андроид клиентами. Из альтернатив можно ещё посмотреть на Kodi и Emby. А вот Plex многим разонравился за его текущий фокус на модель подписки.
Секретики
Привет друзьям-параноикам! Долгое время для хранения явок и паролей я использовал KeePass, но было неудобно шарить базу паролей между телефоном и компьютером, а плагины с сетевыми дисками постоянно отваливались. Плюс к этому, меня несколько напрягало, что браузеры пытаются запоминать и хранить мои пароли - получить их оттуда довольно несложно.
Поэтому мой выбор довольно безальтернативно пал на Vaultwarden - открытый бекенд сервер для Bitwarden, приложения для управления паролями. Все пароли хранятся в зашифрованом виде, есть классные клиенты под все платформы и удобная веб морда. Мне казалось, я буду долго настраивать и мучаться от неудобства - но по факту переезд занял один вечер. Больше никаких паролей, сохранённых в браузере!
У нас дыра в безопасности!
В какой-то момент возникает вопрос - а как бы всё это богатство прикрыть?
У большей части сервисов есть какая-то авторизация - но не факт что не дырявая. И открывать их в интернет просто стрёмно. Конечно, есть радикальный метод - сделать домашние сервисы доступными только через VPN. Но не всегда это возможно и удобно. А делать это выборочно - половинчатое решение.
Здесь помогают сервисы, которые закрывают собой все ваши сервисы, не позволяя открыть их без авторизации. Кажется, большая часть пользователей выбирает Authelia за малое потребление ресурсов, но я сходу не разобрался, как там настроить нужный мне OAuth.
Поэтому я выбрал Authentik - вполне себе Enterprise grade авторизационный провайдер. Удобный интерфейс, можно быстро настроить буквально что угодно. Только вот жрёт примерно гигабайт оперативки, что конечно несколько перебор для решения задачи авторизации полутора пользователей...
Базы данных
Большая часть приложений предлагает несколько СУБД на выбор. Мой личный выбор в 2024 - Postgres. Быстрый, удобный, не кушает лишней памяти. Есть холиварный вопрос по поводу того, как именно ставить СУБД - ставить её на основную ОС, или ставить внутри контейнера, а если внутри контейнера - то использовать одну, или несколько разных инстансов. На этот холивар я уже как-то потратил вечер своей жизни, больше не хочу - так что просто скажу, что мне удобнее, когда база живёт в контейнере, и на каждое приложение есть по своему инстансу. Накладные расходы не так велики, а с изоляцией как-то спокойнее. Конечно, если у вас много больших баз, то картинка будет совсем другая, и лучше объединять базы, разграничивая доступ по разным пользователям.
Как объединять всю эту кашу
Если вы ставите всё на свете как эддоны Home Assistant, то он решает задачу объединения сервисов и отображения некоей единой точки входа. Но лично мне страшно не нравится эта модель, и она жутко реализована. Поверьте, я знаю, что говорю, я писал эддон для Home Assistant. Так что нужно какое-то другое решение. Обычно все начинают с того, что просто выкидывают сервисы на разные порты. Но потом ты думаешь о том, чтобы
прикрутить SSL
Добавить авторизационного провайдера
сделать разные домены
И здесь уже потребуется что-то, что будет всё это добро объединять и проксировать наружу.
По старой памяти у меня используется Nginx:
Мне легко и удобно всё в нём настраивать
Нравится, что настройки можно бекапить в гит
Приятно, что у меня есть гранулярный контроль над поведением прокси Но это не слишком user friendly подход в 2024 году, некий входной порог и много ручной работы - поэтому многие используют Traefik или Nginx Proxy Manager.
Traefik вроде как позволяет автоматически находить и "цеплять" сервисы из докер контейнеров, сам поднимает SSL, рисует красивые дашборды... А Nginx Proxy Manager вроде как обладает удобным UI, через который всё можно накликать.
Вопрос того, как всё это добро выставить в интернет - выходит за рамки этой статьи, но, к счастью, я уже писал другую статью по этому поводу. Советую обратить внимание на комментарии - там дали больше полезных советов, чем в самой статье!
Мониторинг
Когда весь этот зоопарк разрастается, и ещё у тебя есть несколько серверов со всякими пет проджектами - очень хочется автоматически наблюдать состояние серверов и сервисов.
Довольно долго я колебался между старым добрым Zabbix и связкой prometeus+Grafana, но всё же остановился на Zabbix. Кажется, он лучше подходит на роль "общие метрики из коробки". Пока не пожалел - штука довольно удобная, хотя интерфейс практически не поменялся лет за 10.
Единственная заметка - стоит хостить сам сервер вне дома, а дома держать агент. Иначе вы не узнаете о том, что домашний сервер упал...
Так же:
Для быстрой диагностики я иногда использую glances, который фактически является удобной веб мордой для htop.
За дисками я смотрю при помощи scrutiny
Проверяю обновления моих образов при помощи whats-up-docker. Пожалуйста, не используйте watchtower для автоматического обновления - это синоним автоматического падения ваших сервисов в случайное время.
Смотрю логи контейнеров при помощи dozzle
Бэкапы
Бэкап жёсткого диска
Вы мне вряд ли поверите, но в момент написания этой секции я вспомнил, что с утра у меня диск домашнего сервера перешёл в RO. Я пошёл смотреть в диагностическую тулзу scrutiny, и обнаружил, что вчера (4 июля) резко выросло количество нестабильных секторов:
"Ну, мало ли" - подумал я. "Может контакт отошёл". Пошёл переткнул. После чего диск вообще перестал распознаваться:
Jul 5 00:41:29 jehy-surveillance kernel: [ 537.858296] ata6: link is slow to respond, please be patient (ready=0)
Jul 5 00:41:33 jehy-surveillance kernel: [ 541.858311] ata6: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
Jul 5 00:41:33 jehy-surveillance kernel: [ 541.858980] ata6.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
В качестве пруфа вот вам ещё скрин из заббикса:
Штош. Вот вам и наглядный смысл бекапов. К частью, я могу спокойно дописывать статью, ведь всё важное содержимое диска у меня в режиме реального времени пишется в облако.
Лично я в качестве резервного облака использую яндекс, потому что там есть удобный CLI, но наверное можно использовать и другие. Например, вот так выглядит синхронизация входящих. В прямом смысле - входящих в дверь!
Но при этом стоит помнить, что даже самые крупные и известные облака периодически что-то теряют. Так что я предпочитаю добавить к этому холодный бэкап - периодически подключаемый диск, на который копирую важную информацию, и убираю его подальше в шкаф.
Бэкап СУБД
Как сказал бы Боромир - нельзя просто так взять и забэкапить файлы СУБД. С большой вероятностью восстановиться из такого бэкапа не выйдет. Поэтому для "горячего" бэкапа нужно использовать соответствующие инструменты. Мне очень понравился контейнер для горячих бекапов Postgres - он занимает 20 MB оперативной памяти, и по крону пишет регулярные бекапы приятной структуры.
Чего у меня нет (пока?)
Своей библиотеки книжек, на роль которой может претендовать Calibre/Paperless
Своего почтового сервера, так как за много лет я привык к вполне определённому сервису и его интерфейсу. Да и доверия крупным компаниям в отношении почты у меня больше, чем своим кривым рукам. Впрочем, даже reddit согласен со мной, что не надо использовать свой почтовый сервер.
Своего файлового сервера. Мне вполне хватает, что диск моего домашнего сервера имеет двустороннюю синхронизацию в облако, где я могу всё смотреть, редактировать и шарить с другими людьми. Хотя можно бы поставить OwnCloud - кажется, он неплох. То ли Nextcloud. Если честно, не помню, кто чей форк.
Своего гит сервера. Да, мне уже блокировали гитхаб, и это было очень стрёмно - но мне хочется работать в облаке с другими людьми, и пока что я продолжаю его использовать. Но крон демон со скриптом бэкапа постоянно обновляет локальную копию моих репозиториев. Но если бы я ставил свой сервер, скорее всего это был бы Gitea.
Красивой домашней странички для сервера. Кажется, штуки типа Dashy/Homarr/Heimdall сейчас очень популярны, но я не вижу для себя в этом смысла.
Менеджера задачек. Стандартный облачный календарь закрывает далеко не всё, и я лениво посматриваю в сторону Vikunja
CompreFace и Double Take для распознавания всякого с видео. На самом деле, я даже ставил их, и смог натренировать. Но не придумал, зачем мне это, и пока снёс. Хотя лелею мысль в будущем повесить камеру на улицу, и в автоматическом режиме постить в особый канал всех замеченных котиков, чтобы хозяева могли там искать потеряшек.
Ноу хау
Ну и напоследок - пара забавных неочевидных вещей.
Яндекс станция. Для увлечённого технаря её возможностей умного дома вряд ли хватит, но она отлично встраивается в экосистему Home Assistant. Не вижу смысла спорить о том, что лучше - управление голосом, кнопками, или телефоном - если можно сделать все три варианта параллельно.
Облачный self hosted. Звучит как взаимоисключающие вещи, но на самом деле часть инфраструктуры вполне можно увести в облачный или обычный внешний сервер. У меня там стоит zabbix, Authentik, второй синхронизирующийся Mosquitto, opentracker и vaultvarden - все те штуки, которые хочется иметь в доступе, даже если домашний интернет отвалился, что нередко бывает в моём посёлке. Да, можно конечно сделать резерв через симку... Но так спокойнее.
Ссылки
Огромное количество всего интересного есть в сабреддите selfhosted
Гагантский список сервисов на все жизни можно посмотреть в репозитории awesome-selhosted
Ещё один список, чуть больше подходящий для системных администраторов, но полезный и для дома - awesome-sysadmin
Чудесный и отзывчивый чат про Home Assistant
Отличный чат про железки для умного дома
И ещё один - про ESPHome
Вместо заключения
Конечно, говорить о selfhosted можно бесконечно, но я столько не смогу написать, а вы - прочитать. Но если интересно развернуть какую-то тему - можем сделать это в комментариях. Так же было бы интересно узнать, а какие ещё полезные инструменты используете вы на своих домашних серверах.
Комментарии (82)
janvarev
05.07.2024 08:42+12Закину "на посмотреть" свою хабрастатью Ирина — опенсорс русский голосовой помощник. Offline-ready
Имхо может быть достойной альтернативой Яндекс.Станции - ставится и работает локально, при необходимости. Интеграция с Home Assistant есть. Плагинами дописывается нужное.
Проект живой, несмотря на двухлетнюю давность - я даже планирую написать статью на Хабр про последние изменения.
jehy Автор
05.07.2024 08:42+1Класс, спасибо! Мне задача качественного голосового помощника кажется довольно нетривиальной - хочется и распознавания голоса хорошего, и понимания смысла команд. И ещё и железка должна быть не очень простая. Поэтому взял станцию. Здорово, если у вас получилось собрать работающее оффлайн решение! Забавно, что основные юз кейсы у нас похожие - таймер, музыка, дети.
ru1z
05.07.2024 08:42+1написать статью на Хабр про последние изменения.
Было бы интересно, неохота с яндексами/амазонами связываться.
kma21
05.07.2024 08:42С Jellyfin у меня как-то не оч.хорошо получается сделать домашний кинотеатр.
Директории DVD с файлами нормально не показываются. Раньше не приложение не видело файлы, теперь видит, но не воспроизводит. А DVD-привода у меня в телевизоре нет.Некоторые перекодированные фильмы закодированы кодеками, которые jellyfin не может воспроизводить. Ругается на DRM или кодеки.
Правда у меня для транскодирования используется nvidia quadro T600, возможно это накладывает свои коррективы.
Короче, скачиваешь фильм, а посмотреть на телевизоре jellyfin не всегда его можешь посмотреть.jehy Автор
05.07.2024 08:42Пока с таким не сталкивался, но верю. Пробовали VLC+samba share? У меня такое на первых порах было, вполне пристойно, хотя о какой-то вменяемой организации коллекций приходится забыть. Ну и можно рядом несколько плееров поднять под эксперименты.
kma21
05.07.2024 08:42Телек на WebOS, под него вроде нет VLC. А подключать комп к телеку и запускать видео на компе не хочется.
VenbergV
05.07.2024 08:42+1Раз у вас WebOS, то вам надо попробовать родной клиент Jellyfin для WebOS.
И, да простит меня создатель этой статьи, сразу забыть про контейнеризацию Jellyfin, если хотите транскодирование под свой телевизор. Т.к. Jellyfin должен работать напрямую с вашим железом.
Месяц назад проходил этот долгий квест на NUC. Proxmox позволил пробросить встроенное видео от Intel напрямую в VM. И теперь Jellyfin транскодирует даже 4К фильмы с минимальной нагрузкой на железо. Опытным путем нужно будет подобрать "Качество видео"-"Качество домашней сети" на клиенте, при котором он будет согласен проигрывать видео с сервера Jellyfin. Начинайте подбирать с минимальных значений "720p".
Если захотите идти по пути контейнеризации Jellyfin, до готовьтесь собирать и поддерживать свой контейнер вручную из исходников Jellyfin, ffmpeg и драйверов VAAPI/NVENC.jehy Автор
05.07.2024 08:42Не сталкивался с Proxmox, но вроде это именно виртуализация, и она конечно может сожрать лишних ресурсов. С докер контейнером навскидку такого происходить не должно. Если у тебя нет ВМ - тебе не нужно пробрасывать железо :)
Глянул - прямо на страничке jellyfin про harware acceleration написано, что она в докере поддерживается.
Ну и у меня отлично работает перекодирование под телевизор.
История про пересборку тоже вряд ли актуальна - за иключением случая, если у вас какое-то экзотическое железо, про которое штатная инсталляция в образе не знает.VenbergV
05.07.2024 08:42Proxmox это часть исключительно моего self hosted. Т.к. нужны для тестов и Windows VM, и доступ к функциям железа.
jellyfin поддерживает hardware acceleration в контейнере для некоторых случаев.
Ну и если считать Intel NUC и Intel QuickSync технологию - "экзотическим железом" для домашнего использования, то тогда вы правы. (Шутка).
В контейнере сам jellyfin, его обвязка (ffmpeg) и поддержка VAAI/QuickSync - сильно отличаются от доступных из репозиториев.Возможно для NVIDIA все будет проще и уже есть в контейнере.
jehy Автор
05.07.2024 08:42jellyfin поддерживает hardware acceleration в контейнере для некоторых случаев.
Ну вот на страничке про harware acceleration, которую я упомянул выше, одинаковые галки стоят что для Linux что для Linux Docker. И VA-API есть и там и там.
В контейнере сам jellyfin, его обвязка (ffmpeg) и поддержка VAAI/QuickSync - сильно отличаются от доступных из репозиториев.
Ну так в контейнере как раз должна быть именно правильная и рекомендуемая версия ffmpeg. Они специально пишут не ставить его из стандартных репозиториев. А драйвера вообще ставятся на хост машину.
Навскидку кажется, что максимум того, что требуется - это прокинуть какую-то инструкцию или девайс в docker-compose. Но спорить я не готов :)
VenbergV
05.07.2024 08:42Как я помню, проблема в отсутствии поддержки правильного драйвера VA для Intel в контейнере. У меня не хватило духу его прикрутить в штатный стабильный контейнер, т.к. засыпался в зависимостях. И смысл такой ручной сборки уже терялся.
Но вы правы, возможно с NVIDIA такой проблемы не будет.
Akr0n
05.07.2024 08:42+2Никогда не понимал этого прикола - качать видео 4К, потом его конвертить налету под свой 1080p телек. Может как-то проще сразу качать в своем разрешении..? Ситуация, когда в доме прямо зоопарк дисплеев и каждый смотрет эти фильмы, согласитесь, мягко говоря, редкая ситуация.
Borz
05.07.2024 08:42+1А можно и два формата сразу качнуть, без конвертаций - ещё и другим "помочь" с раздачей в этот момент...
Habr1337
05.07.2024 08:42Иначе вы не узнаете о том, что домашний сервер упал...
сервис типа uptimerobot настройте, заодно узнаете много нового о качестве услуг своего провайдера
astar7922
05.07.2024 08:42+1Спасибо за статью!
я во многом прошел уже этот путь, но почерпнуть есть что много и интересно
awesome-selfhosted на гитхабе это конечно кладезь инфы! я листал его, даже не зная что такие сервисы существуют, и восклицая - о, а давай попробую
Из того что мне очень зашло (и уже реализовано):
Lychee - менеджер фотографий, я, как фотограф любитель очень оценил. закинул туда весь свой архив, даю доступ членам семьи и друзьям на отдельные папки, сам пользуюсь из любой точки мира с любого устройства
Obsidian - я пока не пользуюсь видимо всей мощью, но клиент стоит абсолютно на всех устройствах (телефон, планшет, ноут) и компах и на "рабочем", все синхронизируется с сервером дома (например некоторые ссылки ваши решил изучить позже и сидя на работе закинул ссылку на эту статью в obsidian, продолжу изучать на чем угодно)
как менеджер паролей я правда поставил self-hosted bitwarden, тоже наслаждаюсь :-)
meettya
05.07.2024 08:42В моем наборе для картинок выбрал Immich и Outline для заметок (оно как вики +-). Обсидиан какой-то монструозный, ИМХО. Из минусов - Outline требует Minio и KeyCloak, но заодно разобрался как эти штуки работают.
Habrahog
05.07.2024 08:42+2У меня:
Железка:
Gigabyte Barebone BMCE-5105 Intel® Celeron® N5105Софт:
- immich - замена Google Photo. Очень рекомендую. Умеет в распознавание лиц, группировку и пр. В контейнере только он;
- transmission - качалка контента;
- miniDLNA - раздает видео на телики и другие девайсы;
- smb share - для доступа к контенту с компов.На рутере настроен ddns от no-ip, поэтому доступ к фоткам и transmission -- отовсюду.
Подружить все это между собой без особых знаний ubuntu -- заняло 2 вечера с помощью ChatGPT и гугла.
NightShad0w
05.07.2024 08:42Спасибо за обстоятельный отчет. Притарил статью в карман.
А всё программное хозяйство в одну машину запихано или на разных хостах? Как собственно интеграция и начальная конфигурация непосредственно железа происходит? Хост-система настроена вручную штатными средствами или какие Ansible, Chef, Puppet?
Я вот смотрю в сторону построения своей home lab, но приправленной распределенной структурой - 4 ноутбука разной степени паршивости хочу объединить в кластер, с автоматическим развертыванием базового образа OS, поверх него уже накатывать k8s и прочие контейнеры.
Требование - взял любой ноут, ребутнул его в пользовательскую систему - у тебя мобильная станция, попользовался, ребутнул назад в PXE - нода вернулась в кластер, k8s смасштабировался.
Теоретическая подготовка пока привела к Warewulf, DRBL, oneSIS и похожим системам построения вычислительных кластеров. Cockpit и CosyStack в очереди на оценку пригодности.
jehy Автор
05.07.2024 08:42Запихано в одну машину. Слабенького CPU и 8 GB RAM хватает с заметным запасом.
Хост система - дефолтная убунта плюс докер. В случае чего я просто беру и разворачиваю те же docker compose на другой тачке. А, ещё nginx стоит вне контейнеров.
Да, я думал про кластер, но я разработчик, а не девопс, так что решил не упарываться настолько сильно. Всё же мне не нужно ни масштабирование ни отказоустойчивость. Хотя может каким-нибудь тоскливым осенним вечером я таки соберу k8s. Но пока есть много более интересных игрушек.
kenomimi
05.07.2024 08:42+1Если делаете большой сервер на много приложений - лучше всего брать серверные процы, память и матери. Только не хуанан, а б\у леново, супермикро, ... - они почти вечные. Будет намного меньше хардварных глюков, ибо десктопные процы не расчитаны на 24/7 работу.
У меня именно такой сервер, правда, после всяческих геморов купил нормальный одноюнитовый сервак по цене лома, набил до топчика и поставил в колокейшн. Ценник в месяц получается тот же, что дома он нажирает по электричеству, но за 2 года был всего один сбой, который решился перезагрузкой. Дома сбои регулярны, особенно зимой - статика, и увлажнитель не всегда помогает.
По софту:
ZoneMinder - отдельная виртуалка, ибо эта срань любит внезапно сожрать всю память и повиснуть. Что его таращит, так и не нашел, но прозреваю, что такое происходит, когда подвисает одна из камер. Без интернета.
rTorrent + ruTorrent. Тоже отдельная виртуалка, поскольку обрезаны ресурсы - если много разом качать, кушает слишком много. Плюс изоляция на случай взлома - его UDP-порты таки торчат наружу.
Жаббер, для уведомлений. Отдельная виртуалка, ибо это приличный пакет сервисов, а не одно приложение. Без интернета.
Почта. Отдельная виртуалка, ибо некоторые порты торчат наружу, плюс большой пакет сервисов.
Гитлаб. Отдельная виртуалка, ибо довольно жруч и ресурсы для него надо жестко ограничивать. Без интернета.
IPSEC - все сервисы сидят внутри, наружу высовывается только почта, и порты торрента.
С полсотни контейнеров с разработческими и бытовыми приложениями, перечислять всё долго.
Гитлаб-раннеры для быстрого развертывания всего.
Бекап-система с обратным коннектом.
Свой DNS c фильтрацией, адблоком и внутренним доменом типа .lan
-
Несколько десктопных виртуалок для тестирования приложений
AlexNixon
05.07.2024 08:42+3Кит на хуанане с али работал гипервизором 2 года 24х7 практически, только с выключением на переезды, перестановки, добавление дисков, протирание пыли и т.п. Сейчас ради лулзов заказал с али же rx580, и сейчас эту каличную али-сборку юзаю как основной комп, в т.ч для игор (не для последних ААА тайтлов, конечно, но они мне и неитересны). Пока все супер.
kenomimi
05.07.2024 08:42Китайцы имеют плохую совместимость с процами. Например, я пробовал несколько atermiter со 135W-процами - почти все не стартуют, либо работают нестабильно. Ставил L-процы - нет одного канала памяти из четырех. На некоторых слетали настройки PCI-E, если вырубить питание... Короче, если хочется с возней подбирать комплектуху - велкам, либо брать сеты, уже подобранные китайцами - такие работают в общем случае хорошо. Ах, да. На всех китайцах обязательно ставить кулер на чипсет - он на китайцах б\у перекатаный, чем паяли - хз, чипсет же раскаляется будь здоров - лучше не рисковать и сколхозить кулер побольше.
jehy Автор
05.07.2024 08:42Серьёзный подход! Колокейшн - хороший вариант, но если это всё на умный дом не завязано. Иначе без сети он в тыкву превращается...
У меня тоже стоит ограничение для каждого контейнера, "сожрать всю память" - знакомая история.
А пробовали Frigate? Мне казалось, ZoneMinder это что-то уже давно умершее.kenomimi
05.07.2024 08:42Исторически так сложилось. Плюс Frigate сильно завязан на наличие видяхи либо TPU, а ZoneMinder нет.
Для умного дома MQTT-сервер и ZigbeeMQTT стоят на роутере, сделаном из терминального клиента HP - холодный, крохотный, при этом довольно мощный для запуска контейнеров. Openhab стоит на стороне сервера, да, но уже подумываю делать клауд на 2 инстанса из него, один дома, один на сервере.
jehy Автор
05.07.2024 08:42У меня всего одна камера, но Frigate вполне себе распознаёт во мне человека с использованием нерекомендованного CPU режима.
om2804
05.07.2024 08:42Попробуйте shinobi
jehy Автор
05.07.2024 08:42У меня он до фригейта стоял. На первый взгляд симпатичнее и куча фич, но все в каком-то полусыром состоянии, и ресурсы жрёт дико. Но это было года три назад, может что поменялось. Тогда они кажется в паблик только старые исходники отдавали, а сейчас я вижу что вроде актуальные на гитлабе.
soulilya
05.07.2024 08:42Synology поставил себе. Деньги выкинутые на ветер. За такую цену 24т можно было купить nettop в 3 раза мощнее. Всю стоимость съедает лицензия на их софт 90% из которого вы вряд ли будете пользоваться.
Теперь буду собирать из mini-itx отдельно, так как этот не справляется с самыми банальными задачами.
Вообще тема очень интересная. Я бы собирал такие железки под ключ и ПО тоже могу доработать для этого.
kenomimi
05.07.2024 08:42Synology
Дрянь редкостная, если говорить про бюджетные модели. Повелся на днищевую цену на авито, купил, поставил диски. Интерфейс люто тормозит, если что-то добавляешь из софта, все вообще еле шевелится, фризы на доступе к данным... Продал обратно, еще и с наваром - на них спрос хороший :)
Модели же покруче стоят как крыло самолета. Плюс это пропиетарная шняга, которая в любой момент может сказать "ой, всё, поддержка закончена".
Akr0n
05.07.2024 08:42DS224+, стоит на Озон 35тр - все летает, есть докер и виртуалка. Модели 10-летней давности - да, физически устарели.
Antra
05.07.2024 08:42По привычке проверил - меньше 45 тыр не вижу. У вас какой регион в Озоен указан, не московский, видимо?
Synology вы используете именно ради их софта? А память увеличивали больше официально поддерживаемой? (виртуалки гонять на 6GB max не очень)
АЛьтернативно приглядываюсь к https://aliexpress.ru/item/1005006838685142.html. 18 тыр No Storage, No RAM; 24 тыр 16GB RAM 512GB SSD. Место для двух HDD. Dual LAN 2.5G.
Якобы можно загрузиться с SD карточки, т.е. SSD (M.2 NVMe) отдать под кеш - отлично для TrueNAS, который сейчас просто на старом ноуте гоняю...
Akr0n
05.07.2024 08:42Брал пол года назад, до возврата пошлин, вместе с памятью вышло до 40тр. Не Москва, но не слышал про разницу в цене. После этого цены падали ещё ниже на лот.
По ОС у них просто Айфон в мире NAS, все очень просто, справка встроенная исчерпывающая. Зачем годами настаивать как-то колхоз в коробке из под ботинок, есть ли готовое стоит 500 баксов...
xSVPx
05.07.2024 08:42Так за 35 можно собрать суперплатформу, особенно если купить для нее на том же авито какой-нибудь хайтауер двадцатилетней давности.
Беда всех этих насов - плотная компоновка. Если у вас есть в доме помещение где он будет стоять при +18 на постоянно молотящем кондее - пойдет. Но если помещение не охлаждается, то при +30 в нём на хардах может и +50-70 образоваться. И это как-то уже не очень.... У меня прям четко, +10 градусов к стоящим в нормальном корпусе hdd.
Ну и софт. Может быть разным. Мне пришлось всё равно из консоли доруливать, правда не синолоджи, но тоже довольно брендовый нас. А если доруливать из консоли, то нафига он вообще нужен ?
Причем доруливать пришлось грабли в неожиданных местах. Просто плохо было сделано "из коробки'.
Akr0n
05.07.2024 08:42Если нужен сервер под сервисы - берем NAS (Synology) и ставим один SSD и все. Не гудит, не греется, работает годами (свой опыт).
Если у вас файлопомойка, то диски в любом случае будут греть, хоть вы там железо CERNа поставьте с Авито.
xSVPx
05.07.2024 08:42+1Вы это такой вредный совет даете ?
О какой вообще надежности можно говорить с одним ssd ? То, что черный лебедь к вам пока не приплыл - просто везение и оно рано или поздно закончится.
Я не вижу никаких плюсов у вашего решения, кроме одного "подходит для тех, кто не хочет вникать ни во что".
Потому как синолоджи - это уже потенциальная точка отказа сама по себе, что у них там наверчено и не окирпичится ли оно из-за желания компании выслужиться перед "кем надо" никто не знает.
С экономической точки зрения это все точно "не лучший вариант". В те же деньги кабы не кластер из трех машин собрать можно...
С точки зрения ремонтопригодности тоже. Совершенно непонятно что там внутри и как его обслуживать. Электроника нечасто выходит из строя, но выходит.
Общая надежность околонулевая, "или выйдет из строя единственный накопитель, или нет".
В чем преимущества то ?
soulilya
05.07.2024 08:42Synology поставил себе. Деньги выкинутые на ветер. За такую цену 24т можно было купить nettop в 3 раза мощнее. Всю стоимость съедает лицензия на их софт 90% из которого вы вряд ли будете пользоваться.
Теперь буду собирать из mini-itx отдельно, так как этот не справляется с самыми банальными задачами.
Вообще тема очень интересная. Я бы собирал такие железки под ключ и ПО тоже могу доработать для этого.
jehy Автор
05.07.2024 08:42За 24 там вроде совсем слабенькие модели. Вкусные штуки начинаются примерно от 50 сейчас. Но да, согласен - очень дорого, именно это в статье как минус и описал.
MK_Ultra
05.07.2024 08:42корпоративные "Тайни" хорошо подходят для серверов, только с хардами нужно будет что-то придумывать. У меня пара Lenovo M73 Tiny уже больше года висят на стенке, один как фаервол с доп сетевухой, второй с Proxmox для нескольких виртуалок. из плюсов - минимальный размер, сменные проц, память и ссд, потребление около 30вт. из минусов - всего один сата и мобильный PCI.
KonstantineZ
05.07.2024 08:42+1Мой домашний self hosted:
proxmox на мини-пк от gygabyte (celeron n3350, 8гиг озу, 2ТБ SSD)
- виртуалка с home assistant OS
- LXC контейнер с adguard dns
- LXC контейнер с umbrell, в нем:
- браузерный проводник
- IMMICH
- MeTube для скачки с ютубчика
- plex чтобы смотреть скачанное с ютубчика
- SimpleTorrent. По итогу не пользуюсь.
- Syncthing
- Uptime Kuma
- Jellyfin добавлен после прочтения этой статьи на попробоватьЧего не хватает? Self hosted RSS agregator. Сейчас пользуюсь feedly, но хочется свое. К сожалению ничего с приятным мне интерфейсом и красивым мобильным приложением не нашел.
ftc
05.07.2024 08:42+1Докину своего опыта.
Сервер - самосбор. Раньше был просто ПК на Intel Core i3 каком-то старом. Потом сервер переехал в гараж и обзавёлся комплектом из 2xIntel Xeon на китайской плате от SZMZ. Вопреки опасениям, работает без глюков уже 3 года как.Из софта могу порекомендовать OpenHab (почти как HomeAssistant, но не он).
И ещё для заметок - Joplin. Подкупает наличием клиента для Android и iOS и возможностью синхронизироваться через WebDAV (соответственно базу заметок имеем одну и ту же на компе и телефоне).
WebDAV же можно организовать при помощи Seafile, который также работает self-hosted гуглодрайвом.
Плюс Gitea в качестве собственного гитлаба.
WarL0ck
05.07.2024 08:42Отлично. У самого уже давно свой сервак.
Из того что у меня стоит советую gitea, code-server (IDE), sopds (книжки), nextcloud (облако), axigen (почта). Умный дом у меня на esphome,msqt.
UranusExplorer
05.07.2024 08:42+2Хотя можно бы поставить OwnCloud - кажется, он неплох. То ли Nextcloud. Если честно, не помню, кто чей форк.
NextCloud - форк OwnCloud, но OwnCloud недавно переписали с нуля на Go (под названием OwnCloud Infinit Scale) и теперь он мне нравится гораздо больше остальных
Pol1mus
05.07.2024 08:42Хостить можно и прямо на своем компьютере. Линукс сервер в виртуальной машине, с автозапуском без видимого окна. Работать будет только пока комп включен(то есть днем) но это может оказаться вполне достаточно.
jehy Автор
05.07.2024 08:42Ну, я рассматривал только базовые варианты. Так-то можно и себе на телефон сервер поставить. И даже работать это будет весь день. Более-менее :)
NutsUnderline
05.07.2024 08:42+2владельцы серверов на телефоне существуют похоже только в статьях про серверы на телефоне :)
NutsUnderline
05.07.2024 08:42для доступа к Transmission есть клиенты под windows (не очень но работает), linux, android.
0decca
05.07.2024 08:42Много лет назад поставил себе hardkernel Odroid HC2.
Очень маленькая железка с большим радиатором для большого диска.
Обошлась мне когда-то дешевле сотки у.е. с доставкой и корпусом, точно и не помню.
При установке засунул туда древний 3-терабайтник, который не жалко.
Он и сейчас там стоит и работает и бэдблоков нету - хотя ему 15 лет минимум.
Переезжая в другую страну, я засунул этот маленький (но 8-ядерный!) ARM-девайс в чемодан, а в новом доме поставил раньше, чем рабочий комп.
Из софта - mosquitto, Influxdb+telegraf, grafana, поверх всего openvediavault на Armbian. OMV не скажу что сильно полезен, NFS/Samba можно и без него раздавать, transmission или rtorrent тоже можно самому поднять, но уже стоит - так не сносить же.
Ну и тонна разных самописных скриптов/велосипедов, про которые я уже сам и не помню что к чему. Плюс для экспериментов разных использую, в общем кодопомойка, файлопомойка, и просто помойка. Флибусту зеркало держу, музон там же. Гит свой поднимал, потом убрал - один хрен код шарить надо на том, на чем шарят все и это точно не селф-хостед. MySQL стоит вроде, но заброшен за ненужностью.
Свои видеозаписи на нем не размещаю - для этого Nvidia Jetson тоже древний есть, еще за 120 баксов купленный (кто в курсе их политики ценоообразования - поймет). Он и разметить видео может, мощи хватает и на нем уже SSD висит.
А вот как домашний сервер с базой данных - самое то.
Докеры не использую - система обслуживает дом, пробросы наружу через оверлеи и защита уже на внешних серверах, так что и смысла особого не вижу.
А, еще это мелкая фигня у меня дома как-то кластер обслуживала с NBD загрузкой, но не долго, гигабитного эзернета все же маловато и диск ротационный - не то.
Если увижу за разумную цену SoC с 10Ge и SATA/NVMe - куплю сразу.
Компактные, удобные, и стоит несравнимо с интелем.
Готовых решений из коробки для таких SoC конечно меньше чем на интелях, мощи тоже такой не будет.
Но и электричества почти не жрет и просто прикольно мигает в углу. ))
Znaya
05.07.2024 08:42Подскажите, есть примерно 20TB видео снятых с камер, храню по сентиментальным причинам, на некоторых видео мой покойный отец и вообще много чего. Но 90% видео это мусор и статичные пейзажи. Можно ли как-то автоматизировать отсортировку всех видео на которых есть люди?
jehy Автор
05.07.2024 08:42+1Да, конечно, довольно тривиальная задача.
Не подскажу, какие есть готовые решения, но если делать самостоятельно - это брать фреймы видео и запихивать, например, в tensorflow - он расскажет, какие типы объектов там удалось найти.
constXife
05.07.2024 08:42+1Расскажу про свой сетапчик. Арендую сервак на Hetzner — 128GB RAM, 2TB HDD, Xeon.
Поставил на железо Proxmox, чтобы нарезать отдельные VPS-ки. Сначала пытался приспособить Terraform для нарезки, но он нестабильно работает с Proxmox, поэтому использую Ansible для провизии виртуалок.
Что стоит на нарезанных виртуалках?
— Bitwarden
— gitea (но надо удалять, ибо в итоге чет удобнее пользоваться github, я там хранил репу с большими файлами — проект на Unreal Engine, а теперь просто делаю архив с последней версией и заливаю в облако)
— PostgreSQL
— harbor для докер образов
— Vault (токены, пароли от всевозможных сервисов), в основном всё же для опыта поставил, чтобы пощупать
— RabbitMQ
— GitHub Runner (чтобы иметь в github свой CI Runner)
— Games (игровой сервак Вальхейм)
— Kubernetes мастер (в основном для экспериментов)
— Kubernetes нода
Отдельная VPS для:
— Authelia (Single SignOn), OpenLDAP, OpenVPN (для доступа к внутренней сети, ибо почти всё закрыто для доступа из внешки), Grafana, Prometheus.
Огромный, конечно, оверкил, но для меня это видимо что-то вроде ковыряния в запорожце в гараже, просто интересно иногда поковыряться.NutsUnderline
05.07.2024 08:42+1аренда такого сервака стоит дороже запорожца нверное
constXife
05.07.2024 08:42+143 евро в месяц. Не думаю, что прямо супер-дорого. Это по сути, 1 ходка в бар в месяц.
jehy Автор
05.07.2024 08:42У меня когда-то были сервера в хетзнере. Всё неплохо и недорого, но иногда падают вдребезги.
Funkub
05.07.2024 08:42Отвечу по поводу выбора, для коллекции библиотек. Для себя выбрал Calibre, из коробки есть возможность развернуть opds каталог, выдать пользователям отдельные учетки, и вроде более-менее гибко настроить полки и категории. Единственный минус, так и не смог свой pocketbook подружить с opds, но с вебморды качает спокойно.
Akr0n
05.07.2024 08:42+1Это как-то не совсем self. Дата центр не ваш, посторонний без вашего ведома может физически зайти и выкачать данные.
constXife
05.07.2024 08:42Это вопрос терминологии. Для меня self hosted это про полный контроль программной инфраструктуры, возможность ставить что угодно и как угодно в рамках аппаратных возможностей, а не про безопасность доступов.
jehy Автор
05.07.2024 08:42Ну, тут строгой терминологии нет, я в статье тоже говорил, что кусок инфраструктуры у меня на тачку в облаке вынесен. И там и там есть свои плюсы и минусы. Например, облако не вытащит тётенька-клинер из розетки, его кабель питания не сожрёт кролик, оно не сгорит в пожаре, и у него с заметно меньшей вероятностью откажут диски (если мы про облако, а не колокейшн, конечно же).
Akr0n
05.07.2024 08:42+1Готовый брендовый NAS. Мне вот очень нравятся Synology. Они красивенькие, выглядят довольно долговечно
На деле долговечно. Почти 10 лет отработал Synology DS114 ни разу не было никаких проблем, включил и забыл. Можно было его не знаю, замуровать в бункер, до сих пор бы работал.
ptr128
05.07.2024 08:42+1база живёт в контейнере, и на каждое приложение есть по своему инстансу
А как решаете проблему с памятью? PostgreSQL ведь поедает её при старте, а гигабайты shared buffers будут слопаны в каждом контейнере.
jehy Автор
05.07.2024 08:42А это хороший вопрос!
На текущем сетапе у меня выходит 1 инстанс Postgres на домашнем сервере (для Home Assistant) и три на облачном (vaultwarden+zabbix+authentik). Всего на домашнем сервере у меня запущено 20 контейнеров и занято порядка 4 GB памяти из 8, а на удалённом - 22 контейнера и занято порядка 2.5 из 4 GB. Понятно, что на значения из вывода top и glances полагаться нельзя, потому есть shared memory. С другой стороны, по идее есть дефолтный лимит на контейнеры в 64 MB shared memory, который я нигде не поднимал. Так что отвечу так - пока что я не упирался в лимит по памяти, чтобы всерьёз об этом задуматься. И скорее всего большинство владельцев self hosted в него тоже не упрутся. Если же когда-то у меня возникнет задача хостить с десяток разных баз, то тут я уже задумаюсь.Но, судя по тому, что три инстанса Postgres работают на сервере с 19 другими контейнерами (в том числе некоторые из них явно прожорливы по памяти), и всем хватает с избытком - речь таки не идёт про гигабайты на инстанс.
Ну и да - в целом нет проблем раздать внутри одного контейнера права доступа к базам таким образом, чтобы изолировать друг от друга данные разных приложений. И не сложно настроить бэкап. Просто станет чуток менее прозрачной нагрузка - надо будет смотреть её непосредственно в базе, а не по самому контейнеру. Так что если у вас правда много баз - почему нет.
ptr128
05.07.2024 08:42+1На современных ядрах Linux huge pages 1 ГБ, а значение shared_buffers рекомендуется кратным размеру huge pages. Можно, конечно, отказаться от huge pages, но это будет в ущерб производительности.
Понятно, что PostgreSQL допускает значение shared_buffers даже 128 КБ, а по умолчанию он 128 МБ, но деградация производительности при таких настройках получается существенная уже при БД размером свыше гигабайта. Столь малое значение shared_buffers оправдывается возможностью запуска где угодно. При этом явно рекомендуется отдавать shared buffers 25-40% всей оперативки. И как решать эту проблему при контейнеризации нескольких инстанцов, я не знаю.
jehy Автор
05.07.2024 08:42деградация производительности при таких настройках получается существенная уже при БД размером свыше гигабайта.
Ну вот опять же вопрос, что там крутится, и какая производительность нужна. У меня все базы довольно мелкие (как раз до гигабайта), и мне не требуется оптимальная производительность ни в одной из них.
ptr128
05.07.2024 08:42Так если бы подобное уточнение было в статье, я бы и не задавал этих вопросов. Спасибо, что разъяснили, что контейнеризацию инстанцов PostgreSQL Вы сами считаете допустимой только в частных случаях: для БД до гигабайта и когда производительность не особо важна.
jehy Автор
05.07.2024 08:42+1Ну да, я старался делать ремарки, что это кажется оптимальным лично мне конкретно для моей конфигурации, но видимо надо чаще их ставить. Пойду добавлю про это в статью.
werter_l
05.07.2024 08:42Цикл заметок по работе с proxmox ve и не только - https://forum.netgate.com/topic/163435/proxmox-ceph-zfs-pfsense-и-все-все-все-часть-2/
Для дома:
Есть такой же вариант по-мощнее с amd ryzen 5700u
nav68
05.07.2024 08:42Партизанский маркетинг бекапов в яндекс-облако...
jehy Автор
05.07.2024 08:42На случай, если вы не в курсе, маркетинг - это платная услуга от людей, работающих в рекламе. Я работаю в разработке, и ещё пишу учебные курсы. Не вижу оснований искажать или утаивать детали моего конкретного сетапа, ориентируясь на аллергию людей на какие-то компании. Был бы у меня какой-то софт и железо других компаний - упомянул бы их. Но не сложилось. Впрочем, есть люди, которые хотят везде грязь какую-то увидеть, печально это.
aleksejs1
05.07.2024 08:42А можно чуть чуть подробнее про инфраструктуру?
Т.е. часть софта стоит на домашнем железе, а часть в vps.
Причём в vps стоят более критические штуки типа Authentik и vaultvarden.
А есть ли какая-то реплика этого vps?
Как-то очень не хотелось бы остаться без авторизации и менеджера паролей, если vps отвалится. Особенно, если в этот момент находиться в отпуске далеко от дома.
jehy Автор
05.07.2024 08:42+1Реплики нет, но отвал vps кажется маловероятным, меня пока это облако не подводило. Кроме того, я периодически делаю слепки его дисков, и могу его переподнять удалённо примерно за полчаса. А вот с домашним сервером такое не прокатит.
itGuevara
Для домашнего windows сервера (веб сайты и терминальный сервер) какое бесплатное (и не шибко прожорливое) ПО для защиты посоветуете?
jehy Автор
Ох. Внезапный вопрос. У меня очень давно не было windows сервера, да и десктопы последние лет 10 тоже на линуксе. Так что надежда на других читателей.
Можно было бы сказать про всякий WAF, но кажется они в последнее время умерли.
От себя могу только порекомендовать разве что выставлять только контейнеризированный софт, и строго нужные порты.
Georgii_L
не светить в интернет сам сервер. Он за роутером на котором nas и мсэ. Например, микротик
rdp защищать подключением доступным только через vpn, в иделе ещё и с белыми списками по ip. причем белый список на том же микротике можно расширять, например, через посылку запросов в определенной последовательности на порты. Ну а vpn клиент умеет уже давно даже смартфон на андройде
С веб сервом-там много работы. Поэтому обходное решение предложу- hiper-v или виртуалбокс. И включен снепшот. Поменяли, что то сильно- слили с основным фалом и снепшот новый сделали. + такого варианта, что даже если поломают- откатите быстро. Для энтерпрайз неприменимо из за падение производительности. Для домашнего сервера- почему бы и нет.
Kil1J0y
Ну или защита через ssh, у меня как раз одна из машин на windows server, подключаюсь через роутер на базе openwrt. Но для защиты локалки использую ngfw.
ST4NN
На сетевом уровне - MikroTik (физический или CHR) и чёрные списки, наполняемые через PSD и обнаружение DoS и брутфорса
RDP и ряд других сервисов можно защитить через аналог Fail2Ban, но с распределённой базой сообщества