2.5 KiB
2.5 KiB
VPN Links HTTP Server
Простой HTTP-сервер на Dart для хранения и выдачи VPN-ссылок через SQLite.
Что делает сервер
- Поднимает HTTP-сервер на
0.0.0.0:8080. - Создает SQLite-базу
data/vpn_links.dbпри первом запуске. - Создает таблицу
connections, если ее нет. - Добавляет стартовые ссылки (seed) один раз через
INSERT OR IGNORE.
Формат ответа списка ссылок:
{
"links": [
"vless://...",
"vmess://...",
"trojan://..."
]
}
Установка и запуск
- Установить зависимости:
dart pub get
- Запустить сервер:
dart run bin/vpn_server.dart
После запуска сервер доступен по адресу http://127.0.0.1:8080.
API
GET /connections
Возвращает все ссылки из базы.
Пример:
curl http://127.0.0.1:8080/connections
Успешный ответ: 200 OK
{
"links": [
"vless://example",
"trojan://example"
]
}
POST /connections
Добавляет новую ссылку.
Тело запроса:
{
"url": "trojan://example-link"
}
Пример:
curl -X POST http://127.0.0.1:8080/connections \
-H "Content-Type: application/json" \
-d '{"url":"trojan://example-link"}'
Ответы:
201 Created— ссылка добавлена.409 Conflict— такая ссылка уже есть.400 Bad Request— неверный JSON или отсутствуетurl.
DELETE /connections
Удаляет ссылку по точному значению url.
Тело запроса:
{
"url": "trojan://example-link"
}
Пример:
curl -X DELETE http://127.0.0.1:8080/connections \
-H "Content-Type: application/json" \
-d '{"url":"trojan://example-link"}'
Ответы:
200 OK— ссылка удалена.404 Not Found— ссылка не найдена.400 Bad Request— неверный JSON или отсутствуетurl.
Прочее поведение
- Неизвестный путь:
404 Not Found. - Неподдерживаемый метод для
/connections:405 Method Not Allowed. - Заголовок
Allowдля/connections:GET, POST, DELETE.