Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Похожую статистику показывают тесты Protectli и Entrostat. В Linux WireGuard работает на уровне ядра, что дает дополнительный прирост в скорости.
В WireGuard не такой большой выбор асимметричных шифров, как в OpenVPN и других протоколах. Но это одновременно и плюс: меньше поверхность атаки на протокол.
Итак, как для пользователя выглядит общение с моим ботом? Начнем знакомство с главного меню.
При первом входе пользователь получает приветственное сообщение от бота и тестовую подписку. В конфигах бота ты сможешь сам задать все тексты и параметры вроде времени, на которое предоставляется тестовая подписка.
В главном меню пользователь может ознакомиться со статусом своей подписки, продлить ее и получить конфиг с подробной инструкцией для подключения, а в разделе «Продлить» — приобрести подписку на определенное время.
Оплата выполняется онлайн, через сам Telegram. Соответственно, мы можем выбрать любую платежную систему, с которой сотрудничает Telegram.
Я планировал использовать для оплаты Qiwi, так как там есть открытый API для создания счетов и не требуется становиться самозанятым или ИП. К сожалению, недавно в Qiwi приостановили выпуск необходимых токенов и не сообщают о сроках возобновления. Однако в исходниках ты найдешь вариант админской панели для Qiwi.
После того как пользователь выбрал и оплатил подписку, ему приходит сообщение об удачной оплате и сразу же обновляется информация о его подписке.
В разделе «Как подключить» пользователь может получить свой конфиг для подключения к VPN-серверу и подробную инструкцию, как настроить WireGuard на своем телефоне и как им пользоваться.
И наконец, самый главный раздел — «Админ‑панель», к которому имеет доступ только админ бота.
Раздел «Вывести пользователей» позволяет получить список всех пользователей системы или только пользователей с оплаченной подпиской.
В разделе «Редактировать пользователя по id», введя Telegram ID пользователя, мы можем добавить время или обнулить его (то есть забрать подписку).
Раздел «Статичные пользователи» может понадобиться для предоставления доступа к VPN пользователям, которые не зарегистрированы в Telegram. В этом разделе мы можем создавать статичных пользователей, удалять их и получать конфиги для подключения.
Вот и всё меню. Но в боте еще есть уведомления пользователей об окончании подписки. Все тексты уведомлений можно править в файле JSON.
С тем, как выглядит бот, я тебя познакомил, теперь покажу настройки и скрипт, который разворачивает и настраивает WireGuard в пару кликов.
Начнем с конфигов бота. Первый конфиг называется config.
, в нем содержатся основные настройки бота.
{
"admin_tg_id":440887487,
"one_month_cost":120,
"trial_period":2700,
"UTC_time":3,
"tg_token":"********:**************_**********",
"tg_shop_token":"56456767:TEST:343455"
}
admin_tg_id
— Telegram ID админа. Узнать свой ID можно у бота userinfobot.one_month_cost
— цена в рублях за месяц подписки. Минимальная сумма в рублях должна быть эквивалента одному доллару, но, как показала практика, стоит выставлять немного больше, чем актуальный курс доллара. Курс, который использует Telegram, можно узнать на официальном сайте.trial_period
— период пробной подписки. По умолчанию установлено 45 минут, то есть 2700 секунд.UTC_time
— часовой пояс в формате UTC. Бот будет учитывать его при выводе времени. По умолчанию установлено UTC+3, то есть московское время.tg_token
— токен бота, полученный от @BotFather.tg_shop_token
— токен магазина в Telegram. Нужен, если мы хотим принимать оплату. Если оставить это значение пустым, то бот просто не будет отправлять форму для оплаты и, соответственно, оплата онлайн будет недоступна.Как получить tg_shop_token
? Переходи в Telegram к боту @BotFather и пиши /
. Затем выбирай нужного бота и переходи в раздел Payments. Тут ты можешь ознакомиться со всеми доступными платежными системами и узнать, как их подключить. После подключения платежной системы возвращайся в BotFather. В разделе Payments должен появиться наш заветный ключ.
И последний конфигурационный файл хранит в себе текст сообщений, которые бот присылает пользователям. Сообщения могут быть оформлены с применением HTML-стилей Telegram, а как ими пользоваться, можешь посмотреть в документации.
{
"hello_message":"<b>Почему стоит выбрать Obi VPN?b>...",
"trial_message":"Чтобы вы смогли оценить наш VPN...",
"how_to_connect_info":"Ваш конфиг для подключения к VPN...",
"success_pay_message":"Оплата прошла успешно...",
"ended_sub_message":"Ваша подписка закончилась...",
"alert_to_renew_sub":"До конца действия..."
}
Думаю, вполне понятно, какое сообщение за что отвечает, поэтому не будем останавливаться на этом и перейдем к деплою.
Скажу сразу, что скрипт я разрабатывал на Ubuntu и тестировал только на Ubuntu 20.04 и 22.04, поэтому не могу дать гарантии, что он заработает на какой‑то другой разновидности Linux.
|
|