tuna и Docker
Туннель можно запустить отдельным контейнером рядом с приложением. tuna обращается к приложению по имени сервиса Docker Compose, поэтому публиковать порт приложения на хосте не нужно.
Шаг 1. Создайте API-ключ
В контейнере нет браузера для tuna login, поэтому tuna входит по API-ключу. Создайте API-ключ с набором «Для туннелей» и сохраните его в файл .env рядом с compose.yml:
TUNA_API_KEY=<ваш_ключ>
Шаг 2. Опишите сервисы
В примере приложение — тестовый веб-сервер whoami, он отвечает данными запроса. Замените его на своё приложение и порт:
services:
web:
image: traefik/whoami
tuna:
image: yuccastream/tuna:latest
command: http web:80
restart: always
environment:
TUNA_API_KEY: ${TUNA_API_KEY}
depends_on:
- web
Шаг 3. Запустите
docker compose up -d
docker compose logs tuna
В логе tuna найдите строку Forwarding: в поле url — публичный адрес туннеля.
Остановить и удалить контейнеры:
docker compose down
Инспектор
В официальном образе yuccastream/tuna инспектор запросов по умолчанию выключен: в контейнере его обычно никто не открывает. Как включить его и открыть снаружи контейнера — в разделе Инспектор в Docker.
tuna на хосте
Если tuna установлен на самой машине, а не в контейнере, опубликуйте порт приложения и запустите туннель на него:
services:
web:
image: traefik/whoami
ports:
- 127.0.0.1:8000:80
tuna http 8000