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/sub
AgeCommit message (Collapse)Author
2026-04-20add hysteria inboundMHSanaei
Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
2026-04-20Use vnext/users structure for VLESS outboundMHSanaei
Replace the previous flat settings map for VLESS outbound with a vnext/users structure. Encryption is now pulled from inbound settings into the user object, a level field (8) is added, and client id and flow are preserved. Address and port are nested under vnext and outbound.Settings is set to {vnext: [...]}, aligning the outbound format with the expected VLESS schema. Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
2026-04-20Add SSRF protection (#4044)Sanaei
* Add SSRF protection for custom geo downloads Introduce SSRF-safe HTTP transport for custom geo operations by adding ssrfSafeTransport and isBlockedIP helpers. The transport resolves hosts and blocks loopback, private, link-local and unspecified addresses, returning ErrCustomGeoSSRFBlocked on violations. Update probeCustomGeoURLWithGET, probeCustomGeoURL and downloadToPathOnce to use the safe transport. Also add the new error ErrCustomGeoSSRFBlocked and necessary imports. Minor whitespace/formatting adjustments in subClashService.go, web/entity/entity.go and web/service/setting.go. * Add path traversal protection for custom geo Prevent path traversal when handling custom geo downloads by adding ErrCustomGeoPathTraversal and a validateDestPath() helper that ensures destination paths stay inside the bin folder. Call validateDestPath from downloadToPathOnce, Update and Delete paths and wrap errors appropriately. Reconstruct sanitized URLs in sanitizeURL to break taint propagation before use. Map the new path-traversal error to a user-facing i18n message in the controller. * fix
2026-04-19feat add clash yaml convert (#3916)zhuzn
* docs(agents): add AI agent guidance documentation * feat(sub): add Clash/Mihomo YAML subscription service Add SubClashService to convert subscription links to Clash/Mihomo YAML format for direct client compatibility. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(sub): integrate Clash YAML endpoint into subscription system - Add Clash route handler in SUBController - Update BuildURLs to include Clash URL - Pass Clash settings through subscription pipeline Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(web): add Clash settings to entity and service - Add SubClashEnable, SubClashPath, SubClashURI fields - Add getter methods for Clash configuration - Set default Clash path to /clash/ and enable by default Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(ui): add Clash settings to subscription panels - Add Clash enable switch in general subscription settings - Add Clash path/URI configuration in formats panel - Display Clash QR code on subscription page - Rename JSON tab to "Formats" for clarity Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(js): add Clash support to frontend models - Add subClashEnable, subClashPath, subClashURI to AllSetting - Generate and display Clash QR code on subscription page - Handle Clash URL in subscription data binding Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Sanaei <ho3ein.sanaei@gmail.com>
2026-04-19fix(sub): use safe type assertion for xhttp mode field (#3990)Nikita Nemirovsky
Unsafe type assertion `xhttp["mode"].(string)` panics when mode is nil (e.g., when xhttpSettings only contains path without mode). The panic is caught by Gin's recovery middleware and returned as HTTP 500. Use comma-ok pattern matching the fix already applied to gRPC's authority field in 21d98813. Fixes #3987
2026-02-15Improve telego client robustness and retriesMHSanaei
Add a createRobustFastHTTPClient helper to configure fasthttp.Client with better timeouts, connection limits, retries and optional SOCKS5 proxy dialing. Validate and sanitize proxy and API server URLs instead of returning early on invalid values, and build telego.Bot options dynamically. Reduce long-polling timeout to detect connection issues faster and adjust update retrieval comments. Implement exponential-backoff retry logic for SendMessage calls to handle transient connection/timeouts and improve delivery reliability; also reduce inter-message delay for better throughput.
2026-02-11Remove allowInsecureMHSanaei
Remove the deprecated `allowInsecure`
2026-02-09refactor: set default ProfileUrl (#3773)Nebulosa
2026-02-08refactor: set header only if it not empty (#3763)Nebulosa
2026-02-03Add workflow to clean old GitHub Actions cachesMHSanaei
Adds a scheduled GitHub Actions workflow (.github/workflows/cleanup_caches.yml) that runs weekly (and via workflow_dispatch) to delete Actions caches not accessed in the last 3 days. The job uses the gh CLI with the repository token and actions: write permission to list caches, filter by last_accessed_at against a 3-day cutoff, and delete matching cache IDs.
2026-01-27feat: more subscription information fields (#3701)Danil S.
* feat: more subscription information fields * fix: incorrect translation * feat: implement field for Happ custom routing rules
2026-01-05Refactor code and fix linter warnings (#3627)Ilya Kryuchkov
* refactor: use any instead of empty interface * refactor: code cleanup
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.
2025-10-09feat: add file logger support (#3575)Slava M.
* feat: add backend for file logger
2025-09-24tiny changesmhsanaei
2025-09-21improved sub: BuildURLsmhsanaei
2025-09-20undo vnext for vmessmhsanaei
2025-09-20docs: add comments for all functionsmhsanaei
2025-09-19go package correction v2mhsanaei
2025-09-19go package correctionmhsanaei
2025-09-18new: subJsonEnablemhsanaei
after this subEnable by default is true and subJsonEnable is false
2025-09-18minor changemhsanaei
2025-09-16sub page: improvedmhsanaei
2025-09-16vnext removedmhsanaei
2025-09-15sub template enhancementsAlireza Ahmadi
2025-09-14v2.8.0v2.8.0mhsanaei
2025-09-14enhancementsAlireza Ahmadi
2025-09-14Subscriptionmhsanaei
2025-09-09dokodemo-door, socks renamed to mixed, tunnelmhsanaei
2025-09-07Vlessenc (#3426)Sanaei
* mlkem768 * VlessEnc
2025-08-17minor changesmhsanaei
2025-08-04fix: pqv for sub #3306mhsanaei
2025-07-25add mldsa65Alireza Ahmadi
2025-04-15fix: encoding subscription title in base64Shishkevich D.
2025-03-15feat: custom subscription title in panel (#2773)Ilya Afanasov
* feat: custom subscription title in panel * feat: added translations
2025-03-12Refactor: Use any instead of interface{}mhsanaei
2025-01-01tcpNoDelay to penetratemhsanaei
2024-12-04Transport: Remove HTTPmhsanaei
Migrated to XHTTP "stream-one" mode.
2024-12-04splithttp to xhttpmhsanaei
2024-11-21AsIs - freedom DSmhsanaei
2024-11-14SplitHTTP - Modemhsanaei
2024-10-29removed - XTLS Securitymhsanaei
because its too old and no one use it anymore
2024-10-17freedom - default settingsmhsanaei
2024-09-17update noise to noisesmhsanaei
+ type
2024-09-16New - Allocatemhsanaei
2024-09-09quic removedmhsanaei
2024-09-02fix TypeError: this.shortIds.split is not a function (#2507)Dmitry Zhavoronkov
* fix TypeError: this.shortIds.split is not a function
2024-08-29New - Noisemhsanaei
freedom
2024-08-11Fix #2470 (The subscription service gives two ports for VLESS) (#2479)v2.3.13Ilya
* Fix #2470
2024-08-11new - vmess security (inbound client side - outbound)mhsanaei