Кто я и зачем вам это нужно?
Привет, меня зовут Камиль, мне 23, я из Москвы и работаю аналитиком/инженером данных в банке. И не смотря на душную итшную работу, у меня есть еще более душное увлечение: homelabbing. Это хобби, когда люди создают у себя дома небольшие (кто-то и большие) серверные лобаратории и переносят часть личных задач, которые обычные люди решают сторонними сервисами, туда.
У меня нет цели доказать кому-то, что надо так упарываться, но для меня это имеет смысл. Почти все критически важные мне данные и сервисы развернуты на моей личной инфраструктуре и я по мере своих знаний обеспечиваю их надежность. Я никого не призываю делать так же, но получаю огромное удовольствие от того, что делаю это сам.
Почему я вообще про это рассказываю? Все мы видим, что сейчас происходит с интернетом и политиками распространения ПО, блокировками (подписки, зависимость от чужих серверов даже там, где это вообще не нужно и тд). Меня это пугает и поэтому последний +- пол года-год я занимался тем, что по сути растил собственную сеть и инфраструктуру сервисов для себя самого.
С чего все началось
Года 2 назад я купил себе первый Raspberry pi 5, зная от мира Linux только базу из разряда (ls, pwd, mkdir, echo и тд), даже струтуру директорий не знал. И сделал свою первую smb шару на 1ТБ ssd. Я был счастлив, у меня есть личное файловое хранилище и мой интерес начал расти, я стал пробовал разный ноывй софт, погружаться в linux и особенно в сети. Вот как-то так это выглядело.

Вскоре эта сборка перетерпела маленькое изменение и к ней добавилась плата-sata коннектор и собственно 4 SATA SSD.

И в целом это меня устраивало, пока не приспичило построить что-то на основе более больших по объему HDD, и тогда был куплен 2 разпберри и собран на 3D принтере корпус для NAS из rpi5.


Когда мои аппетиты подросли, я стал сталкиваться с ограничениями rpi5: 4K HEVC потоковое транскодирование он не тянет (для этого даже пришлось выучить как устроены видеокодеки и перекодировать некоторые фильмы в Handbrake), minecraft сервер тоже, памяти впритык, разворасивать базы данных на sd карте - тоже идея очень плохая и я подошел к решению проблемы резко и кардинально.
Новый опыт
Мои хотелки росли, познания в Linux тоже, личная база знаний в Obsidian тоже и я решил, что готов замахнуться на что-то крупнее и конце концов заказал железо для полноценного домашнего ПК (сервера) на Intel Core i7 13700 (эта зверюга точно потянет мои задачи ПОКА что).



Список тут такой:
Процессор Intel Core i7-13700 LGA1700
Кулер для процессора Thermalright SI-100 BLACK (SI-100-BL)
Материнская плата Asus ROG STRIX B760-I GAMING WIFI (LGA1700, mini-ITX)
Оперативная память Kingston DDR5 32Gb (2x16Gb) 5600MHz pc-44800 FURY Beast Black (KF556C40BBK2-32)
SSD диск Adata LEGEND 860, 1000GB, M.2 2280, PCIe 4.0 x4
Блок питания уже был от старой моей сборки 1STPLAYER SFX, 750W, 80+ Platinum (PS-750SFX)
И главное: Корпус Jonsbo N3. NAS корпус, с механикой горячей замены 8 HDD дисков.
Поставил я свою любимую Fedora, вообще без gui. К тому моменту я уже хорошо чувствовал себя в консоли, освоил lazyvim, разные сложные команды, сетевые команды, логику ОС, управление доступами и правами, писал bash скрипты для автоматизации, управлял systemd сервисам и таймерами для разных бэкапов и тд, поставил zsh + omz + pwerlevel10k просто для красоты и я начал игратсья с более мощной игрушкой. Этому серверу уже около 4 месяцев и это была однозначно одна из лучших моих покупок (на все потратил около 100к).
Что я использую и хостю
Я стараюсь заменить как можно больше повседневных утилит и тд на личное selfhosted решение.
Из текущего списка:
Jellyfin — стриминговый сервис, аля Netflix
Navidrome — аля Spotify
filebrowser‑quantum — менеджер файлов, аля Google Drive (у меня диск на 14ТБ, потом хочу еще больше купить)
immich — оч красивая шутка аля Google Photo, все мои фотки только у меня
mscmanager — панель для управления игровыми серверами (у меня minecraft + terraria)
transmission — торрент клиент
vaultwarden — менеджер паролей (это одно из моих любимых, и пароли, и генерация, и ssh ключи, и 30-значные коды и тд)
dnsmasq — локальный DNS сервер для переопределения моих личных доменов (раньше был pi‑hole, но оказался избыточен)
homeassistant — локальное управление умным домом
termix — ssh менеджер
и в конце концов — portainer — веб панель для управления всеми этими докер контейнерами
wireguard — просто для доступа в локальную сеть
nginx - reverse proxy, разводит мои поддомены по внутренним портам, но хочу переехать на caddy, и передать ему управление, как реверс прокси, так и ssl сертификатами
Немного скринов для красоты)





