Добавить в корзинуПозвонить
Найти в Дзене

10 вещей, которые я запустил на одном VPS за 5 евро в месяц

Всё началось с того, что мне надоело платить
за десять разных сервисов. Telegram-бот крутился на Heroku (бесплатный
тир убрали). Сайт лежал на шаред-хостинге (тормозил). Заметки хранились в
Notion (лимиты). Файлы - в Google Drive (места не хватало). Каждый
сервис - отдельный аккаунт, отдельная оплата, отдельные ограничения. В
какой-то момент я сел и посчитал: всё это вместе обходилось в 3700
рублей в месяц. Один VPS за 5 евро заменил почти всё. Но прежде чем рассказать, что именно я на него запихнул, оговорка: выбор сервера - это отдельная головная боль, которая может занять дни. Мне помогло то, что я нашёл нормальное сравнение, где можно выбрать VPS под свои задачи. Без этого я бы до сих пор метался между тарифами, потому что разница в производительности при одинаковой цене - космическая. Но об этом ниже. Шаред-хостинг за 400 рублей. TTFB (время до
первого байта) скакал от 300 мс утром до 1.5 секунд вечером. PageSpeed
показывал 34 балла. Техподдержка отвечала «у вас тяжёлые пл
Оглавление

Всё началось с того, что мне надоело платить
за десять разных сервисов. Telegram-бот крутился на Heroku (бесплатный
тир убрали). Сайт лежал на шаред-хостинге (тормозил). Заметки хранились в
Notion (лимиты). Файлы - в Google Drive (места не хватало). Каждый
сервис - отдельный аккаунт, отдельная оплата, отдельные ограничения. В
какой-то момент я сел и посчитал: всё это вместе обходилось в 3700
рублей в месяц.

Один VPS за 5 евро заменил почти всё. Но прежде чем рассказать, что именно я на него запихнул, оговорка: выбор сервера - это отдельная головная боль, которая может занять дни. Мне помогло то, что я нашёл нормальное сравнение, где можно выбрать VPS под свои задачи. Без этого я бы до сих пор метался между тарифами, потому что разница в производительности при одинаковой цене - космическая. Но об этом ниже.

Сайт на WordPress: зачем платить за шаред

Шаред-хостинг за 400 рублей. TTFB (время до
первого байта) скакал от 300 мс утром до 1.5 секунд вечером. PageSpeed
показывал 34 балла. Техподдержка отвечала «у вас тяжёлые плагины».
Плагинов было шесть. Шесть.

Перенёс тот же сайт на VPS. Nginx + PHP-FPM + MariaDB. TTFB - стабильные 80 мс в любое время суток. PageSpeed - 71 без единого изменения в коде. Просто потому, что сервер перестал делить ресурсы с тремя сотнями соседей.

Я замерял через GTmetrix три раза в день целый месяц. На шаред-хостинге график напоминал кардиограмму - вверх, вниз, вверх. На VPS - прямая линия. Скучная, красивая прямая линия.

Telegram-бот, который работает всегда

-2

У меня бот для учёта расходов. Пишешь «кофе 250» - записывает. Пишешь «итого» - считает за месяц. Простой. На Python, 400 строк кода.

На Heroku бесплатном он засыпал через 30
минут бездействия. Первое сообщение после паузы - 10 секунд ожидания,
пока контейнер проснётся. Бесит. На платном Heroku - $7 в месяц за то,
чтобы бот не спал. Семь долларов за 400 строк на Python. Абсурд.

На VPS бот запущен через systemd. Стартует
при загрузке сервера, перезапускается при падении, работает
круглосуточно. Потребляет 15 МБ RAM. Отвечает за 200 миллисекунд.
Всегда.

Настройка systemd-сервиса - файл на 10 строк. ExecStart, Restart=always, WantedBy=multi-user.target. Копируешь, включаешь, забываешь. Бот просто работает.

Nextcloud: своё облачное хранилище

-3

Google Drive даёт 15 ГБ бесплатно. Для фотографий этого хватает на три месяца. Платить Google за 100 ГБ - 140 рублей. Недорого. Но данные хранятся у Google.

