Перейти к содержимому
docs.
WORKSPACE

Документации проектов

Открыть каталог проектов
Localzet ServerАсинхронный PHP-серверTriangleФреймворк и компонентыMIX IDИдентификация и интеграцииHack APIПубличные API хакатонаACNПроект и компонентыUserlay / UserNetПроект и компонентыAxiomПроект и компонентыМесседжинг через почтуПроект и компонентыLWT / JWT / JOSEПроект и компонентыФинансовая аналитика KimaiПроект и компонентыМультипарадигмальная БДПроект и компонентыZorin PlatformПроект и компонентыZorin TrustПроект и компонентыFloraScope / VegwatchПроект и компонентыaegis-qДокументация проектаaevumdbДокументация проектаauditДокументация проектаauto-invest-managerАвтотрейдерcaine-companionДокументация проектаcertbot-cloudflareДокументация проектаClusterLocalzet Server / ClustercmdveilДокументация проектаConsolePHP CLICronБиблиотеки Localzet Serverdata-connectorДокументация проектаdevice-controlDevice Controlenn-projectДокументация проектаEventsБиблиотеки Localzet ServerflowsintДокументация проектаforgeДокументация проектаHttpClientБиблиотеки Localzet ServerinterpreterСобственный языкinvariaДокументация проектаkeynotesДокументация проектаknotrouteKnotroute✓laravel-personal-analyticsДокументация проектаlocalzet-osДокументация проектаmeridianДокументация проектаMQTTБиблиотеки Localzet Servernano-kernelСобственная ОСNoterДокументация проектаpersonal-analyticsДокументация проектаProxyБиблиотеки Localzet ServerPSRБиблиотеки Localzet ServerPSR-7Библиотеки Localzet Serverrschs-monitorДокументация проектаsemsealДокументация проектаshardsealДокументация проектаSocketIOБиблиотеки Localzet ServerSOCKS5Библиотеки Localzet Serverstandalone-analyticsДокументация проектаstatic-php-cliДокументация проектаStorageБиблиотеки Localzet ServersutureДокументация проектаtempoweaveДокументация проектаttsСинтез речиTunnelБиблиотеки Localzet Serverui-kitUI KitvesperДокументация проектаWebAnalyzerWebAnalyzerzorin-access-brokerДокументация проектаzorin-authority-brokerДокументация проектаzorin-authority-sdk-phpДокументация проектаzorin-authority-sdk-pythonДокументация проектаzorin-authority-sdk-tsДокументация проектаzorin-client-intelДокументация проектаzorin-device-core-aospДокументация проектаzorin-host-agentДокументация проектаzorin-native-labДокументация проектаzorin-nodeДокументация проектаzorin-opsДокументация проектаdonstu-python-sdkДокументация проектаfloortraceFloortraceserver-rsLocalzet Server / Cluster
Каталог

Публикация Docker-сервиса

Sidecar — рекомендуемый способ добавить KnotRoute к существующему контейнеру без изменения приложения.

services:
app:
image: example/app:latest
restart: unless-stopped
networks: [private]
knotroute:
image: ghcr.io/localzet/knotroute-sidecar:latest
restart: unless-stopped
networks: [private]
volumes:
- knotroute-data:/data
environment:
KNOTROUTE_NETWORK_ID: "kn_..."
KNOTROUTE_BEACONS: "https://beacon-a.example,https://beacon-b.example"
KNOTROUTE_SERVICE_NAME: "web"
KNOTROUTE_SERVICE_TARGET: "app:8080"
networks:
private:
volumes:
knotroute-data:

Приложение app здесь вообще не имеет ports:.

При первом запуске он:

  1. создаёт/читает KnotRoute node identity;
  2. создаёт service identity для web;
  3. подключается к network discovery;
  4. публикует signed service descriptor;
  5. принимает rendezvous streams;
  6. подключается к app:8080 внутри Docker network.
Окно терминала
docker compose logs knotroute

Sidecar печатает строку вида:

publishing web as ...knot -> app:8080

Service identity хранится в persistent data. Если удалить volume и создать sidecar заново, canonical .knot address изменится.

Делайте backup volume перед migration/upgrade.

Sidecar имеет HTTP health listener, типично :9090/healthz. Это process-level check, не полноценный end-to-end test.

Вместо пары KNOTROUTE_SERVICE_NAME/TARGET можно передать KNOTROUTE_SERVICES_JSON и опубликовать несколько targets. Для независимых приложений обычно удобнее отдельный sidecar per stack: так проще lifecycle, ownership и backups.

Sidecar может работать outbound-only. Публиковать 7447 на host нужно только если вы осознанно хотите, чтобы этот node принимал inbound peering и у вас есть корректный KNOTROUTE_ADVERTISE.

Исходник