Свой сервер за 0$: путешествие в мир selfhost на старом железе

 Публичный пост
11 ноября 2025  124

Как все начиналось

Начну слегка издалека. Так как живу в Израиле, возникла острая необходимость выучить иврит. Ранее изобретённых методов изучения иностранных языков мне показалось мало, поэтому я решил придумать свой. Суть такова: есть телеграм-бот, в нём есть список подкастов на иврите. Если выпуск подкаста интересен, при нажатии на кнопку «Перевести» происходит некая магия с помощью ИИ и кода на Java, и на выходе появляется аудиофайл, содержащий как иврит, так и русский перевод по предложениям. Но речь не о том.

Так вот, встал вопрос о хостинге сего чуда. Не желая тратить на эту гениальную идею деньги, было решено хоститься на AWS в рамках free tier. Деплой на EC2 прошёл успешно, но… во время создания итогового аудиофайла загрузка процессора уходит до 100 %, и через некоторое время EC2-инстанс переключается в статус: "Instance reachability check failed"

Кто виноват и что делать?

Ну, кто виноват — и так понятно, а вот над вопросом «Что делать?» пришлось подумать. Так как денег платить не хотелось принципиально, было принято решение взять хостинг в свои умелые руки. Для этого из закромов был вынут старенький нетбук (олды помнят ещё такие машинки?) Asus Eee PC 1215P, которым когда-то давно пользовалась жена. Его особенность, по сравнению с собратьями, была в том, что на борту — двухъядерный (!!!) Atom и 2 ГБ ОЗУ. Кроме того, штатный HDD когда-то был заменён на SSD, что дало немалый буст! Мне даже удалось запустить на Windows 10. Я же программист! Проверка работоспособности показала, что всё работает нормально, кроме аккумулятора, который признаков жизни не подавал. Немудрено: нетбук включался последний раз много лет назад и просто лежал без надобности.


Так вот, «Винда» была безжалостно снесена, а взамен установлена Ubuntu Server 22. Из дополнительного ПО также были поставлены: docker, ssh, git, mc (ммм, ностальгия по старым временам). Вроде всё завелось, но, как всегда, было «но». Подключение к интернету было организовано посредством шнурка из роутера. Однако разместить этот, с позволения сказать, сервер планировалось в другой комнате, в которой из кабелей есть только 220. Поэтому было принято волевое решение организовать доступ в интернет по Wi-Fi. Да, я знаю, что это не кошерно, но тягать кабели в съёмной квартире нет никакого желания, а оставлять «сервер» в досягаемости детей сводило смысл затеи к нулю. С помощью чата GPT и такой-то матери цель была достигнута: Wi-Fi поднят, телеграм-бот (Java-приложение в Docker) задеплоен. И ура — всё заработало.

Далее, в качестве эксперимента, я принял решение организовать доступ к серверу снаружи. Для этого на сервисе www.dynu.com я зарегистрировал домен, следуя инструкциям сервиса, установил и сконфигурировал приложение на сервере. И снова — успех!
И, так как термин cyber security нам не чужд, были отключены root-доступ и доступ по паролям к SSH. Также была установлена утилитка fail2ban, чтобы банить злых хакеров.

На этом, собственно, эксперимент был засчитан как удавшийся: у меня есть свой маленький сервер, на котором можно запускать некритичные приложеньки и использовать его для экспериментов. На данный момент на сервере вертятся два бота на Java/Spring/Docker и ещё один на Go/Docker. Денег потрачено: 0 $.

Что было потом

А дальше я вспомнил о своём старом ноуте Dell E6440. Года три-четыре назад он был списан по состоянию здоровья: камера не работала, сгоревший вентилятор был заменён на такой же, но регулировка оборотов почему-то не работала, и при включении ноутбука кулер издавал ревущий и непрекращающийся рёв. Да и железо было уже устаревшим: i5 первых поколений и 8 ГБ RAM.