Nextcloud на VPS - полноценный аналог Google
Drive + Google Docs + Google Calendar в одном. Мой сервер, мои файлы,
моё шифрование. На диске VPS 40 ГБ NVMe. Для документов, заметок и
рабочих файлов - за глаза. Фотографии храню отдельно, их слишком много.

Установка Nextcloud через Docker - одна команда docker-compose up -d
с готовым конфигом. Десять минут, включая скачивание образов.
Веб-интерфейс, мобильное приложение, синхронизация папок на ноутбуке.
Работает.

Минус: скорость скачивания ограничена каналом VPS. У меня 200 Мбит/с на сервере. Для документов - незаметно.
Для папки на 5 ГБ - придётся подождать. Google Drive тут быстрее,
честно.

Pi-hole: интернет без рекламы

Pi-hole - DNS-сервер, который блокирует
рекламные домены. Запрос идёт к ads.tracker.com? Pi-hole отвечает
«такого домена не существует». Реклама не грузится. Не на одном
устройстве, а на всех, которые используют этот DNS.

Я настроил его на VPS и прописал его IP как
DNS на роутере дома. Результат: 23% всех DNS-запросов из моей сети
блокируются. Четверть. Это трекеры, телеметрия Windows, рекламные сети,
аналитика приложений.

На телефоне жены исчезла реклама в
бесплатных играх. Она не поняла, что изменилось. Просто перестало
бесить. Идеальный результат.

Потребление ресурсов - 30 МБ RAM. Смешно.

Игровой сервер Minecraft

-4

Сын попросил. «Пап, а можно свой сервер?»

Paper MC на 1 ГБ RAM. Тянет 5-6 игроков
одновременно без лагов. TPS (ticks per second) стабильные 20 из 20. Пинг
для друзей из того же города - 15-25 мс. Для друга из Новосибирска - 60
мс. Играбельно.

Больше 6 игроков - начинает подтормаживать.
Тут VPS с 1 ГБ RAM упирается. Для серьёзного сервера на 20 человек нужно
4 ГБ минимум. Но для компании из пяти школьников - хватает.

Интересный нюанс: Minecraft-сервер грузит CPU сильнее, чем все остальные мои сервисы вместе взятые. Когда дети играют, нагрузка прыгает до 70%. Когда не играют - 3%. Я ограничил Java через -Xmx768M, чтобы оставить запас для остального.

Uptime Kuma: мониторинг всего

Бесплатный self-hosted мониторинг. Пингует
мои сайты, проверяет SSL-сертификаты, мониторит API. Каждые 60 секунд.
При сбое - уведомление в Telegram за 2 минуты.

Красивый дашборд. Честно говоря, я открываю
его просто ради графиков аптайма. 99.98% за последние 9 месяцев. Один
даунтайм - 4 минуты, когда хостер перезагружал ноду.

Установка через Docker - 30 секунд. Один контейнер, один порт. Работает.

Gitea: свой GitHub

Приватные репозитории на GitHub - бесплатно. Зачем тогда своё?

Потому что на Gitea я храню то, что не хочу
класть на чужие серверы. Конфиги, скрипты автоматизации, персональные
проекты с ключами в коде (знаю, что плохо, но бывает). Gitea - это как
GitHub, только твой. Легковесный, быстрый, жрёт 100 МБ RAM.

И ещё: CI/CD через Gitea Actions. Пушишь код
- сервер сам собирает, тестирует, деплоит. Настраивал три часа. С тех
пор экономлю тридцать минут на каждом деплое. За девять месяцев набежало
прилично.

Обратный прокси на все сервисы

На одном VPS крутятся 6-7 веб-сервисов. Каждый на своём порту. Как дать им нормальные адреса?

Nginx Proxy Manager. Веб-интерфейс, в
котором ты кликаешь «добавить хост», вписываешь домен, указываешь порт
контейнера. SSL через Let's Encrypt подключается одной галочкой.
Буквально. Галочкой.

nextcloud.mydomain.com - порт 8080.
git.mydomain.com - порт 3000. monitor.mydomain.com - порт 3001. Всё
через один IP, один 443-й порт, красивые домены, валидные сертификаты.
Настроил за полчаса, работает без вмешательства.

