--- title: "MyPoint VPN" tagline: "Свой VPN на своем сервере за одно сообщение" description: "Арендуйте сервер, пришлите Телеграм-боту IP и пароль, и он сам закроет сервер, поставит 3x-ui и настроит VLESS + Reality. Ключи и подписки для клиентов тоже выдает бот." domain: "https://mypointvpn.sokolab.xyz/" badge: "Телеграм-бот · Debian 12 и 13" theme: mypointvpn fonts: "family=Unbounded:wght@500;700&family=Manrope:wght@400;600;800&family=JetBrains+Mono:wght@400;600" post: "/blog/mypointvpn-serverus" postLabel: "Как бот для VPN научился управлять серверами" build: list: never sitemap: disable: true nav: - { label: "Возможности", href: "#features" } - { label: "Как начать", href: "#start" } - { label: "Serverus", href: "#engine" } - { label: "Сообщество", href: "#community" } cta: - { label: "Открыть бота", href: "https://t.me/barbarisiska_bot", primary: true } - { label: "Как начать", href: "#start" } chat: title: "Так это выглядит в боте" messages: - { from: "me", text: "`203.0.113.7:пароль-root`" } - { from: "bot", text: "ssh перенесен на случайный порт, вход только по ключу. Фаервол включен, система обновлена." } - { from: "bot", text: "3x-ui установлена: VLESS + XHTTP + Reality на 443 порту." } - { from: "me", text: "Выпустить ключ" } - { from: "bot", text: "Готово. Вот ссылка на подписку для клиента." } features: title: "Что вы получаете" items: - title: "VLESS + XHTTP + Reality" text: "Подключение на 443 порту. Цель для Reality бот подбирает сам." - title: "Сервер маскировки" text: "По желанию. Клиенты подключаются к нему, он пересылает трафик на панель, и адрес панели нигде не светится." - title: "Сертификаты" text: "Домен с Let's Encrypt для панели и подписки. Без домена бот выпустит короткий сертификат на IP и будет продлевать его сам." - title: "Ключи без ограничений" text: "Ни по трафику, ни по сроку, ни по устройствам. Подписки для v2rayN, Hiddify, Happ и v2rayNG. По каждому ключу видно трафик и когда клиент был онлайн." - title: "Прокси и DNS" text: "На выходе свой прокси или Cloudflare WARP. DNS на сервере шифруется: DNS-over-TLS, а если его режут, запасной DNS-over-HTTPS." - title: "Присмотр" text: "Раз в сутки бот проверяет панель, Xray и сертификат подписки и пишет, если что-то сломалось или починилось." start: title: "Как начать" steps: - title: "Арендуйте сервер" text: "Любой хостер, Debian 12 или 13. Нужны только IP и пароль root." - title: "Пришлите боту `ip:пароль`" text: "Бот переведет ssh на случайный порт со входом по ключу, включит фаервол, обновит систему и поставит 3x-ui." - title: "Выпустите ключ" text: "Добавьте ссылку на подписку в клиент, и VPN работает." note: title: "Сервер остается вашим" text: "Кнопка «Вернуть» убирает доступы бота, откатывает ssh и фаервол и присылает новый пароль root. Данные на сервере остаются. А через Cloudflare бот не работает специально: Cloudflare сам завершает TLS, и Reality за ним работать не может." engine: kicker: "Под капотом" title: "Serverus" lead: "Почти вся работа бота сводится к одному: взять голый Debian, закрыть его и управлять им по ключу. Этим занимается `serverus`, пакет на ansible внутри проекта. VPN лишь одна из задач поверх него, вторая это docker-сервер." items: - "Docker, Caddy и автообновления системы, сертификаты для доменов выпускает Caddy" - "Приложение это папка с `docker-compose.yaml`, `.env` и `caddy.conf`, архивом или по файлам" - "Перед применением разница и предупреждения по файлам, в том числе если домен не указывает на сервер" - "Проверка compose, портов и конфига Caddy. При ошибке приложение не трогается, пересоздаются только изменившиеся сервисы" - "Откат на предыдущую версию файлов, старт, стоп, рестарт и логи по сервисам" - "Логин в приватный docker registry и гостевой доступ к volumes для заливки данных" callout: title: "Бот держит сам себя" text: "Прод MyPoint VPN развернут как приложение Serverus на docker-сервере, которым управляет этот же бот. Что умеет бот, решает интерфейс в админке: «MyPoint VPN», «Serverus» или оба сразу." community: title: "Сообщество" lead: "Вопросы, идеи и баги принимаются в Redmine. Регистрироваться не обязательно: гостевой вход описан в [теме на форуме](https://redmine.sokolab.xyz/boards/2/topics/3)." links: - { title: "Бот", text: "Начать пользоваться в Телеграме.", href: "https://t.me/barbarisiska_bot" } - { title: "Код", text: "Исходники и вики: деплой, перенос данных, приложения Serverus.", href: "https://git.sokolab.xyz/s0k0l/mypointvpn" } - { title: "Задачи", text: "Баги и пожелания в Redmine.", href: "https://redmine.sokolab.xyz/projects/mypointvpn" } - { title: "Форум", text: "Вопросы и идеи, там же гостевой вход.", href: "https://redmine.sokolab.xyz/boards/2/topics/3" } - { title: "Запись в блоге", text: "Как бот для VPN научился управлять серверами.", href: "https://sokolab.xyz/blog/mypointvpn-serverus/" } footer: "Используйте VPN в рамках законов вашей страны." ---