- Полный отказ от вывода громоздких QR-кодов в терминал
- Автоматический фоновый веб-сервер для раздачи файлов и картинок QR из каталога clients
- Компактная карточка M3 со списком прямых кликабельных ссылок и каталогом файлов
- Прямой вывод ссылок на первого клиента в финальной рамке без подтверждения
- Добавлена опция --web-port (по умолчанию 8080) и сохранение в install.conf
- Обновлена документация и CLI команды freeturn client qr
- Разделение QR-кодов на 3 чётких формата с подробными подсказками:
1. AmneziaWG Direct (AWG 3.1) для официального приложения AmneziaWG
2. FreeTurn App (релей + вшитый VPN) со ссылкой freeturn:// для мобильного приложения FreeTurn
3. AmneziaWG Relay (127.0.0.1:9000) для связки с отдельным CLI/Termux клиентом
- Вывод по умолчанию всех 3 QR-кодов при завершении установки и по команде freeturn client qr
- Инструкции и готовая SCP-команда для скачивания всех 3 картинок (*.png) на ПК
- Добавлена команда freeturn client web для временной раздачи картинок через браузер по HTTP
- Поддержка протокола OSC 1337 для автоматического сохранения файлов в поддерживаемых терминалах
- Включение авторизации по Client ID (allowlist) по умолчанию в мастере установки
- Создание глобального симлинка /usr/local/bin/freeturn для вызова из любой директории
- Умный поиск имени клиента с поддержкой дефисов/регистра (client1 -> client-1)
- Очистка от комментариев и Low ECC (-l L) для компактного QR-кода (~51 колонка) в PowerShell/терминалах
- Интерактивный запрос на вывод QR-кода первого клиента сразу после завершения установки
- Обновление подсказок и документации на команду freeturn
- фикс вызова функций в ui_spin при наличии gum (устранена ошибка _dl: command not found)
- поддержка поля wg в freeturn:// ссылках для автонастройки VPN в мобильном приложении
- генерация отдельного профиля и выбор QR-кода со вшитым VPN в install.sh
- генерация 18 параметров amneziawg 3.1 и docker-compose для freeturn-awg
- команды cli и rpc v2 для управления пирами и вывода qr-кодов (direct и relay)
- раздельная установка, переконфигурация и раздельное удаление компонентов
- набор из 27 автоматических bats-тестов установщика
- актуализация документации по прямому режиму и развёртыванию
убраны флаги -mode и -bond: остался только udp-релей для wireguard.
удалены tcpfwd, tcpfwdserver, bondclient, bondserver, bondframe, kcptun,
wire/relay; proxy/common переехал в udprelay/dial.
BREAKING CHANGE: флаги -mode и -bond удалены; конфиги и ссылки freeturn://
с tcp-режимом больше не принимаются.
Два Windows-specific бага мешали ставить /32-маршруты к TURN-реле:
- log.Printf пишет в stderr, а usage гонит `2>&1 | routes.ps1`.
В Windows PowerShell 5.1 `2>&1` на нативном exe оборачивает каждую
stderr-строку в ErrorRecord (нет метода .Trim()) — `$_.Trim()` бросал
исключение на каждой строке, ни одна не матчилась. Заменено на $_.Trim(),
который коэрсит и String, и ErrorRecord в текст строки лога.
- New-NetRoute требует -InterfaceIndex (параметр mandatory); без него
в non-interactive пайпе cmdlet падал. InterfaceIndex берётся из того же
default-route, что и NextHop.
Чинит тихий выход после выбора метода (set -e + установка WireGuard
в мастере убивали скрипт без диагностики) и неудобный выбор.
- trap ERR с номером строки и командой вместо тихой смерти
- WireGuard только детектится (порт бэкенда), без авто-установки
- whiptail-TUI: gauge-прелоадеры (pull/up/download/deps), меню с
--default-item, backtitle, валидация портов/hex-ключа; fallback на
текст со спиннером, чтение из /dev/tty (работает через curl | bash)
- non-interactive режим: -y + флаги (--method/--mode/--obf-key/
--version/--update/--uninstall/--purge), CLI бьёт install.conf
- health-check после старта (docker inspect / systemctl is-active):
падение даёт ошибку с логами, а не ложное «Готово»
- docs: curl | bash one-liner + примеры non-interactive
Повторный запуск install-server.sh обнаруживает установку и предлагает меню: обновить версию (конфиг сохраняется), переконфигурировать, удалить.
- конфиг установки в /opt/free-turn-proxy/install.conf (chmod 600)
- выбор версии релиза при установке (список с GitHub API, дефолт latest)
- iptables -C перед -I: нет дублей правил при повторе
- атомарная подмена бинарника systemd + restart
- docker compose pull для подтягивания нового образа
- routes.{sh,ps1,macos.sh} → scripts/; старые файлы из корня удалены
- унифицирован парсинг: TURN server IP, relayed-address=, CIDR, plain IP
- исправлен баг доки: логи клиента идут в stderr, пайп требует -debug 2>&1
- quickstart.md переписан: секция маршрутов, команды трёх платформ
- troubleshooting.md: обновлены пути и примечание про -debug