Docker: почему всё крутится в контейнерах

-5

Каждый сервис - отдельный контейнер. Падает
один - остальные не замечают.
Нужно обновить Nextcloud - пересоздаю
контейнер, данные на примонтированном томе остаются. Хочу попробовать
новый сервис - docker run, поигрался, docker rm. Чисто.

Мой docker-compose.yml - 120 строк. Весь стек описан в одном файле. Перенести на другой сервер - копируешь файл, делаешь docker-compose up -d. Двадцать минут - и всё работает на новом месте. Я проверял, когда тестировал миграцию.

Потребление RAM всеми контейнерами суммарно -
800 МБ. На VPS с 2 ГБ остаётся запас. Не гигантский, но достаточный.
При 1 ГБ RAM было бы тесно. Я начинал с 1 ГБ и через два месяца
апгрейднулся, когда добавил Minecraft.

На что смотреть при выборе VPS

Процессор. «1 vCPU» у разных хостеров -
разная мощность. AMD EPYC 7003 у Hetzner выдаёт 2500 по Geekbench.
Старый Xeon у бюджетных хостеров - 900. Три раза медленнее за те же
деньги. Запускайте geekbench после аренды. Сразу видно, что купили.

Диск. NVMe - обязательно. Разница между NVMe
и SAS SSD по IOPS - от 5 до 20 раз. MariaDB, Docker, Nextcloud - все
любят быстрый диск. На медленном всё ощутимо тупит.

Виртуализация. KVM - можно всё. Docker,
модули ядра, своя ОС. OpenVZ - старая контейнерная виртуализация, Docker
не работает, половина софта не ставится. Я влетел в это при первой
аренде и потерял вечер, пытаясь понять, почему docker говорит permission denied. Потому что OpenVZ, вот почему.

Трафик. Мой VPS генерирует 200-300 ГБ трафика в месяц. Хостеры с лимитом 500 ГБ - впритык. Hetzner даёт 20 ТБ. Разница существенная.

Бэкапы: урок, который я выучил через боль

-6

Три месяца без бэкапов. «Что может случиться?» Случилось. Хостер мигрировал ноду. VPS пересоздался пустым.

Потерял конфиги, базу заметок за месяц, настройки Pi-hole. Восстанавливал по памяти весь день.

Теперь: bash-скрипт, cron, 4 утра каждый день. Дамп баз, архив /var/www и Docker-томов, отправка на Backblaze B2. Стоимость хранения - 12 центов в месяц. Двенадцать. Центов.

7 дневных копий, 4 недельных. Старые удаляются автоматически через rclone. Настройка заняла вечер. С тех пор - ноль внимания.

Безопасность за 15 минут

SSH-ключ вместо пароля. Нестандартный порт SSH. Fail2ban. Фаервол ufw с белым списком портов. Автообновления безопасности через unattended-upgrades.

Fail2ban за первые сутки забанил 400
IP-адресов, которые перебирали пароли на 22-м порту. Четыреста. За
сутки. На нестандартном порту попыток - ноль. Не потому что
нестандартный порт - защита от хакеров. А потому что ботам лень
сканировать все 65 тысяч портов.

15 минут на настройку. Одноразово. Забыл и работаешь.

Сколько это реально стоит

Мой текущий VPS: Hetzner CPX11. 2 ядра AMD EPYC, 2 ГБ RAM, 40 ГБ NVMe, 20 ТБ трафика. 5.39 евро в месяц.

На нём работают: два сайта, Telegram-бот, Nextcloud, Pi-hole, Uptime Kuma, Gitea, Minecraft-сервер (по выходным).

Раньше: шаред-хостинг 450 руб., Heroku 700 руб., Google Drive 140 руб., мониторинг на стороннем сервисе 300 руб.
Итого около 1600 руб. без Minecraft и Gitea.

Сейчас: 500 руб. за всё. Плюс 10 руб. на бэкапы в B2. Плюс знание того, что всё под моим контролем и не упадёт, потому что сосед по шареду запустил кривой cron.

Пять евро. Один сервер. Десять сервисов. Девять месяцев без сбоя. Вот и вся математика.