Документация

EndlessNet: запуск и эксплуатация

Эта страница фиксирует текущий публичный quick start. Админка живет отдельно на `/admin/`, а публичный сайт и документация могут публиковаться на GitHub Pages.

Обзор

EndlessNet - Go-прототип control plane для приватных WireGuard-style сетей. Сервер хранит сети, узлы, пользователей и сессии; клиент генерирует ключи и регистрирует машину; MCP server открывает выбранные API-действия для автоматизации.

Публичный frontend Лендинг, документация, install.sh и Pages build.
Admin frontend Операционная консоль на `/admin/` с server-side session cookie и выбором OAuth-провайдера.

Сервер

Скопируйте пример конфига, настройте `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
Install command

          

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.