Управление админкой¶
Хранение данных админки рядом с VPN бекендом
админка: 10.99.87.64
бд админки: 10.99.87.62
\ Сейчас используются УЗ:
\ Пример записи УЗ админа в БД MySQL
*************************** 2. row ***************************
id: 0xB06C0052DBD311EE968A0242AC110002
account: operator@shivavpn.io
created_at: 2024-03-06 16:07:53.951282
device_id: NULL
password: $2a$10$q0Dv6nS2./Wwct9DhhdYSO1tkduwZkzKWBa7Mma0Z5zHEtsP1VPiW
role: ADMIN
permissions: ["readServers", "readProxyServers", "readAccounts", "editAccounts", "readPayments", "editPayments", "readSubscriptions", "editSubscriptions", "readPromoCodes", "editPromoCodes"]
limit_ip: 0
valid_to: NULL
pay_status: ADMIN
deleted_at: NULL
stripe_customer_id: NULL
yandex_id: NULL
Допустимые доступы
readServers / editServers
readProxyServers / editProxyServers
readAccounts / editAccounts
readPayments / editPayments
readSubscriptions / editSubscriptions
readPromoCodes / editPromoCodes
Для разработчика достаточно следующих прав:
["readServers", "readAccounts", "readPayments", "readSubscriptions", "readPromoCodes", "editAccounts"]
SQL команда чтобы добавить аккаунт:
INSERT INTO vpn.account (
id,
account,
created_at,
device_id,
password,
role,
permissions,
limit_ip,
valid_to,
pay_status,
deleted_at,
stripe_customer_id,
yandex_id
)
VALUES (
UUID_TO_BIN(UUID()),-- id: генерируем уникальный бинарный PK
'<MAIL>',-- account
NOW(),-- created_at: текущая дата/время
null,-- device_id: пример UUID
'<ПАРОЛЬ в bcrypt>',-- password: bcrypt-хеш
'ADMIN',-- role
'<нужные доступы>',-- permissions, например, через запятую
'0',-- limit_ip: допустимый IP
null,-- valid_to: дата окончания
'ADMIN',-- pay_status
NULL,-- deleted_at: NULL если не удалён
null,-- stripe_customer_id
null -- yandex_id
);
\ Создать пароль для записи в БД можно с помощью скрипта:
Инструкция как пользоваться описана в readme.md¶
См. также: DevOps скрипты → audit_account · Маппинг аккаунтов · Репозитории