Сеть и как все устроено
Следом, чтобы это все работало нормально, надо было погрузиться в сети.
Немного общих слов о том как все работает. У меня есть домен, арендованный на 5 лет у Cloudflare, который указывает на белый статический ip адрес моего домашнего роутера. Роутер с подсетью 192.168.0.1 пробрасывает 443 порт на мой роутер 192.268.2.1, а тот в свою очередь на сервер с адресом 192.168.2.10. Второй роутер (cudy, прошитый на openwrt) нужен, т.к. на нем поднято xray ядро я думаю и так всем понятно зачем, да и просто удобно лично мне. На сервере nginx принимает запрос, в зависимости от subdomain в http header делает reverse proxy в какой-то локальный порт, к примеру: 2283 для immich, локальные порты закрыты фаерволом для всех, кроме localhost. Так я получаю возможность по своему домену подключаться к своим сервисам, где бы я не находился физически, без какого-либо домашнего VPN (хотя такой тоже есть, для ssh или smb, к примеру).
И казалось бы уже круто, но один раз, когда у меня сдох провайдер, я не смог посмотреть фильм со СВОЕГО ЖЕ сервера дома в 0.5 метре от меня только потому что домен резолвится во внешний ip ISP провайдера и я завишу от них. Соотвественно, надо было сделать как-то так, чтобы дома, домен резолвился не во внешний ip, как у Cloudflare, а в локальный. Для этого нужно локально дома поднять DNS сервер, прописать ему нужный мне домен и его ip, а все остальные увести в upstream на классические DNS сервера (типа 1.1.1.1 или 8.8.8.8 или 9.9.9.9 и тд). Почему-то для этого я выбрал pi-hole, который мне было очень трудно настроить, хотя казалось бы он проще терминала и cli, но я уже настолько привык к терминалу и текстовым командам, что "упрощенный UI для обычных людей" был для меня сложнее. Провозившись с pi-hole 2 недели, я плюнул и поднял dnsmasq легковесный чисто DNS сервер, который часто используется за основу на таких проектах как pi-hole. Поднял его через docker (я стараюсь все поднимать докером, так удобно собирать в одном месте все конфиги, базы и кэш), и буквально 1 конфиг файлом за 5 минут все заработало как надо. Ну я еще прописал новый локальный DNS в DHCP роутера, чтобы каждый клиент, подключающийся к сети автоматически получал от роутера корректный DNS. И все замечательно: у меня https + домен, которые работают корректно из глобальной сети, и эти же домены точно так же работают дома, но резолвясь в локальные адреса, что дает мне дома полную независимость от моего провайдера.
Такими темпами я стал осозновать, что мне интересна тема сетей: я стал изучать что такое модель OSI, как работает сеть на уровне железа, как делают VLAN, что такое managed switch и тд и тд. Почему-то меня всегда тянуло к сетям.
Я осознанно не стал делать raid, докучи еще понаписал бэкап скриптов на bash, поставил их на расписание через systemd таймер, и делаю 5 разных копий своих данных в 3 разных места. Оособенно конфигов, скрипты проходятся по всем системным директориям и через rsync бэкапят любые изменения в конфигах даже сделанные на горячую. Осталось разве что вогнать это все в git, ну это в будущем.
Оправдания и исповедания
Я понимаю, что для обычного человека это жуткий перебор, а даже для среднего профи - я уверен допустил много ошибок. Но наверное это первое серьезное в моей жизни хобби и я безумно рад тому осознанию, что некоторые важные для меня вещи полностью зависят только от меня. Я действительно радуюсь как ребенок от осознания, что у меня всегда есть не просто фильмы лучшие и любимые под рукой, в хорошем качестве, озвучке, без рекламы, так еще они и отображены в красивом сервисе - это греет душу.
Интернету сейчас плохо, не только в России, интернет снова становится трудным, бездушным, сегментированным и видимо все то, что я делал последний год - приводило меня к тому, что я создавал себе свою собственный маленький кусочек полезного, удобного и душевного интернета, который всегда будет со мной. Я знаю, что таких людей, как я, понмиающих ламповость такого - много и надеюсь мы сможем вдохновить бОльшее количество людей не относиться так наплевательски к собственной информации.
В следующих статьях, наверное, более детально углублюсь в технические детали, расскажи про конфиги и тд.
Всем доброго и надежного интернета :-)
Комментарии (13)

