feat: MyPointVPN landing on mypointvpn.sokolab.xyz and post about Serverus

Landings get per-project themes (params.theme, params.fonts) and optional
chat/start/note/engine sections, so they don't look like clones.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
protokeyandClaude Opus 5.5 committed 2026-10-13 13:22:41 +04:00
1 parent 6958d0a975
commit 672467a699
6 files changed
+538 -4

No files matched your search

+91
View File
@@ -0,0 +1,91 @@
---
title: "MyPoint VPN"
tagline: "Your own VPN on your own server in one message"
description: "Rent a server, send the Telegram bot its IP and password, and it locks the server down, installs 3x-ui and sets up VLESS + Reality. Client keys and subscriptions come from the bot too."
domain: "https://mypointvpn.sokolab.xyz/"
badge: "Telegram bot · Debian 12 and 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: "How a VPN bot learned to manage servers"
build:
list: never
sitemap:
disable: true
nav:
- { label: "Features", href: "#features" }
- { label: "Get started", href: "#start" }
- { label: "Serverus", href: "#engine" }
- { label: "Community", href: "#community" }
cta:
- { label: "Open the bot", href: "https://t.me/barbarisiska_bot", primary: true }
- { label: "Get started", href: "#start" }
chat:
title: "What it looks like in the bot"
messages:
- { from: "me", text: "`203.0.113.7:root-password`" }
- { from: "bot", text: "ssh moved to a random port, key-only login. Firewall on, system updated." }
- { from: "bot", text: "3x-ui installed: VLESS + XHTTP + Reality on port 443." }
- { from: "me", text: "Issue a key" }
- { from: "bot", text: "Done. Here is the subscription link for your client." }
features:
title: "What you get"
items:
- title: "VLESS + XHTTP + Reality"
text: "A connection on port 443. The bot picks the Reality target itself."
- title: "Camouflage server"
text: "Optional. Clients connect to it, it forwards traffic to the panel, and the panel's address is never exposed."
- title: "Certificates"
text: "A domain with Let's Encrypt for the panel and the subscription. Without a domain the bot issues a short-lived IP certificate and renews it itself."
- title: "Keys without limits"
text: "No traffic cap, no expiry, no device limit. Subscriptions for v2rayN, Hiddify, Happ and v2rayNG. For every key you see the traffic and when the client was last online."
- title: "Proxy and DNS"
text: "Outbound through your own proxy or Cloudflare WARP. DNS on the server is encrypted: DNS-over-TLS, with DNS-over-HTTPS as a fallback if TLS gets blocked."
- title: "Health checks"
text: "Once a day the bot checks the panel, Xray and the subscription certificate and tells you if something broke or got fixed."
start:
title: "Get started"
steps:
- title: "Rent a server"
text: "Any hosting provider, Debian 12 or 13. All you need is the IP and the root password."
- title: "Send the bot `ip:password`"
text: "The bot moves ssh to a random port with key-only login, turns on a firewall, updates the system and installs 3x-ui."
- title: "Issue a key"
text: "Add the subscription link to your client, and the VPN works."
note:
title: "The server stays yours"
text: "The \"Return\" button removes the bot's access, rolls back ssh and the firewall and sends you a new root password. Your data on the server stays. And the bot deliberately doesn't work through Cloudflare: Cloudflare terminates TLS itself, and Reality can't work behind it."
engine:
kicker: "Under the hood"
title: "Serverus"
lead: "Almost all of the bot's work comes down to one thing: take a bare Debian, lock it down and manage it by key. That's the job of `serverus`, an ansible-based package inside the project. The VPN is just one task on top of it, the second one is a docker server."
items:
- "Docker, Caddy and automatic system updates, with Caddy issuing certificates for domains"
- "An app is a folder with `docker-compose.yaml`, `.env` and `caddy.conf`, sent as an archive or file by file"
- "A diff and per-file warnings before applying, including when a domain doesn't point to the server"
- "Checks of the compose file, ports and Caddy config. On error the app is left untouched, and only changed services are recreated"
- "Rollback to the previous version of the files, start, stop, restart and logs per service"
- "Login to a private docker registry and guest access to volumes for uploading data"
callout:
title: "The bot hosts itself"
text: "Production MyPoint VPN runs as a Serverus app on a docker server managed by this very bot. What the bot can do is set by the interface in the admin panel: \"MyPoint VPN\", \"Serverus\" or both."
community:
title: "Community"
lead: "Questions, ideas and bugs go to Redmine. No sign-up needed: the guest login is in the [forum topic](https://redmine.sokolab.xyz/boards/2/topics/3)."
links:
- { title: "Bot", text: "Start using it in Telegram.", href: "https://t.me/barbarisiska_bot" }
- { title: "Code", text: "Sources and wiki: deployment, data migration, Serverus apps.", href: "https://git.sokolab.xyz/s0k0l/mypointvpn" }
- { title: "Issues", text: "Bugs and wishes in Redmine.", href: "https://redmine.sokolab.xyz/projects/mypointvpn" }
- { title: "Forum", text: "Questions and ideas, plus the guest login.", href: "https://redmine.sokolab.xyz/boards/2/topics/3" }
- { title: "Blog post", text: "How a VPN bot learned to manage servers.", href: "https://sokolab.xyz/en/blog/mypointvpn-serverus/" }
footer: "Use a VPN within the laws of your country."
---
+91
View File
@@ -0,0 +1,91 @@
---
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 в рамках законов вашей страны."
---