Софт для самохостинга: что нового в 2023 году
Среди обычных пользователей (физлиц) в последнее время наметилась тенденция ухода из облака на свою инфраструктуру. Об экономии тут речи обычно не идёт, потому что облачные сервисы 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. Поехали?