Commit Graph

403 Commits

Author SHA1 Message Date
samosvalishe b1cbafda73 perf(netconn): адрес пайпа без аллокации на каждое чтение 2026-09-22 20:04:05 +03:00
samosvalishe f4e8e0cfe0 fix(udp): завершать релей при отказе чтения локального сокета 2026-09-22 20:03:54 +03:00
samosvalishe 192dd27a1e fix: гард для релизера 2026-09-22 10:21:43 +03:00
samosvalishe af33b47fb2 feat: загрузка локально собранного бинаря на сервер 2026-09-22 10:21:10 +03:00
samosvalishe 05bbe996c1 fix: отбрасывать опоздавший повтор client id, общий backoff квоты 2026-09-22 00:43:06 +03:00
samosvalishe 1e3782c546 docs: прямой режим и новый установщик, без внутренней механики 2026-09-22 00:07:29 +03:00
samosvalishe d3e4cfc1db feat(auth)!: подтверждение Client ID с повтором по таймеру 2026-09-22 00:07:29 +03:00
samosvalishe caa8fea5bf fix(udp): логировать причину обрыва DTLS-сессии перед паузой 2026-09-22 00:07:29 +03:00
samosvalishe 5508cd65a7 fix(udp): ограничить очередь между сокетом и DTLS 2026-09-22 00:07:29 +03:00
samosvalishe f0f6c3ee6d ci(release): публиковать install.sh в релизе вместе с checksums 2026-09-22 00:07:29 +03:00
samosvalishe 0ee0d5333e feat(install)!: install.sh с JSON RPC proto 3 и голым WireGuard вместо AWG 2026-09-22 00:07:29 +03:00
samosvalishe ee30afc922 feat(client): провайдер direct - прямо на сервер без TURN-реле
Тот же DTLS с обфускацией, сервер не меняется. По умолчанию один поток.
2026-09-22 00:07:28 +03:00
samosvalishe 7df3a3fd91 refactor(dtls): убрать дублирующий doc.go 2026-09-21 13:43:52 +03:00
samosvalishe c116e427f7 test: убрать гонки в проверках учёта трафика 2026-09-21 13:43:21 +03:00
samosvalishe 7e5b2d4cde refactor(wake): убрать неиспользуемый Notifier 2026-09-21 13:43:20 +03:00
samosvalishe 273a5fa977 fix(netconn): отдавать остаток очереди при закрытии пира 2026-09-21 13:43:20 +03:00
samosvalishe a0c4656025 perf(udp): убрать сисколлы и аллокации с горячего пути релея 2026-09-21 13:43:20 +03:00
samosvalishe ac43e63ef8 fix(clients): фиксировать базу на диск через fsync 2026-09-21 13:43:13 +03:00
samosvalishe b621182ce4 fix(clients): останавливать горячую перезагрузку базы по контексту 2026-09-21 13:43:01 +03:00
samosvalishe fd5c4f92a5 fix(server): не ронять процесс паникой в обработчике соединения 2026-09-21 13:42:24 +03:00
samosvalishe f18e694f1a fix(cli): предупреждать, что встроенный туннель из ссылки не поднимается 2026-09-21 13:42:01 +03:00
samosvalishe 69dd5f9488 refactor(cli): общий обработчик сигналов для клиента и сервера 2026-09-21 13:41:59 +03:00
samosvalishe 0a3becc74d refactor(vk): не держать write-lock кеша реквизитов во время запроса 2026-09-21 13:41:00 +03:00
samosvalishe 3f9b3b6cd0 fix(vk): определять ошибки авторизации по sentinel, а не по тексту 2026-09-21 13:40:43 +03:00
samosvalishe dd0bc211b7 refactor(config): брать режимы dns из dnsdial 2026-09-21 13:39:53 +03:00
samosvalishe 8b3bea7b1a fix(sub): резолвить подписку через dns-диалер приложения 2026-09-21 13:39:53 +03:00
samosvalishe ece494aa1b fix(dns): не залипать на первом резолвере doh-форвардера 2026-09-21 13:39:46 +03:00
samosvalishe 3b48a17173 fix(captcha): слать баннер ручной капчи в логгер, а не в stdout 2026-09-21 13:39:22 +03:00
samosvalishe 56dfc9aedd refactor(logx): общий Holder вместо пакетных переменных Log 2026-09-21 13:39:06 +03:00
samosvalishe 322c7001fb refactor(wire): один listener на все профили обфускации 2026-09-21 13:36:27 +03:00
samosvalishe f422acb927 perf(obf): держать поток ChaCha8 в соединении rtpopus3 2026-09-21 13:36:27 +03:00
samosvalishe e32008bba2 perf(randx): rejection sampling вместо math/big 2026-09-21 13:36:19 +03:00
samosvalishe eb8ae03b50 docs(uri): добавить rtpopus3 в список профилей обфускации 2026-09-21 13:36:19 +03:00
samosvalishe 802ea7d0af ci: запинить версии gomobile, goimports и docker-действия 2026-09-21 13:36:18 +03:00
samosvalishe a7ec2b949a feat(mobile): отключаемый кольцевой буфер логов
Хосту, который ведёт лог через EventSink, кольцо для DumpLogs не нужно.
2026-09-19 23:54:42 +03:00
samosvalishe 4865a73b5f fix(dns): сбрасывать udp-резолверы, если сессия их не задала
Глобальный список переживал сессию, и следующая наследовала резолверы прошлой сессии или сети.
2026-09-19 23:54:42 +03:00
samosvalishe 64f8b63548 feat(uri): ссылка на звонок и пейсинг обфускации в freeturn://
vk применяется, только если своих ссылок не задано; timing - только вместе с обфускацией.
2026-09-19 23:54:42 +03:00
samosvalishe e102acbc4b feat(diagnostics): связывать события сессии и попытки восстановления 2026-09-12 17:33:50 +03:00
samosvalishe 061e3b882b fix(clients): сохранять авторизацию при ошибке записи базы 2026-09-12 17:33:46 +03:00
samosvalishe 6570cd9dd7 fix(relay): восстановление потоков при отказах turn и занятой квоте 2026-09-12 17:29:09 +03:00
samosvalishe e72157f4f7 feat(installer): токен на клиента и TTL для веб-раздачи 2026-09-12 15:14:45 +03:00
samosvalishe 065385e656 feat(installer): раздача QR-кодов и конфигов по веб-ссылкам без вывода в терминал
- Полный отказ от вывода громоздких QR-кодов в терминал
- Автоматический фоновый веб-сервер для раздачи файлов и картинок QR из каталога clients
- Компактная карточка M3 со списком прямых кликабельных ссылок и каталогом файлов
- Прямой вывод ссылок на первого клиента в финальной рамке без подтверждения
- Добавлена опция --web-port (по умолчанию 8080) и сохранение в install.conf
- Обновлена документация и CLI команды freeturn client qr
2026-09-07 19:17:35 +03:00
samosvalishe 092ea5916a feat(installer): вывод всех 3 форматов 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 для автоматического сохранения файлов в поддерживаемых терминалах
2026-09-07 18:41:03 +03:00
samosvalishe 8d551c61ae feat(installer): глобальный CLI freeturn, авторизация по Client ID по умолчанию и компактный QR
- Включение авторизации по Client ID (allowlist) по умолчанию в мастере установки
- Создание глобального симлинка /usr/local/bin/freeturn для вызова из любой директории
- Умный поиск имени клиента с поддержкой дефисов/регистра (client1 -> client-1)
- Очистка от комментариев и Low ECC (-l L) для компактного QR-кода (~51 колонка) в PowerShell/терминалах
- Интерактивный запрос на вывод QR-кода первого клиента сразу после завершения установки
- Обновление подсказок и документации на команду freeturn
2026-09-07 18:15:56 +03:00
samosvalishe b894608110 feat(installer): генерация QR в PNG, M3 TUI для клиентов и фикс утечки escape-последовательностей 2026-09-07 17:16:49 +03:00
samosvalishe 5568670f51 fix(ui): убрать утечку OSC 11/CPR escape-последовательностей при выводе плашек 2026-09-07 12:11:47 +03:00
samosvalishe 5dc5095e2a fix(installer): передача obf_profile, obf_key и proxy_mode в systemd и docker args 2026-09-07 11:44:49 +03:00
samokrutka e1bf369db1 chore(master): release 3.4.0 2026-09-07 10:00:05 +03:00
samosvalishe 9da2c8ebd2 feat: профиль freeturn vpn со вшитым wg и фикс ui_spin
- фикс вызова функций в ui_spin при наличии gum (устранена ошибка _dl: command not found)

- поддержка поля wg в freeturn:// ссылках для автонастройки VPN в мобильном приложении

- генерация отдельного профиля и выбор QR-кода со вшитым VPN в install.sh
2026-09-07 09:57:41 +03:00
samokrutka 2544be2ed6 chore(master): release 3.3.2 2026-09-07 09:01:28 +03:00