Первый туннель за несколько минут

Создаём публичный HTTPS-адрес для сервиса, который уже запускается через Docker.

1 минута

Что получится

Предположим, ваш сайт открывается внутри Docker по адресу http://app:80. После настройки он будет доступен по адресу https://my-app.sknet.gitaspen.ru.

На компьютере не нужно открывать порт 80 или 443. Контейнер SKNet сам устанавливает исходящее защищённое соединение.

Имя my-app — пример. Служебные и официально выглядящие имена SKNet не выдаёт.

1. Создайте туннель

  1. Откройте кабинет

    Войдите через единый аккаунт GitAspen и нажмите «Новый туннель».

  2. Задайте имя

    Короткое имя становится частью адреса: my-app → my-app.sknet.gitaspen.ru.

  3. Выпустите токен

    Секрет показывается один раз. Скопируйте его в .env или менеджер секретов.

2. Добавьте контейнер

Добавьте сервис tunnel рядом с приложением. В SKNET_LOCAL указывается внутренний Docker-адрес приложения, а не localhost вашего браузера.

compose.yml
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:
      - app

3. Сохраните токен

.env
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.

compose.yml
environment:
  SKNET_LOCAL: http://host.docker.internal:3000
Инструкция не помогла?

Откройте исходник документа по ссылке «Предложить правку» — там же видно, что и когда в нём менялось.