Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/web
AgeCommit message (Collapse)Author
2026-01-03minor changesMHSanaei
2026-01-03feat: Add WebSocket support for real-time updates and enhance VLESS settings ↵lolka1333
(#3605) * feat: add support for trusted X-Forwarded-For and testseed parameters in VLESS settings * chore: update Xray Core version to 25.12.8 in release workflow * chore: update Xray Core version to 25.12.8 in Docker initialization script * chore: bump version to 2.8.6 and add watcher for security changes in inbound modal * refactor: remove default and random seed buttons from outbound form * refactor: update VLESS form to rename 'Test Seed' to 'Vision Seed' and change button functionality for seed generation * refactor: enhance TLS settings form layout with improved button styling and spacing * feat: integrate WebSocket support for real-time updates on inbounds and Xray service status * chore: downgrade version to 2.8.5 * refactor: translate comments to English * fix: ensure testseed is initialized correctly for VLESS protocol and improve client handling in inbound modal * refactor: simplify VLESS divider condition by removing unnecessary flow checks * fix: add fallback date formatting for cases when IntlUtil is not available * refactor: simplify WebSocket message handling by removing batching and ensuring individual message delivery * refactor: disable WebSocket notifications in inbound and index HTML files * refactor: enhance VLESS testseed initialization and button functionality in inbound modal * fix: * refactor: ensure proper WebSocket URL construction by normalizing basePath * fix: * fix: * fix: * refactor: update testseed methods for improved reactivity and binding in VLESS form * logger info to debug --------- Co-authored-by: lolka1333 <test123@gmail.com>
2026-01-03Fix: panel redirecting to old port after restart (#3594)Ilya Kryuchkov
* Fix panel redirect logic * Fix panel redirect logic * remove duplicate code * Cr fixes
2026-01-02Fix telegram bot issue (#3608)Vlad Yaroslavlev
* fix: improve Telegram bot handling for concurrent starts and graceful shutdown - Added logic to stop any existing long-polling loop when Start is called again. - Introduced a mutex to manage access to shared state variables, ensuring thread safety. - Updated the OnReceive method to prevent multiple concurrent executions. - Enhanced Stop method to ensure proper cleanup of resources and state management. * fix: enhance Telegram bot's long-polling management - Improved handling of concurrent starts by stopping existing long-polling loops. - Implemented mutex for thread-safe access to shared state variables. - Updated OnReceive method to prevent multiple executions. - Enhanced Stop method for better resource cleanup and state management. * .
2026-01-02Fix QR codes colors inversion (#3607)Anton Petrov
2026-01-02fix: handle GitHub API error responses in GetXrayVersions (#3609)Zhenyu Qi
GitHub API returns JSON object instead of array when encountering errors (e.g., rate limit exceeded). This causes JSON unmarshal error: 'cannot unmarshal object into Go value of type []service.Release' Add HTTP status code check to handle error responses gracefully and return user-friendly error messages instead of JSON parsing errors. Fixes issue where getXrayVersion fails with unmarshal error when GitHub API rate limit is exceeded.
2025-12-23fix: display of outbound traffic (#3604)zd
shows the direction of traffic
2025-12-12fix: handle CPU threshold error to prevent false notifications (#3603)Борисов Семён
Previously, when GetTgCpu() failed, the error was ignored and threshold defaulted to 0, causing notifications to be sent for any CPU usage. Now the job properly checks for errors and skips notifications if: - The threshold cannot be retrieved (error) - The threshold is not set or is 0 This ensures notifications are only sent when CPU usage exceeds the configured threshold value from settings.
2025-12-04chore: use `Intl` for date formatting (#3588)Danil S.
* chore: use `Intl` for date formatting * fix: show last traffic reset * chore: use raw timestamps * fix: remove unnecessary import
2025-12-03Fix int64 for 32-bit arch (#3591)Roman Gogolev
* fix int64 for 32-bit arch * Update web/service/tgbot.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-03Add "Last Online" printing for Telegram bot (#3593)Anton Petrov
2025-11-09Fix: Incorrect time in xray logs (#3587)fgsfds
* fixed timezone in xray logs * remove leading / at the address
2025-11-02Better Random Reality (#3585)lillinlin
* Update reality_targets.js * Update inbound.js
2025-11-01Feature: add setting certs for subscription while generating for panel (#3578)Дмитрий Олегович Саенко
2025-11-01fix: improve russian localization (#3576)Rashid Yusubov
* fix: improve russian localization * fix: updating the Russian translation according to the suggestions
2025-11-01feat: Add random Reality Target/SNI selection from 52 popular services (#3577)Denis Gorelov
* feat: Add random Reality Target/SNI selection from 52 popular services - Created reality_targets.js with list of 52 popular services - Updated RealityStreamSettings to use random targets by default - Added UI randomize buttons with sync icon in Reality settings form - Implemented randomizeRealityTarget() method in inbound modal - Replaces hardcoded google.com with diverse global services * fix --------- Co-authored-by: mhsanaei <ho3ein.sanaei@gmail.com>
2025-11-01Fix: Graceful Telegram bot shutdown to prevent 409 Conflict (#3580)OleksandrParshyn
* Fix: Graceful Telegram bot shutdown to prevent 409 Conflict Introduces a `botCancel` context and a global `StopBot()` function to ensure the Telegram bot's Long Polling operation is safely terminated (via context cancellation) before the service restarts. This prevents the "Conflict: another update consumer is running" (409) error upon panel restart. Changes: - Added `botCancel context.CancelFunc` to manage context cancellation. - Implemented global `StopBot()` function. - Updated `Tgbot.Stop()` to call `StopBot()`. - Modified `Tgbot.OnReceive()` to use the new cancellable context for `UpdatesViaLongPolling`. * Fix: Prevent race condition and goroutine leak in TgBot Addresses a critical race condition on the global `botCancel` variable, which could occur if `Tgbot.OnReceive()` was called concurrently (e.g., during rapid panel restarts or unexpected behavior). Changes in tgbot.go: - Added `tgBotMutex sync.Mutex` to ensure thread safety. - Protected `botCancel` creation and assignment in `OnReceive()` using the mutex, and added a check to prevent overwriting an active context, which avoids goroutine leaks. - Protected the cancellation and cleanup logic in `StopBot()` with the mutex. * Refactor: Replace time.Sleep with sync.WaitGroup for reliable TgBot shutdown Replaced the unreliable `time.Sleep(1 * time.Second)` in `service.StopBot()` with `sync.WaitGroup`. This ensures the Long Polling goroutine is explicitly waited for and reliably exits before the panel continues, preventing potential resource leaks and incomplete shutdowns during restarts. Changes: - Added `botWG sync.WaitGroup` variable. - Updated `service.StopBot()` to call `botWG.Wait()` instead of `time.Sleep()`. - Modified `Tgbot.OnReceive()` to correctly use `botWG.Add(1)` and `defer botWG.Done()` within the Long Polling goroutine. - Corrected the goroutine structure in `OnReceive()` to properly encapsulate all message handling logic.
2025-10-21gofmtmhsanaei
2025-10-14fix(import): prevent sqlite disk I/O error by validating temp DB then swappingmhsanaei
2025-10-07Update translate.ru_RU.toml (#3574)fpointsstar
Fix RU translation for login title: replace “Приветствие!” with “Добро пожаловать!” to match English “Welcome”.
2025-10-07update dependenciesmhsanaei
2025-10-07fragment : MaxSplitmhsanaei
2025-10-02DevToolsmhsanaei
2025-10-02fix: improve error handling in periodic traffic reset job (#3572)Vadim Iskuchekov
2025-10-01first try native CPU implementationmhsanaei
2025-09-29fix: fix delete method (#3569)konstpic
Co-authored-by: Пичугин Константин <k.pichugin@comagic.dev>
2025-09-28feat: add ldap component (#3568)konstpic
* add ldap component * fix: fix russian comments, tls cert verify default true * feat: remove replaces go mod for local dev
2025-09-25fix russian translate in tgbot (#3557)Дмитрий Олегович Саенко
2025-09-25fix: login animation (#3559)Tara Rostami
* Add IPv4 for wget in install * fix: login animation
2025-09-24fixmhsanaei
2025-09-24login: autocomplete passwordmhsanaei
2025-09-24minor changesmhsanaei
2025-09-24bug fixmhsanaei
2025-09-24API improve security: returns 404 for unauthenticated API requestsmhsanaei
2025-09-23max port to 65535 (#3536)Дмитрий Олегович Саенко
* add EXPOSE port in Dockerfile * fix: max port 65 531 -> 65 535 * fix --------- Co-authored-by: mhsanaei <ho3ein.sanaei@gmail.com>
2025-09-23Add Happ client export open link (#3542)Happ-dev
Co-authored-by: y.sivushkin <y.sivushkin@corp.101xp.com>
2025-09-23fix api : subid, uuid from inbound settingsmhsanaei
2025-09-22fix: outbound address for vlessmhsanaei
2025-09-21pageSize to 25mhsanaei
2025-09-21TGbot: improved (5x faster)mhsanaei
2025-09-21API: UUID for getClientTrafficsmhsanaei
2025-09-21security fix: Uncontrolled data used in path expressionmhsanaei
2025-09-21security fix: Uncontrolled data used in path expressionmhsanaei
2025-09-21security fix: Command built from user-controlled sources CWE-78mhsanaei
https://cwe.mitre.org/data/definitions/78.html https://owasp.org/www-community/attacks/Command_Injection
2025-09-20undo vnext for vmessmhsanaei
2025-09-20Minor Fixes (#3520)Tara Rostami
2025-09-20docs: add comments for all functionsmhsanaei
2025-09-19new: VACUUM databasemhsanaei
2025-09-19better design for dns presetsmhsanaei
2025-09-19fix: subpath panicmhsanaei