FarmForFun
27.03.2026 11:21Чтобы не открывать порты на роутере я использую VPS и lxc с Netbird на домашнем сервере

tspu
27.03.2026 11:21Круто, я тоже сайт держу на куди TR3000 + i2p нём же крутится + вгсервер + 2 роутер AX3000t сяоми, на котором запрет2 + зероблок итд, инет подключен в ван сяоми от лан порта куда, сам пров заходит в ван 2.5 у куди (статика белая РТ + недавно Ipv6 настроил), пока что сильно проще все, просто флешка в порт юсб 3.0 воткнута на ней контент сайта, и вторая копия сайта в клирнет смотрит (уменьшенная, чисто фронт с архивом Zapret-а от Bolvan для винды висит с обновляемыми стратегиями)
NAI
Вообще не очевидно, зачем 443 пробрасывать через два роутера. Это ж входящее соединение, а xray вы используете для ... ну назовем это так - исходящего траффика. Выглядит так как будто надо просто на Роутере А, исходящий траффик завернуть на роутер Б и на этом успокоиться (схема ессно условная). А еще лучше вообще все реализовать на одном роутере... ... в том же pfsense(и прочих альтернативных CHR).
Смысл в том что чем больше у вас устройств - тем больше точек отказа, больше (меньше) TTL и еще пучек приколов может быть. Например поддержка Jumbo Frame разного размера. Да и просто электричества одно устройство жрет меньше чем три отдельных.
Так же рекомендую ооочень осторожно относиться к торчащим в сеть self-hosted сервисам, вот прям очень-очень осторожно. VPN в домашнюю сеть все же лучше. Или хотя бы использовать прокси CloudFlare и закрыть доступ из всех стран кроме вашей\тех в которых бываете (да-да белые списки они такие).
рекомендую посмотреть в сторону paperless-ngx - у меня прям wow-эффект был когда выстроил пайплайн работы с документами (сканы, чеки, счета и прочая бумага)
Celir
Можете описать свой пайплайн для paperless? Интересно с какими проблемами столкнулись, к какой структуре в итоге пришли и как себя проявляет встроенный анализатор.
NAI
Это не тянет на статью, но и не на 5 минут. Если кратко:
Всем входящим документам вешается тег inbox. Кроме совсем уж очевидных которые не меняются и всегда одинаковые типа чеков за коммуналку;
На дашборде (не путать с фильтрами) кроме inbox'а ничего нет - как итог открывая приложение всегда попадаю в раздел документов которые а.надо разгрести б.были добавлены последними;
Основная задача любой документ в первую очередь закинуть в пайперлесс, теги и метаинформацию - потом. По факту inbox разгребаю раз в месяц. Но! ничего не теряется, и в худшем случае перед глазами будет 20 документов вида scan_0123.pdf которые не долго протыкать;
Наш рабочий МФУ умеет сканить на почту. Т.е. я кладу бумагу, ввожу мыло, нажимаю скан и МФУ отправляет на почту письмо. По отправителю, почтовик кладет письмо в папку scans, и оттудава Paperless забирает pdf'ку самостоятельно, парсит, присваивает корреспондетна, теги, тип и пр. Аналогично работает скачивание чеков об оплате всякого. В общем, paperless ползает в почту, но не во всю, а только в определенные каталоги;
Корреспондент и тип документа - как есть только без правовой формы (если появится дубль, но пока такой ситуации не было), то же касается типа "справка", "акт", "договор", "выписка" и пр. - в таком случае автоматическое распознавание работает хорошо и почти не ошибается;
Теги - половина вручную, половина . "вычет 2024", "мащина". Для меня это сущности и контекст. Автоматом навешиваются однозначные теги. Например, если в тексте есть имя домашних животных.
в Custom Fields у меня ровно одно поле - "связанный документ" - удобно когда к договору идут допники и можно связать все отношением один ко многим. Ну и со счетами удобно - вот счет за комм.услуги, вот пачка чеков об оплате
На самом деле работа как с почтой, настраиваешь фильтр, папку, ключевые слова и потом просто смотришь как inbox сам разгребается (в почте). Оставляя тебе 2-3 письма которые непонятно куда пихать.
Единственное чего мне не хватает в paperless это возможности задать множество корреспондентов. Ситуация возникает когда сам пишешь письмо и отправляешь в несколько организаций.
bardak_roman
Комуналка уже в электронном виде, чеки тоже в приложении банка. Не совсем понимаю что сканить и зачем.
NAI
Претензии, договора, допники, чеки за кэш, накладные, передачу ПД, акты, приказы и распоряжения (если это есть в вашей организации), справки и заключения от врачей или ветеринаров
и да и нет, приложение банка не парсит что именно было куплено. Т.е. на вопрос "сколько лет холодильнику" надо будет поковырять приложение или искать в памяти контекст. Бонусом, вы можете сменить банк и, чтобы не ловить спамм, снести приложение, отозвать ПД.
Плюс в реальности есть ситуации со связанностью. Договор -> чек -> рекламация (в случае поломки) или накладная, или акт приемки -> что-то сломалось -> претензия -> письма -> суды и понеслось. Понятно что чаще всего есть только чек, но вот в оставшихся 10% случаев, хранить все в папочках крайне неудобно.
Про комуналку +- так же - у меня в банке одна платежка, после чего расчетный центр присылает пачку чеков по каждой сервисной компании. Так вот, в случае вопросов, на платежку всем будет плевать, нужны будут чеки о переводе конкретной организации.
Сразу - почему не хранить это все в почте? Можно, но в случае взлома злоумышленник получит доступ к пучку документов в том числе и домашнему адресу. Не секьюрно это. Так же провайдер может внезапно превратиться в тыкву или ввести плату/рекламу, что там еще мэйл.ру с яндексом выдумают
Почему не хранить в почтовом клиенте, оффлайн? можно, но тогда вы получите два хранилища документов - а это как известно совсем не удобно, надо держать в голове где, какой документ хранится плюс почтовики не распознают текст в сканах и не имеют по нему поиска.
Общий вывод - проще иметь одну систему хранения, чем 2, 3, 5