Софт для самохостинга: что нового в 2023 году

zahaetienpvjh6mpjnk06bqmemy.jpeg

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

872ywbgzpkholb6puf7zhp6xmsy.png
Установка почтового сервиса из стандартных опенсорсных компонентов — непростая задача

Разработчики постарались сделать установку почтового сервера максимально простой: всего за пять минут, причём бóльшую часть этого времени занимает выполнение скриптов: «Пакет разработан с разумными настройками по умолчанию, чтобы быстро приступить к работе, без необходимости разбираться во внутреннем устройстве и с минимальной вероятностью принятия решений, которые могут сломать почтовую систему». Установка выполняется в три шага.

Пользовательские данные и конфигурация в пакете строго отделены от бинарников. БД пользователей хранится в файле SQLite. Это делает Poste.io полностью совместимой с внешним хранилищем. Миграция, резервное копирование и обновление обычно сводятся просто к копированию файлов.

ax_d43ztwts99qmqgoe_tn8c_pu.png

Poste.io поставляется с нативной реализацией SPF, DKIM, DMARC и SRS, с простым мастером установки. Редиректы, автоответы и прочая фильтрация выполняется скриптами на языке Sieve. Все пароли по умолчанию хэшируются в SHA512 (5000 раундов хэширования) с солью.

Установить почтовый сервер можно сразу в виде контейнера Docker.

mscst6u6whrucxtjgta-fw6jhgc.png

Владельцы собственных почтовых серверов говорят, что самая сложная задача — сохранение чистой репутации своих IP-адресов и домена (при использовании SPF и DKIM), поскольку крупные почтовые провайдеры вроде Google и Microsoft заносят адреса в чёрные списки, отказываются принимать почту или ограничивают количество сообщений. Решение этих проблем требует времени и сил, а опытные администраторы уже наизусть знают адреса всех форм, которые надо заполнять в случае блокировки.

Poste.io распространяется в трёх версиях: бесплатной и двух платных. Среди дополнительных функций в платных версиях — функция администраторов доменов, проверка исходящего трафика на спам, расширенная диагностика DNS и почтового сервера.

Демо Poste.io.

▍ Хостинг собственного VPN


Среди определённой категории пользователей в 2022−2023 гг. выросла потребность в использовании VPN, благо это ещё остаётся полностью законным способом доступа к интернет-ресурсам. В связи с этим актуальными стали инструкции по установке VPN на своём сервере. Такие инструкции публиковались и на Хабре.

Как пишут в статье «Автоматический обход блокировок» на Хабре, весной 2022 года стало актуально создавать собственные VPN на основе мощностей арендных VPS. Те же самые инструкции применимы и в варианте развёртывания DIY VPN через домашний сервер/маршрутизатор.

На самом деле это не так просто, учитывая множество VPN-протоколов, несовместимых друг с другом. Но в 2023 году это по-прежнему актуальная задача, поскольку список заблокированных ресурсов постепенно растёт, а в перспективе может включить в себя жизненно важные ресурсы.

ade5gqzukgceh55oanntvzpg9uq.jpeg
© Вася Ложкин

▍ Wayback: локальный архив интернета


Ещё одна полезная разработка последних месяцев, которая может пригодиться на домашнем сервере — это Wayback, локальный аналог известной Машины времени (Wayback Machine) на сайте Веб-архива.

Wayback локально сохраняет веб-страницы и видео на случай отключения Сети или исчезновения оригиналов из интернета. Инструмент разработан в первую очередь для архивариусов и хранителей контента, но может быть использован и обычными пользователями для собственных нужд.

608tkvcgdrco7rqiql75lwwjic0.png

Реализована интеграция с Internet Archive, archive.today, IPFS, Telegraph и различными файловыми системами. Есть встроенный поисковик, плеер и загрузчик потокового видео (требуется FFmpeg). Массовое скачивание и архивация по спискам URL (wayback url.txt). Взаимодействие с IRC, Matrix, ботами Telegram и Discord, Mastodon, Twitter и XMPP в качестве службы-демона.

sr2zdcfovkyh4qfbbihellgyxgy.png
h3v36bt8lowxpu873i9bl5zqe2g.png

Флаги и примеры использования:

$ 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 на домашнем ПК в пару кликов и с интерфейсом» на Хабре.

Это имеет смысл как минимум по двум причинам:

  1. Тюнинг LLM под собственные нужды.
  2. Работа с конфиденциальными данными, которые вы не хотите отправлять в облако, а тем более отдавать для обучения нейросети.


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

▍ Хостинг веб-приложений


Как видим, постоянно выходит множество отличных приложений для домашнего сервера. Проблема в том, что рядовому юзеру сложно их установить на свою машину. Для решения этой проблемы и разработана Sandstorm — опенсорсная платформа для самохостинга веб-приложений. Основная аудитория — пользователи без технической подготовки.

Приложения для домашнего сервера скачиваются из центрального каталога и устанавливаются в один клик: чат, файловое хранилище, менеджер проектов, редактор документов и др.

pzz1wrh97w9n66sdjggry01cddo.jpeg

С технической точки зрения Sandstorm тоже устроен интересно: вместо стандартной контейнеризации сервисов здесь реализована контейнеризация объектов.

aiss3_fv9lst0x-6qkm7slterjc.png

▍ Cобственный сервер для умного дома


Зачем мириться с ограничениями сторонних программ для управления умным домом, если можно написать собственный сервер? Разработчик по имени Ренато Атайдес (Renato Athaydes) так и сделал.

Зачем? В первую очередь для того, чтобы проще было использовать в умном доме Raspberry Pi и другие самодельные приспособления, а не те гаджеты, которые предусмотрены в коммерческих системах умного дома. Вероятно, стандартный опенсорсный сервер Home Assistant показался ему слишком сложным.

ivwsqytedblhub3k8giqadkh1ze.jpeg
Raspberry Pi и Raspbee2 вместо дорогого фирменного хаба IKEA Dirigera (внизу)

В данном случае скрипты управления умным домом написаны на языке программирования Lua и выполняются на простом и удобном веб-сервере Mako, который идеально подходит для таких применений и, в свою очередь, сделан на базе сервера Barracuda Application Server для встроенных систем типа VxWorks, QNX, Zephyr, FreeRTOS+TCP и других операционок.

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

Выиграй телескоп и другие призы в космическом квизе от RUVDS. Поехали?

© Habrahabr.ru