Удачный эксперимент с нетбуком не давал покоя, ручки так и чесались сотворить что-то чудесное. Но ревущий вентилятор ставил на этом крест. Поэтому было принято волевое решение потратить немного денег на новый кулер. Приехавший через пару недель новый кулер был установлен, и — о чудо — регулировка оборотов заработала! Полнейшая тишина во время работы радовала слух.

Размышляя, чем бы занять новый сервер, варианты с видео- и аудиохостингами были отклонены. Для видео я пользуюсь сервисом ki_o.pub, который по соотношению цена/качество устраивает меня на 100 %. Да и объёмы памяти для этого нужны немаленькие. С музыкой примерно то же самое: в довесок к YouTube Premium идёт YouTube Music, которая также устраивает более чем. А вот по поводу фотографий я задумался: дело в том, что все фотки у меня хранятся в Google Photos, и истории из интернета о безвозвратной блокировке Google-аккаунтов пугали меня до диареи.

Посему решено: следующим шагом будет сервис хранения фотографий! Почитав интернет и посмотрев немало ютубчика, решение ставить на сервер Ubuntu, а уже на неё — Immich (а именно он и будет отвечать за хранение фоток), было отклонено в пользу Proxmox.

Proxmox — это гипервизор, который позволяет легко создавать виртуальные машины, управлять ими, а также заниматься распределением ресурсов компьютера. Установка прошла без каких-либо проблем, но, по старой доброй традиции, я решил использовать Wi-Fi для соединения с сетью. Вот тут-то проблемы и появились: сам Proxmox прекрасно видел сеть и интернет, а вот виртуальные машины, запущенные на нём, — нет :((( Наверняка есть методы, как это исправить, но, как по мне, всё это будет костылём и может работать очень нестабильно. Поэтому недалеко от роутера для сервера было выделено место, и он был подключён к сети кабелем. Все проблемы подключения виртуальных машин к сети таким образом были решены.

Первой виртуальной машиной стала Ubuntu. Я не планировал открывать ни сам Proxmox, ни Immich в мир: всё работает в локальной сети, новые фотки синхронизируются с Immich, когда устройства появляются в локальной сети. Такое решение обусловлено тем, что в моём случае Immich — это что-то типа бэкапа.

Кроме того, я поигрался с несколькими виртуальными машинками — например, давно хотел «подержать за вымя» Home Assistant.

Что будет дальше

Вот, собственно, мой небольшой опыт по вкатыванию в селф-хостинг. Как видно, если вам интересна эта тема, но вы не готовы начинать с покупки оборудования, есть другие пути. Думаю, у каждого (ну или почти у каждого) «компьютерщика» найдётся рабочий или полурабочий компьютер, с которого можно просто начать и понять, интересна ли вам эта тема и стоит ли вкладывать в неё средства.

Что касается меня, то я всё же вложил какое-то небольшое количество денег в мой сетап: помимо упомянутого кулера, я также купил новую батарею для нетбука — она будет выполнять роль ИБП. Кроме того, на ноутбуке расширил ОЗУ до максимума (хотя 16 ГБ — такой себе максимум). Тем не менее, на данный момент у меня есть платформа для запуска моих пет-проектов, а также для поэкспериментировать. Ну и «бэкап» фоток — вещь вполне утилитарная.

P. S. Впоследствии я купил карман для двух HDD, который позволяет работать с ними в четырёх режимах: RAID 0, RAID 1, два отдельных диска и JBOD (это когда два диска отображаются и работают как один с объёмом, равным сумме объёмов установленных дисков). Я перевёл его в режим RAID 1 и использую как холодное хранилище для бэкапов.

Аватар Slava Zavgorodniy
Slava Zavgorodniy @zavgorodniy
Software DeveloperRadcom
📍Ashkelon, Израиль

Слава.  Java. Whiskey. Jorney😊
🎯Telegram:
@slava_zavgorodnii
✅ Facebook: facebook.com/vyascheslav
✨ Instagram: instagram.com/slava.zavgorodniy/
🔗 LinkedIn: linkedin.com/in/zavhorodnii
💻 Java Developer

2 комментария 👇
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб