Первый туннель за несколько минут
Создаём публичный HTTPS-адрес для сервиса, который уже запускается через Docker.
1 минутаЧто получится
Предположим, ваш сайт открывается внутри Docker по адресу http://app:80. После настройки он будет доступен по адресу https://my-app.sknet.gitaspen.ru.
На компьютере не нужно открывать порт 80 или 443. Контейнер SKNet сам устанавливает исходящее защищённое соединение.
Имя my-app — пример. Служебные и официально выглядящие имена SKNet не выдаёт.
1. Создайте туннель
-
Откройте кабинет
Войдите через единый аккаунт GitAspen и нажмите «Новый туннель».
-
Задайте имя
Короткое имя становится частью адреса: my-app → my-app.sknet.gitaspen.ru.
-
Выпустите токен
Секрет показывается один раз. Скопируйте его в .env или менеджер секретов.
2. Добавьте контейнер
Добавьте сервис tunnel рядом с приложением. В SKNET_LOCAL указывается внутренний Docker-адрес приложения, а не localhost вашего браузера.
services:
app:
image: nginx:alpine
tunnel:
image: sknet/sknet:latest
command: [client]
restart: unless-stopped
environment:
SKNET_REMOTE: control.sknet.gitaspen.ru:7000
SKNET_TOKEN: ${SKNET_TOKEN:?Добавьте токен в .env}
SKNET_TLS: "1"
SKNET_NAME: my-app
SKNET_LOCAL: http://app:80
depends_on:
- app3. Сохраните токен
SKNET_TOKEN=snet_ваш_секретный_токенФайл .env не добавляют в Git. В репозитории оставляют только .env.example без значения.
4. Запустите
docker compose up -d
docker compose logs -f tunnelКогда в логе появится secure tunnel established, откройте публичный адрес из кабинета.
Если приложение не в Docker
Контейнер должен уметь обратиться к приложению на хосте. На Windows и macOS обычно подходит host.docker.internal.
environment:
SKNET_LOCAL: http://host.docker.internal:3000Откройте исходник документа по ссылке «Предложить правку» — там же видно, что и когда в нём менялось.