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
AgeCommit message (Collapse)Author
2026-01-03Added curl dependency to Dockerfile for improved functionality (#3617)v2.8.6lolka1333
Co-authored-by: lolka1333 <test123@gmail.com>
2026-01-03fixMHSanaei
2026-01-03v2.8.6MHSanaei
2026-01-03Remove wget dependency from everywhere (#3598)Nebulosa
* Remove wget dependency * Merge branch 'curl_only' of https://github.com/nebulosa2007/3x-ui into nebulosa2007-curl_only --------- Co-authored-by: Sanaei <ho3ein.sanaei@gmail.com>
2026-01-03minor changesMHSanaei
2026-01-03update dependenciesMHSanaei
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-03vless: use Inbound Listen address in Subscription service (#3610)Igor Kamyshnikov
* vless: use Inbound Listen address in Subscription service vless manual connection link and subscription produced connection link are aligned. subscription service now returns an IP address configured on Inbound, instead of subscription service IP, which is consistent when the address, returned by QR code for manual vless link distribution.
2026-01-03Set variables for packaging purposes (#3600)Nebulosa
* Set Variables for settings
2026-01-03Added EnvironmentFile to systemd unit (#3606)Mikhail Grigorev
* Added EnvironmentFile to systemd unit * Added support for older releases * Remove ARGS * Fixed copy unit * Fixed unit filename * Update update.sh
2026-01-03feat: Add etckeeper compatibility (#3602)weekend sorrow
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.
2026-01-02Set log folder variable to /var/log/3x-ui (#3599)Nebulosa
* Set log folder variable to /var/log/3x-ui * Set log folder as x-ui and create the log folder * Create the log folder in install and update scripts
2025-12-28fix: add missing is_domain helper function to x-ui.sh (#3612)Wyatt
The is_domain function was being called in ssl_cert_issue() but was never defined in x-ui.sh, causing 'Invalid domain format' errors for valid domains. Added is_ipv4, is_ipv6, is_ip, and is_domain helper functions to match the definitions in install.sh and update.sh. Co-authored-by: wyatt <wyatt@Wyatts-MacBook-Air.local>
2025-12-28Self-signed SSL (#3611)Sanaei
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-04fixMHSanaei
2025-12-04Xray Core 25.12.2MHSanaei
2025-12-04update dependenciesMHSanaei
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-03Update for Red Hat base Linux (#3589)JieXu
* Update install.sh * Update update.sh * Update x-ui.sh * Update install.sh * Update update.sh * Update x-ui.sh * fix
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-12-03Update x-ui.sh (#3595)Evgeny Popov
Add curl & openssl pkgs for acme inside docker container
2025-11-09update dependenciesmhsanaei
2025-11-09Fix: Incorrect time in xray logs (#3587)fgsfds
* fixed timezone in xray logs * remove leading / at the address
2025-11-07Add update-all-geofiles key to x-ui.sh (#3586)fgsfds
* added update-all-geofiles key to x-ui.sh that updated all geofiles * fix * text fixes * typo fix * cleanup
2025-11-02Better Random Reality (#3585)lillinlin
* Update reality_targets.js * Update inbound.js
2025-11-01Fix: Invoke service.StopBot() in signal handlers (#3583)OleksandrParshyn
Ensures the global Telegram bot stop function (`service.StopBot()`) is called upon receiving system signals (SIGHUP for restart, SIGINT/SIGTERM for shutdown). This complements the changes in `tgbot.go` to guarantee a clean shutdown of the Telegram bot's Long Polling operation, fully resolving the 409 Conflict issue during panel restarts or shutdowns. Changes: - Added `service.StopBot()` call to the `syscall.SIGHUP` handler. - Added `service.StopBot()` call to the default shutdown handler.
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-11-01Improve English README (#3579)BOplaid
2025-10-21gofmtmhsanaei
2025-10-15v2.8.5v2.8.5mhsanaei
2025-10-15Xray-core v25.10.15mhsanaei
2025-10-14fix(import): prevent sqlite disk I/O error by validating temp DB then swappingmhsanaei
2025-10-09feat: add file logger support (#3575)Slava M.
* feat: add backend for file logger
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-02Add support for OpenSUSE Leap (#3573)JieXu
* Update update.sh * Update install.sh * Update x-ui.sh * Update x-ui.sh
2025-10-01first try native CPU implementationmhsanaei