Среди обычных пользователей (физлиц) в последнее время наметилась тенденция ухода из облака на свою инфраструктуру. Об экономии тут речи обычно не идёт, потому что облачные сервисы Google, Apple и прочие заманивают бесплатными тарифами. Но у людей растёт понимание, что нельзя доверять Google. Надеяться можно только на себя.
В связи с этим стоит внимательнее посмотреть на стандартный софт для самохостинга, а также на последние новинки, которые имеют шанс заменить что-то из стандартного набора.
▍ Стандартный набор
Примерный набор программ для домашнего сервера:
-
Home Assistant для контроля домашнего освещения и прочих функций умного дома.
-
Wireguard или Tailscale для сокрытия домашней сети от внешних глаз и использования домашнего сервера в качестве VPN при внешнем доступе.
-
Plex или другой медиасервер для стриминга видео.
-
NextCloud для резервного копирования.
-
Caddy — веб-сервер, файл-сервер и обратный прокси для доступа к NextCloud.
-
Mailcow или другой почтовый сервер.
-
Docker для запуска контейнеров с необходимым софтом.
- Софт для мониторинга (тут много вариантов).
-
Adguard, Pi-hole (на Raspberry Pi) или другой файрвол для блокирования рекламы и нежелательных соединений.
-
Transmission — торрент-клиент.
- И др.
Абсолютно любую персоналку или ноутбук можно использовать как домашний сервер, даже «Мак». Тогда он приобретает совершенно новые качества и функциональность, в том числе заменяя собой дорогущий фирменный NAS.
▍ Простой почтовый сервер на самохостинге
При выборе почтового сервера можно обратить внимание на новый опенсорсный проект Poste.io. Это универсальное решение типа «всё-в-одном»: SMTP + IMAP + POP3 + антиспам (RSPAMD) + антивирус (ClamAV) + веб-админская панель с поддержкой разных прав доступа + веб-почта на HTTPS (Roundcube).
Установка почтового сервиса из стандартных опенсорсных компонентов — непростая задача
Разработчики постарались сделать установку почтового сервера максимально простой: всего за пять минут, причём бóльшую часть этого времени занимает выполнение скриптов: «Пакет разработан с разумными настройками по умолчанию, чтобы быстро приступить к работе, без необходимости разбираться во внутреннем устройстве и с минимальной вероятностью принятия решений, которые могут сломать почтовую систему». Установка выполняется в три шага.
Пользовательские данные и конфигурация в пакете строго отделены от бинарников. БД пользователей хранится в файле SQLite. Это делает Poste.io полностью совместимой с внешним хранилищем. Миграция, резервное копирование и обновление обычно сводятся просто к копированию файлов.
Poste.io поставляется с нативной реализацией SPF, DKIM, DMARC и SRS, с простым мастером установки. Редиректы, автоответы и прочая фильтрация выполняется скриптами на языке Sieve. Все пароли по умолчанию хэшируются в SHA512 (5000 раундов хэширования) с солью.
Установить почтовый сервер можно сразу в виде контейнера Docker.
Владельцы собственных почтовых серверов говорят, что самая сложная задача — сохранение чистой репутации своих IP-адресов и домена (при использовании SPF и DKIM), поскольку крупные почтовые провайдеры вроде Google и Microsoft заносят адреса в чёрные списки, отказываются принимать почту или ограничивают количество сообщений. Решение этих проблем требует времени и сил, а опытные администраторы уже наизусть знают адреса всех форм, которые надо заполнять в случае блокировки.
Poste.io распространяется в трёх версиях: бесплатной и двух платных. Среди дополнительных функций в платных версиях — функция администраторов доменов, проверка исходящего трафика на спам, расширенная диагностика DNS и почтового сервера.
Демо Poste.io.
▍ Хостинг собственного VPN
Среди определённой категории пользователей в 2022−2023 гг. выросла потребность в использовании VPN, благо это ещё остаётся полностью законным способом доступа к интернет-ресурсам. В связи с этим актуальными стали инструкции по установке VPN на своём сервере. Такие инструкции публиковались и на Хабре.
Как пишут в статье «Автоматический обход блокировок» на Хабре, весной 2022 года стало актуально создавать собственные VPN на основе мощностей арендных VPS. Те же самые инструкции применимы и в варианте развёртывания DIY VPN через домашний сервер/маршрутизатор.
На самом деле это не так просто, учитывая множество VPN-протоколов, несовместимых друг с другом. Но в 2023 году это по-прежнему актуальная задача, поскольку список заблокированных ресурсов постепенно растёт, а в перспективе может включить в себя жизненно важные ресурсы.
(с) Вася Ложкин
▍ Wayback: локальный архив интернета
Ещё одна полезная разработка последних месяцев, которая может пригодиться на домашнем сервере — это Wayback, локальный аналог известной Машины времени (Wayback Machine) на сайте Веб-архива.
Wayback локально сохраняет веб-страницы и видео на случай отключения Сети или исчезновения оригиналов из интернета. Инструмент разработан в первую очередь для архивариусов и хранителей контента, но может быть использован и обычными пользователями для собственных нужд.
Реализована интеграция с Internet Archive, archive.today, IPFS, Telegraph и различными файловыми системами. Есть встроенный поисковик, плеер и загрузчик потокового видео (требуется FFmpeg). Массовое скачивание и архивация по спискам URL (
wayback url.txt
). Взаимодействие с IRC, Matrix, ботами Telegram и Discord, Mastodon, Twitter и XMPP в качестве службы-демона.Флаги и примеры использования:
$ wayback -h
A command-line tool and daemon service for archiving webpages.
Usage:
wayback [flags]
Examples:
wayback https://www.wikipedia.org
wayback https://www.fsf.org https://www.eff.org
wayback --ia https://www.fsf.org
wayback --ia --is -d telegram -t your-telegram-bot-token
WAYBACK_SLOT=pinata WAYBACK_APIKEY=YOUR-PINATA-APIKEY \
WAYBACK_SECRET=YOUR-PINATA-SECRET wayback --ip https://www.fsf.org
Flags:
--chatid string Telegram channel id
-c, --config string Configuration file path, defaults: ./wayback.conf, ~/wayback.conf, /etc/wayback.conf
-d, --daemon strings Run as daemon service, supported services are telegram, web, mastodon, twitter, discord, slack, irc, xmpp
--debug Enable debug mode (default mode is false)
-h, --help help for wayback
--ia Wayback webpages to Internet Archive
--info Show application information
--ip Wayback webpages to IPFS
--ipfs-host string IPFS daemon host, do not require, unless enable ipfs (default "127.0.0.1")
-m, --ipfs-mode string IPFS mode (default "pinner")
-p, --ipfs-port uint IPFS daemon port (default 5001)
--is Wayback webpages to Archive Today
--ph Wayback webpages to Telegraph
--print Show application configurations
-t, --token string Telegram Bot API Token
--tor Snapshot webpage via Tor anonymity network
--tor-key string The private key for Tor Hidden Service
-v, --version version for wayback
Полный список параметров см. здесь.
Для дополнительной конфиденциальности и доступности Wayback может работать в качестве скрытого сервиса Tor или локальной веб-страницы.
Среди других программ для архивации интернета можно назвать ArchiveBox и Shiori.
▍ Самохостинг LLM
Конечно, главной темой 2023 года стали большие языковые модели (LLM) типа ChatGPT. Благодаря утечкам исходного кода и усилиям opensource-сообщества сейчас подготовлены десятки проектов для развёртывания обученной системы ИИ на своём хостинге. Например, см. статью «Запуск аналогов ChatGPT на домашнем ПК в пару кликов и с интерфейсом» на Хабре.
Это имеет смысл как минимум по двум причинам:
-
Тюнинг LLM под собственные нужды.
- Работа с конфиденциальными данными, которые вы не хотите отправлять в облако, а тем более отдавать для обучения нейросети.
По тем же причинам некоторые предпочитают не использовать стандартные (облачные) сервисы автодополнения кода типа Copilot, а установить локальный аналог Copilot.
▍ Хостинг веб-приложений
Как видим, постоянно выходит множество отличных приложений для домашнего сервера. Проблема в том, что рядовому юзеру сложно их установить на свою машину. Для решения этой проблемы и разработана Sandstorm — опенсорсная платформа для самохостинга веб-приложений. Основная аудитория — пользователи без технической подготовки.
Приложения для домашнего сервера скачиваются из центрального каталога и устанавливаются в один клик: чат, файловое хранилище, менеджер проектов, редактор документов и др.
С технической точки зрения Sandstorm тоже устроен интересно: вместо стандартной контейнеризации сервисов здесь реализована контейнеризация объектов.
▍ Cобственный сервер для умного дома
Зачем мириться с ограничениями сторонних программ для управления умным домом, если можно написать собственный сервер? Разработчик по имени Ренато Атайдес (Renato Athaydes) так и сделал.
Зачем? В первую очередь для того, чтобы проще было использовать в умном доме Raspberry Pi и другие самодельные приспособления, а не те гаджеты, которые предусмотрены в коммерческих системах умного дома. Вероятно, стандартный опенсорсный сервер Home Assistant показался ему слишком сложным.
Raspberry Pi и Raspbee2 вместо дорогого фирменного хаба IKEA Dirigera (внизу)
В данном случае скрипты управления умным домом написаны на языке программирования Lua и выполняются на простом и удобном веб-сервере Mako, который идеально подходит для таких применений и, в свою очередь, сделан на базе сервера Barracuda Application Server для встроенных систем типа VxWorks, QNX, Zephyr, FreeRTOS+TCP и других операционок.
Коммерческие устройства для умного дома (контроллеры, лампочки, датчики) продаются с большой наценкой (видимо, наценка за ум). Поэтому самодельный контроллер позволяет сэкономить деньги, что в наше тяжёлое время не будет лишним.
Выиграй телескоп и другие призы в космическом квизе от RUVDS. Поехали? ????
Комментарии (74)
13werwolf13
05.07.2023 10:03+4посмотрел я на этот ваш Poste.io (давно выбираю себе selfhosted почтовик на замену ручному набору демонов)
docker, elasticsearch, roundcube вебморда.. а это всё точно нужно для почтовика? имхо - нет.
а зачем нужен Sandstorm я вообще не понял.. какая-то лишняя прослойка для поднятия сервисов которые и без неё поднять дело не хитрое.
deseven
05.07.2023 10:03+1Да, я тоже уже много лет ищу какой-то простейший all-in-one почтовый сервер с минимальным функционалом, но все, до чего дошел прогресс, это напихивание пятидесяти сервисов в докер, из которых ты будешь использовать 3-4. Грусть-тоска.
postdig
05.07.2023 10:03
deemytch
05.07.2023 10:03У меня postfix+dovecot уже больше 10 лет. Клиент thunderbird и К-9 на телефоне. (Не из вредности спрашиваю) почему бы не их?
13werwolf13
05.07.2023 10:03а они и есть, но хочется какое-то более современное чтоли, более целостное, более удобное решение..
NutsUnderline
05.07.2023 10:03+10https://github.com/awesome-selfhosted/awesome-selfhosted очень большой список софта который можно.. хостить. как на VPS так и дома, в общем то ;)
Nagisa
05.07.2023 10:03+4у меня собственный "домашний хостинг" с 2003ого года, основной набор - почта, plex и все остальное тоже появидось примерно в те годы.
помню как меня зазывали - мол облака дешево итд итп. но облака это лишь инструмент: они полезны на время роста и быстрого масштабирования, далее все равно нужная своя инфраструктура.
ps: кстати могу похвастаться - в позапрошлом месяце домашняя площадка отдала внешним клиентам ~170ТБ по двум оптическим каналам.
andreymal
05.07.2023 10:03+4Со своей почтой есть две огромные проблемы.
Первая — IP-адрес. Если запускать почтовый сервер дома с домашним интернет-провайдером, то некоторые почтовые серверы отклоняют все письма с ошибкой в стиле "у вас домашний ISP, с него нельзя отправлять почту" — даже если есть корректные SPF и DKIM. Я уже пытался.
Вторая — домен, к которому привязана почта. Допустим, я впадаю в кому и лежу в больнице три месяца, на карточке денег нет и автопродление домена не срабатывает, домен становится доступен для покупки и его кто-то покупает. Хорошо, если покупает киберсквоттер. Плохо, если покупает какой-нибудь мой злейший враг, который, получив доступ к домену моей почты, начинает получать доступ ко всем аккаунтам, которые привязаны к моей почте и на которых нет двухфакторки. Когда я наконец выйду из комы — как спасаться?
Tarakanator
05.07.2023 10:03"у вас домашний ISP, с него нельзя отправлять почту"
А есть документы по которым нельзя, или это они просто так решили?
NutsUnderline
05.07.2023 10:03+1Тот случай когда придется спрашивать у бездушного робота ;) Настроили их так админы
Tarakanator
05.07.2023 10:03понятно что настроили, вопрос только в том это админы дураки, или действительно есть где-то такое в документах в разделе бест практикс.
veryboringman
05.07.2023 10:03Внутренние документы компании вполне могут быть. Ну и админы не дураки - стоит задача минимизировать спам, вот они ее и выполняют.
Tarakanator
05.07.2023 10:03+1Я про бест практикс в целом. А не про конкретную компанию, которая что хочет, то и может творить.
veryboringman
05.07.2023 10:03Так очень легко посмотреть, с каких ip адресов ломятся спамеры - это хакнутые VPS и домашние компьютеры.
Сделать с этим ничего нельзя, но можно их заблокировать совсем. Кто запретит? Некоторые, к примеру, целые страны блокируют, если не ожидают оттуда почты.
Tarakanator
05.07.2023 10:03Сделать с этим ничего нельзя, но можно их заблокировать совсем. Кто запретит?
А если с такого заблокированного адреса прилетит валидное письмо?
А за его игнорирование потом прилетит по жопе фирме?veryboringman
05.07.2023 10:03Вопрос в вероятности этого события. Если она стремится к нулю - то ее можно игнорировать, ибо никаких серьезных последствий это нести не может - можете привести пример такого письма, за которое "прилетит по жопе фирме", но чтобы оно было отправлено с дешманской VPS или домашней подсети?
Tarakanator
05.07.2023 10:03Некоторые сайты всё ещё принимают заказы по почте.
Теоретически, если я отправлю письмо с самохостинга, а его будут отказываться принимать это будет нарушением публичной оферты.
Ну или я в рамках досудебного урегулирования спора пошлю сообщение на почту, а его заигнорят (правда тут суд может сказать что надо было бумажной почтой слать, а может и не сказать, в законе нет требования именно бумагой слать.), следовательно получу повод для обращения в суд, а там проигравшей стороне штрафы.veryboringman
05.07.2023 10:03Никто не обязан принимать всю почту по email. Нет такого требования в законодательстве всех стран. В оферте будет по этому поводу наверняка что-то, посмотрите текст.
По досудебной претензии нет ни одного примера в судебной практике, чтобы за претензию, которую отбил smtp демон - кого-то наказали. А раз нет судебной практики, то и риски минимальны.
Tarakanator
05.07.2023 10:03Я про случай когда не просто ложно-положительно тебя за спамера приняли, а про случай когда отказываются принимать письма даже если ты напишешь что ты не спамер.
veryboringman
05.07.2023 10:03Пишите почтой, все примут. А в интернет - все по желанию принимающей стороны.
PuerteMuerte
05.07.2023 10:03или действительно есть где-то такое в документах в разделе бест практикс
Считайте, что есть - домашние почтовики этак в 99.999% сейчас используются спамерами, и в 0.001% кем-то для самохостинга личной почты.
Tarakanator
05.07.2023 10:03ок, вот кому-то с самохостинга отправили досудебное письмо. Его отправило в спам, т.к. это самохостинг. Вопрос: к кому возникнут вопросы о том, почему юристы не получили данное письмо?
NutsUnderline
05.07.2023 10:03+1Рекомендуется (т.е. реально бест практикс ) подобное слать заказным письмом, на бумаге и с подтверждением. Письма важные иногда "теряются" и просто бумажные в подобных случаях.
Tarakanator
05.07.2023 10:03+1А вот тут есть момент. Отправляющий может быть не заинтересован в том, чтобы письмо дошло. Если и так знает, что добровольно требования не удвлетворят.
veryboringman
05.07.2023 10:03Вопросы буду к отправившему - он получил на свой ящик отлуп от невозможности доставить письмо, из-за блокировки его почтового сервера, почему он не отправил претензию почтой?
Значит не очень то хотел, чтобы его претензию получили. Ну и в сад.
Да, а юристы комании скажут, что с домашних подсетей и VPS приходят тоннами фишинговые письма и они заблокированы по требованиям безопасности. И приведу ссылку на исследования. И все им поверят.
Tarakanator
05.07.2023 10:03отправивший написал с другой почты о том, что он не спамер и вот с того сервера идёт не спам.
Либо его внесут в белый список, либо он проявил достаточную настойчивость (думаю суд так решит).veryboringman
05.07.2023 10:03А компания должна верить ему на слово? Спроса то с написавшего - никакого. Написал, что не спамер, а потом заслал миллион писем с рекламой.
Завтра миллион ботов напишет, что они не спамеры и потребуют разрешить прием почты с миллионов ip.
Никакому суду разбирательства по работе почтового сервера коммерческой компании не интересны - потому как обязанности принимать почту со всех ip нет, в законах она не указана.
Tarakanator
05.07.2023 10:03Компания должна обработать его обращение. Могу переформулировать: позвонить в компанию и сообщить что отправил письмо, но оно застряло на вашем спам фильтре.
veryboringman
05.07.2023 10:03Оно не застряло, оно даже не было получено, потому как подключение с домашнего SMTP сервера было отклонено - в этом то и отличие. Как компания может обработать письмо, которое она не получала - не понятно.
Верить на слово анониму, который звонит и требует разблокировать его ip - вообще не понятно зачем.
Tarakanator
05.07.2023 10:03а, понял, я имел ввиду случай когда сообщение было получено, но уже потом его определили в спам.
PuerteMuerte
05.07.2023 10:03Вопрос: к кому возникнут вопросы о том, почему юристы не получили данное письмо?
К отправителю. Качество доставки "обычной" корреспонденции, которая не является заказной - вообще не проблема ни получателя, ни почтальонов, как для биологических почтальонов, так и для электрических.
Tarakanator
05.07.2023 10:03Так доставка была. Компания получила письмо (если у неё своя почта) и уже она отказалась его принимать, о чём ей было сказано.
PuerteMuerte
05.07.2023 10:03Вы рассуждаете как технарь, дескать, раз физически долетело до корпоративного почтового сервера, то доставка была. Нет, это не сработает. Доставка была, если отправитель покажет уведомление о прочтении, либо если получатель сам подтвердит получение.
Если ваше письмо почтовый сервер отлупил, ну это то же самое, что вы пришли с бумажным письмом, а там в офисе дверь закрыта. Это значит, что вам нужно другой способ доставки придумать, а не сваливать ответственность на владельца двери.
Tarakanator
05.07.2023 10:03Доставка была, если отправитель покажет уведомление о прочтении
Даже при получении ЗАКАЗНЫХ писем нигде не ставится уведомление о ПРОЧТЕНИИ.
Если ваше письмо почтовый сервер отлупил, ну это то же самое, что вы пришли с бумажным письмом, а там в офисе дверь закрыта.
Да, только вы забываете нюанс. Продолжение истории. Письмо положили в почтовый ящик и по телефону сообщили что письмо вас в нём дожидается.
PuerteMuerte
05.07.2023 10:03Даже при получении ЗАКАЗНЫХ писем нигде не ставится уведомление о ПРОЧТЕНИИ.
У бумажных - о получении, у электронных - о прочтении. ВНЕЗАПНО :)
Да, только вы забываете нюанс. Продолжение истории. Письмо положили в почтовый ящик и по телефону сообщили что письмо вас в нём дожидается
И что? Документ, подтверждающий получение бумажного письма - это либо почтовая квитация, если письмо заказное, или канцелярская роспись/печать о получении, или канцелярская же запись в журнале корреспонденции. Это не рассказы о том, что "мы позвонили и попросили забрать". Я могу сказать, что не расслышал, или мне лень/некогда/потерял ключ/бомжи украли/проверяю почтовый ящик раз в месяц второго числа, всё это достаточно уважительные причины, почему я не получил ваше письмо, которые вы там куда-то положили и ушли.
orignal
05.07.2023 10:03Ну не у всех. Например в дойче телеком на вопрос, почему дают отлуп почте, отвечают живые люди и стараются решить проблему.
nidalee
05.07.2023 10:03+4Когда я наконец выйду из комы — как спасаться?
Проплачивать на N лет вперед.
Nagisa
05.07.2023 10:03да, нужна обратная зона. в принципе достаточно провайдеров которые ее прописывают.
домен - не держите доменов в РФ. регистрируйте com за границей и оплачивайте его хоть на 9ть лет вперед.
andreymal
05.07.2023 10:03нужна обратная зона
Если почтовый сервер отклоняет почту на основании «неправильного» провайдера, то обратная зона вряд ли поможет
и оплачивайте его
Криптой, что ли? Я наоборот был вынужден в марте-апреле 2022-го перенести всё своё из-за границы обратно в РФ из-за невозможности оплачивать
nidalee
05.07.2023 10:03+3домен — не держите доменов в РФ. регистрируйте com за границей и оплачивайте его хоть на 9ть лет вперед.
Как бывший владелец домена на namecheap — возражаю, держите домены в РФ, либо за крипту. Если регистратор интересуется страной проживания — идет на три буквы.
SpecterOfChaos
05.07.2023 10:031 Решается запросом ptr-записи у провайдера. В целом они не обязаны, но мне дважды пошли на встречу. Хотя сейчас почта в облаке - тяжело спам фильтровать.
2 решаю это закидывание на счёт денег на два года и напоминалкой в календаре. Домен с 2007 года, полёт нормальный)
NutsUnderline
05.07.2023 10:03Вообще так локально удобно хостить то что требует больших объемов хранилища. Блокчейны, IPFS например .. на VPS каждый гиг хранилища стоит заметных денег и поднять полную ноду скажем bitcoin задешево неполучится. HDD storage VPS предлагают заметно меньше, как мне показалось, и берут за это некопеечно
grudovoff
05.07.2023 10:03С селфхостед приложениями более-менее понятно. А на чем их хостить? Чтоб тихо и стабильно..
tmtm
05.07.2023 10:03Отличная статья! Спасибо!
К слову, забавно, что в 2014 году рассуждал на тему изменений инфраструктурного тренда https://habr.com/ru/sandbox/79675/
NutsUnderline
05.07.2023 10:03Ну как сказать, описан в общем то IPFS который вроде чуть позже и появился: " Речь скорее о том, что облако выдаст пользователю контент в том случае, если он полностью доступен в локальном хранилище и запросит недостающие куски контента у соседних облаков, в противном случае. "
Nichls
Честно говоря давно уже многие вещи реализую на своей стороне: почта, DNS, мониторинг, облачное хранилище, гипервизор и т.д.
Сейчас планирую свой сервер видеонаблюдения реализовать.
Доверие к коммерческим организациям утеряно давно. Использую их там, где нет альтернативы.
Кое-что полезное в статье нашёл.
Благодарю.
mihmig
>>сервер видеонаблюдения
У меня на 4 китайских камеры 3 различных приложения, (пока) работающих через китайские облака.
Слышали ли о каких-либо вариантах локального использования таких камер?
DaemonGloom
Всё зависит от конкретных камер, какие-то локально можно, какие-то — нет.
Jasik
Если камеры могут без дополнительного софта отдавать RTSP или MJPG поток
andreymal
Только вот управлять настройками камеры всё равно придётся через облачное приложение
Возможно, было бы практичнее перепрошить на какой-нибудь OpenIPC, но это надо чтобы камеры были совместимые и чтобы руки из правильного места росли
shadrap
OpenIPC проект смотрели? Конечно это хардкорный DIY и пока ни софт ни тем более поддержка со стороны разработчиков не на высоте, но это локал)