Commit Graph

21 Commits

Author SHA1 Message Date
samosvalishe 82907f3cc6 fix: собственный iface для awg 2026-09-07 08:40:15 +03:00
samosvalishe c447fc405b fix: release awg img 2026-09-07 03:40:52 +03:00
samosvalishe 408b68e960 fix: installer 2026-09-07 03:32:18 +03:00
samosvalishe 032d1fac56 fix: installer 2026-09-07 03:12:58 +03:00
samosvalishe daf8cece80 feat(scripts): поддержка amneziawg 3.1, управление клиентами и qr-коды в установщике
- генерация 18 параметров amneziawg 3.1 и docker-compose для freeturn-awg
- команды cli и rpc v2 для управления пирами и вывода qr-кодов (direct и relay)
- раздельная установка, переконфигурация и раздельное удаление компонентов
- набор из 27 автоматических bats-тестов установщика
- актуализация документации по прямому режиму и развёртыванию
2026-09-07 02:37:55 +03:00
samosvalishe f7129099f7 feat(proxy): tcp-режим для xray/sing-box поверх turn 2026-08-25 15:44:16 +03:00
samosvalishe 74241de764 break!: выпил tcp-режим туннеля
убраны флаги -mode и -bond: остался только udp-релей для wireguard.
удалены tcpfwd, tcpfwdserver, bondclient, bondserver, bondframe, kcptun,
wire/relay; proxy/common переехал в udprelay/dial.

BREAKING CHANGE: флаги -mode и -bond удалены; конфиги и ссылки freeturn://
с tcp-режимом больше не принимаются.
2026-08-17 00:27:23 +03:00
samosvalishe 681dde8a6d feat(mobile): переживание сна и рестарта на Android 2026-08-16 21:19:14 +03:00
samosvalishe 575f278a9a feat(mobile): переименование ios -> mobile, универсальный движок для iOS/Android 2026-06-25 02:44:31 +03:00
Tremendous Stimulus d255bc5f82 feat(ios): добавить iOS framework 2026-06-19 23:56:49 +03:00
samosvalishe b518dc40b2 fix(install): неинтерактивный apt, чтобы needrestart/debconf не вешали установку 2026-06-11 19:27:37 +03:00
samosvalishe 4b26d6361d fix: install.sh 2026-05-26 16:13:42 +03:00
samosvalishe 854cab95c0 fix: install.sh 2026-05-26 15:28:40 +03:00
samosvalishe 375cf55182 fix: install.sh 2026-05-26 15:24:19 +03:00
samosvalishe 0f74c238c5 refactor: install.sh 2026-05-26 13:02:13 +03:00
samosvalishe 7b0a907638 fix(routes): починить установку маршрутов в routes.ps1 на Windows
Два 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.
2026-05-26 01:02:30 +03:00
samosvalishe 1b154a2e84 fix(install): переписать установщик сервера — TUI, надёжность, non-interactive
Чинит тихий выход после выбора метода (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
2026-05-26 00:52:46 +03:00
samosvalishe 198d314031 feat: идемпотентный установщик с выбором версии и обновлением
Повторный запуск install-server.sh обнаруживает установку и предлагает меню: обновить версию (конфиг сохраняется), переконфигурировать, удалить.

- конфиг установки в /opt/free-turn-proxy/install.conf (chmod 600)
- выбор версии релиза при установке (список с GitHub API, дефолт latest)
- iptables -C перед -I: нет дублей правил при повторе
- атомарная подмена бинарника systemd + restart
- docker compose pull для подтягивания нового образа
2026-05-24 22:38:21 +03:00
samosvalishe 76519860b4 feat: автоустановка сервера и обновление документации 2026-05-24 21:17:57 +03:00
samosvalishe 8b2e028f99 fix: устранить замечания комплексной проверки
Критичное:
- go.mod: версия 1.25.5→1.25.0 (go mod tidy); Dockerfile: тег 1.25
- release.yml: go-version 1.25.5 → stable
- удалён temp-файл types.go.tmp.18500.1c9f4278a15a
- udprelay/loop.go: defer conn1/conn2.Close() при сбое Dial; лог write-error

Безопасность/код:
- browserprofile: пермиссии 0644→0600
- bondserver: once.Do перед go readLane (ordering fix)
- cmd/server: err= → err:= (shadow fix в AfterFunc)
- vkauth/client: vkDelayRandom ctx-aware (возвращает error)
- captcha/manual: whitelist хостов в /generic_proxy (SSRF mitigation)

Инфра:
- .dockerignore: исключить .git/.github/notes/dist из build context
- docker-compose.yml: env_file .env для OBF_KEY
- entrypoint.sh: позиционные аргументы вместо unquoted vars; валидация host:port

CI:
- ci.yml: исправлен путь go module cache (~/go/pkg/mod); добавлен -race
- .gitignore: добавлены /dist/, *.test, coverage.out, .env, *.tmp
- .golangci.yml: добавлены gosec и staticcheck
- routes-macos.sh: set -eu вместо set -u

Код:
- bondclient/bondserver: errors.Is(err, io.EOF) вместо err != io.EOF
- cmd/client: константа dtlsHandshakeConcurrency для HandshakeSem

Доки:
- quickstart.md: добавлен Intel Mac (darwin-amd64)
- build.md: версия Go, Windows/macOS cross-compile инструкции
- flags.md: уточнено описание -bond
2026-05-21 20:14:45 +03:00
samosvalishe f3166c0bae docs: переместить route-скрипты в scripts/, исправить пайп с -debug 2>&1
- routes.{sh,ps1,macos.sh} → scripts/; старые файлы из корня удалены
- унифицирован парсинг: TURN server IP, relayed-address=, CIDR, plain IP
- исправлен баг доки: логи клиента идут в stderr, пайп требует -debug 2>&1
- quickstart.md переписан: секция маршрутов, команды трёх платформ
- troubleshooting.md: обновлены пути и примечание про -debug
2026-05-21 16:22:51 +03:00