Документация
EndlessNet: запуск и эксплуатация
Эта страница фиксирует текущий публичный quick start. Админка живет отдельно на `/admin/`, а публичный сайт и документация могут публиковаться на GitHub Pages.
Обзор
EndlessNet - Go-прототип control plane для приватных WireGuard-style сетей. Сервер хранит сети, узлы, пользователей и сессии; клиент генерирует ключи и регистрирует машину; MCP server открывает выбранные API-действия для автоматизации.
Сервер
Скопируйте пример конфига, настройте `auth.providers[]` и запустите coordination API.
Copy-Item configs\server.example.json server.json
go run ./cmd/endlessnet-server --config server.json
После запуска доступны:
- `/` - публичный сайт;
- `/docs/` - документация;
- `/admin/` - закрытая админка control plane;
- `/auth/login` - страница выбора OAuth/OIDC-провайдера;
- `/api/v1/*` - JSON API для CLI, админки и MCP.
Клиент
Для локальной разработки можно включить `auth.insecure_dev_bypass` и получить dev token.
go run ./cmd/endlessnet-client login --server http://localhost:8080 --dev
go run ./cmd/endlessnet-client network create --name office --cidr 100.64.0.0/24 --dns 100.64.0.1
go run ./cmd/endlessnet-client up --network office --hostname my-laptop --output .\wg-endlessnet.conf
MCP
Запускайте MCP server с тем же URL и session token, который используется клиентом.
$env:ENDLESSNET_SERVER_URL = "http://localhost:8080"
$env:ENDLESSNET_TOKEN = "<token>"
go run ./cmd/endlessnet-mcp
Доступные инструменты: `endlessnet_networks_list`, `endlessnet_network_create`, `endlessnet_nodes_list`.
GitHub Pages
Pages build теперь публикует публичный frontend, а не админку.
.\scripts\publish-pages.ps1 `
-RepoUrl https://github.com/<owner>/<pages-repo>.git `
-Path pages `
-Branch main `
-ApiBaseUrl https://api.example.ru
Для Pages добавьте origin публичного сайта в `cors_allowed_origins` backend-конфига.
Безопасность
- `auth.insecure_dev_bypass` предназначен только для локальной разработки.
- Не логируйте session tokens, OIDC tokens, client secrets и WireGuard private keys.
- Production authorization должен идти через `auth.providers[]` и российские OIDC/OAuth2-compatible authorization centers.