eb78dec2d8a1cd43cc5438e17fe2db62e2b173bb
37
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
bcee7502ff |
docs: align panel SSL with DNS-01 wildcards
Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. docs: align panel SSL with DNS-01 wildcards Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. docs: align panel SSL with DNS-01 wildcards Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. docs: align panel SSL with DNS-01 wildcards Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. docs: align panel SSL with DNS-01 wildcards Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. docs: align panel SSL with DNS-01 wildcards Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. docs: align panel SSL with DNS-01 wildcards Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. docs: align panel SSL with DNS-01 wildcards Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. docs: align panel SSL with DNS-01 wildcards Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. docs: align panel SSL with DNS-01 wildcards Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. docs: align panel SSL with DNS-01 wildcards Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. docs: align panel SSL with DNS-01 wildcards Add panel-ssl.md; update README, installation, batch-certificate, and OpenAPI /system/ssl for challenge, Cloudflare token, and recovery notes. |
||
|
|
d283f38638 |
chore: move localized READMEs under docs/readme
Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. chore: move localized READMEs under docs/readme Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. chore: move localized READMEs under docs/readme Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. chore: move localized READMEs under docs/readme Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. chore: move localized READMEs under docs/readme Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. chore: move localized READMEs under docs/readme Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. chore: move localized READMEs under docs/readme Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. chore: move localized READMEs under docs/readme Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. chore: move localized READMEs under docs/readme Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. chore: move localized READMEs under docs/readme Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. chore: move localized READMEs under docs/readme Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. chore: move localized READMEs under docs/readme Keep root README.md as the canonical entry. Translations live in docs/readme/ with fixed relative links and a language index. |
||
|
|
b9e8d57971 |
fix(ci): repair i18n syntax; document GitHub OAuth
Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. fix(ci): repair i18n syntax; document GitHub OAuth Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. fix(ci): repair i18n syntax; document GitHub OAuth Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. fix(ci): repair i18n syntax; document GitHub OAuth Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. fix(ci): repair i18n syntax; document GitHub OAuth Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. fix(ci): repair i18n syntax; document GitHub OAuth Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. fix(ci): repair i18n syntax; document GitHub OAuth Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. fix(ci): repair i18n syntax; document GitHub OAuth Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. fix(ci): repair i18n syntax; document GitHub OAuth Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. fix(ci): repair i18n syntax; document GitHub OAuth Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. fix(ci): repair i18n syntax; document GitHub OAuth Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. fix(ci): repair i18n syntax; document GitHub OAuth Remove double comma in en/zh-CN locale settings keys that broke oxlint. Add OpenAPI paths, docs/github-oauth.md, and README security note. |
||
|
|
8bfa8b7034 |
feat(ssl): Let's Encrypt IP address certificates (shortlived)
When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. feat(ssl): Let's Encrypt IP address certificates (shortlived) When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. feat(ssl): Let's Encrypt IP address certificates (shortlived) When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. feat(ssl): Let's Encrypt IP address certificates (shortlived) When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. feat(ssl): Let's Encrypt IP address certificates (shortlived) When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. feat(ssl): Let's Encrypt IP address certificates (shortlived) When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. feat(ssl): Let's Encrypt IP address certificates (shortlived) When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. feat(ssl): Let's Encrypt IP address certificates (shortlived) When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. feat(ssl): Let's Encrypt IP address certificates (shortlived) When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. feat(ssl): Let's Encrypt IP address certificates (shortlived) When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. feat(ssl): Let's Encrypt IP address certificates (shortlived) When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. feat(ssl): Let's Encrypt IP address certificates (shortlived) When panel SSL domain is a public IP, obtain LE shortlived (~6 day) certs via ACME profile=shortlived + HTTP-01, with automatic renewal under 48h. Domain hostnames still use autocert as before. |
||
|
|
3bb1abe43a | docs: document POST /users/quick in OpenAPI and user guides | ||
|
|
feb8d6889a |
docs: document Cloudflare WARP (v1.3.6) across READMEs and routing
Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). docs: document Cloudflare WARP (v1.3.6) across READMEs and routing Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). docs: document Cloudflare WARP (v1.3.6) across READMEs and routing Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). docs: document Cloudflare WARP (v1.3.6) across READMEs and routing Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). docs: document Cloudflare WARP (v1.3.6) across READMEs and routing Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). docs: document Cloudflare WARP (v1.3.6) across READMEs and routing Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). docs: document Cloudflare WARP (v1.3.6) across READMEs and routing Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). docs: document Cloudflare WARP (v1.3.6) across READMEs and routing Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). docs: document Cloudflare WARP (v1.3.6) across READMEs and routing Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). docs: document Cloudflare WARP (v1.3.6) across READMEs and routing Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). docs: document Cloudflare WARP (v1.3.6) across READMEs and routing Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). docs: document Cloudflare WARP (v1.3.6) across READMEs and routing Add docs/warp.md, link from all language READMEs / feature tables, and clarify routing is client-only (WARP is Settings YAML, not server exit). |
||
|
|
52bb97c083 |
chore: remove Cloudflare WARP feature (panel, API, docs)
Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. chore: remove Cloudflare WARP feature (panel, API, docs) Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. chore: remove Cloudflare WARP feature (panel, API, docs) Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. chore: remove Cloudflare WARP feature (panel, API, docs) Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. chore: remove Cloudflare WARP feature (panel, API, docs) Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. chore: remove Cloudflare WARP feature (panel, API, docs) Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. chore: remove Cloudflare WARP feature (panel, API, docs) Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. chore: remove Cloudflare WARP feature (panel, API, docs) Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. chore: remove Cloudflare WARP feature (panel, API, docs) Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. chore: remove Cloudflare WARP feature (panel, API, docs) Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. chore: remove Cloudflare WARP feature (panel, API, docs) Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. chore: remove Cloudflare WARP feature (panel, API, docs) Drop register/inject endpoints, Settings/Routing UI, server-exit WARP path, and documentation. Client routing and inbound panel unchanged; server remains MATCH,DIRECT. |
||
|
|
a0ceb3a815 |
feat: server WARP exit for listener traffic (user → node → WARP IP)
When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. feat: server WARP exit for listener traffic (user → node → WARP IP) When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. feat: server WARP exit for listener traffic (user → node → WARP IP) When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. feat: server WARP exit for listener traffic (user → node → WARP IP) When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. feat: server WARP exit for listener traffic (user → node → WARP IP) When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. feat: server WARP exit for listener traffic (user → node → WARP IP) When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. feat: server WARP exit for listener traffic (user → node → WARP IP) When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. feat: server WARP exit for listener traffic (user → node → WARP IP) When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. feat: server WARP exit for listener traffic (user → node → WARP IP) When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. feat: server WARP exit for listener traffic (user → node → WARP IP) When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. feat: server WARP exit for listener traffic (user → node → WARP IP) When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. feat: server WARP exit for listener traffic (user → node → WARP IP) When visual-config contains wireguard/WARP outbounds, GenerateFinalConfig merges them into the serving Mihomo process and sets MATCH to that exit (optional CN DIRECT). Client community rules remain client-subscription only. |
||
|
|
ad35987e21 |
refactor: drop server-side split; visual routing is client-only
GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. refactor: drop server-side split; visual routing is client-only GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. refactor: drop server-side split; visual routing is client-only GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. refactor: drop server-side split; visual routing is client-only GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. refactor: drop server-side split; visual routing is client-only GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. refactor: drop server-side split; visual routing is client-only GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. refactor: drop server-side split; visual routing is client-only GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. refactor: drop server-side split; visual routing is client-only GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. refactor: drop server-side split; visual routing is client-only GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. refactor: drop server-side split; visual routing is client-only GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. refactor: drop server-side split; visual routing is client-only GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. refactor: drop server-side split; visual routing is client-only GenerateFinalConfig strips rules/proxy-groups/proxies from visual-config and forces MATCH,DIRECT on the serving Mihomo process. Panel Routing page remains the editor for client subscription YAML only. |
||
|
|
3b65c03d6c |
feat(sub): export panel routing groups/rules into client Mihomo YAML
Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. feat(sub): export panel routing groups/rules into client Mihomo YAML Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. feat(sub): export panel routing groups/rules into client Mihomo YAML Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. feat(sub): export panel routing groups/rules into client Mihomo YAML Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. feat(sub): export panel routing groups/rules into client Mihomo YAML Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. feat(sub): export panel routing groups/rules into client Mihomo YAML Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. feat(sub): export panel routing groups/rules into client Mihomo YAML Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. feat(sub): export panel routing groups/rules into client Mihomo YAML Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. feat(sub): export panel routing groups/rules into client Mihomo YAML Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. feat(sub): export panel routing groups/rules into client Mihomo YAML Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. feat(sub): export panel routing groups/rules into client Mihomo YAML Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. feat(sub): export panel routing groups/rules into client Mihomo YAML Client subscriptions now use visual-config proxy-groups and rules. Leaf groups that only listed DIRECT get subscription node names injected. Default remains PROXY+AUTO when routing was never customized. |
||
|
|
f11b686a5e |
fix(routing): community templates restore proxy-groups
YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. fix(routing): community templates restore proxy-groups YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. fix(routing): community templates restore proxy-groups YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. fix(routing): community templates restore proxy-groups YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. fix(routing): community templates restore proxy-groups YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. fix(routing): community templates restore proxy-groups YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. fix(routing): community templates restore proxy-groups YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. fix(routing): community templates restore proxy-groups YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. fix(routing): community templates restore proxy-groups YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. fix(routing): community templates restore proxy-groups YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. fix(routing): community templates restore proxy-groups YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. fix(routing): community templates restore proxy-groups YiXuan/echs/MyClash presets now write matching select groups (地区/代理/AI/TG 等) plus rules, not rules-only with a single PROXY. |
||
|
|
1a7cff051c |
feat(routing): community rule templates (MyClash, echs-top, YiXuanZX)
- Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes feat(routing): community rule templates (MyClash, echs-top, YiXuanZX) - Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes feat(routing): community rule templates (MyClash, echs-top, YiXuanZX) - Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes feat(routing): community rule templates (MyClash, echs-top, YiXuanZX) - Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes feat(routing): community rule templates (MyClash, echs-top, YiXuanZX) - Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes feat(routing): community rule templates (MyClash, echs-top, YiXuanZX) - Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes feat(routing): community rule templates (MyClash, echs-top, YiXuanZX) - Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes feat(routing): community rule templates (MyClash, echs-top, YiXuanZX) - Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes feat(routing): community rule templates (MyClash, echs-top, YiXuanZX) - Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes feat(routing): community rule templates (MyClash, echs-top, YiXuanZX) - Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes feat(routing): community rule templates (MyClash, echs-top, YiXuanZX) - Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes feat(routing): community rule templates (MyClash, echs-top, YiXuanZX) - Templates adapted for GEOSITE/GEOIP + PROXY group (server visual-config) - Auto-create PROXY select group when applying community presets - README acknowledgements; docs/routing.md notes |
||
|
|
c6ac347866 |
docs: align routing (structured rules, WARP inject) and API notes
Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. docs: align routing (structured rules, WARP inject) and API notes Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. docs: align routing (structured rules, WARP inject) and API notes Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. docs: align routing (structured rules, WARP inject) and API notes Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. docs: align routing (structured rules, WARP inject) and API notes Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. docs: align routing (structured rules, WARP inject) and API notes Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. docs: align routing (structured rules, WARP inject) and API notes Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. docs: align routing (structured rules, WARP inject) and API notes Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. docs: align routing (structured rules, WARP inject) and API notes Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. docs: align routing (structured rules, WARP inject) and API notes Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. docs: align routing (structured rules, WARP inject) and API notes Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. docs: align routing (structured rules, WARP inject) and API notes Add docs/routing.md; README feature links; OpenAPI paths for rules/groups/inject-warp. |
||
|
|
f2c86450c8 |
fix(ci): sync package-lock for lucide-react; document Lucide + cluster push
- Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note fix(ci): sync package-lock for lucide-react; document Lucide + cluster push - Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note fix(ci): sync package-lock for lucide-react; document Lucide + cluster push - Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note fix(ci): sync package-lock for lucide-react; document Lucide + cluster push - Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note fix(ci): sync package-lock for lucide-react; document Lucide + cluster push - Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note fix(ci): sync package-lock for lucide-react; document Lucide + cluster push - Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note fix(ci): sync package-lock for lucide-react; document Lucide + cluster push - Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note fix(ci): sync package-lock for lucide-react; document Lucide + cluster push - Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note fix(ci): sync package-lock for lucide-react; document Lucide + cluster push - Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note fix(ci): sync package-lock for lucide-react; document Lucide + cluster push - Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note fix(ci): sync package-lock for lucide-react; document Lucide + cluster push - Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note fix(ci): sync package-lock for lucide-react; document Lucide + cluster push - Regenerate frontend/package-lock.json (fixes npm ci Missing lucide-react) - CI: fall back to npm install if lock drifts - README(s): Ant Design + Lucide; cluster push by name - docs/cluster.md: multi-node push UX and API - docs/installation.md: frontend stack note |
||
|
|
79e6c778a1 | chore: remove HWID feature (subscription device binding) | ||
|
|
e89750f9d0 |
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
docs: align README/OpenAPI with per-node traffic, limits, backups
- docs/node-traffic.md; feature tables; installation backup cleanup note
- OpenAPI: traffic_multiplier, GET /users/{id}/node-traffic
|
||
|
|
aab6c17745 |
fix(hwid): more reliable device registration + client header aliases
- Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) fix(hwid): more reliable device registration + client header aliases - Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) fix(hwid): more reliable device registration + client header aliases - Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) fix(hwid): more reliable device registration + client header aliases - Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) fix(hwid): more reliable device registration + client header aliases - Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) fix(hwid): more reliable device registration + client header aliases - Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) fix(hwid): more reliable device registration + client header aliases - Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) fix(hwid): more reliable device registration + client header aliases - Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) fix(hwid): more reliable device registration + client header aliases - Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) fix(hwid): more reliable device registration + client header aliases - Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) fix(hwid): more reliable device registration + client header aliases - Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) fix(hwid): more reliable device registration + client header aliases - Upsert on (proxy_user_id, hwid); log registered/seen for diagnosis - Accept x-device-id / x-hardware-id / ?hwid= aliases - Response x-hwid-limit for v2rayTUN when limit active - Docs: which clients actually send HWID (Clash stock does not) |
||
|
|
fa1744eef7 |
fix(hwid): never 500 subscriptions; fail-open tracking when unlimited
Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors fix(hwid): never 500 subscriptions; fail-open tracking when unlimited Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors fix(hwid): never 500 subscriptions; fail-open tracking when unlimited Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors fix(hwid): never 500 subscriptions; fail-open tracking when unlimited Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors fix(hwid): never 500 subscriptions; fail-open tracking when unlimited Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors fix(hwid): never 500 subscriptions; fail-open tracking when unlimited Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors fix(hwid): never 500 subscriptions; fail-open tracking when unlimited Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors fix(hwid): never 500 subscriptions; fail-open tracking when unlimited Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors fix(hwid): never 500 subscriptions; fail-open tracking when unlimited Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors fix(hwid): never 500 subscriptions; fail-open tracking when unlimited Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors fix(hwid): never 500 subscriptions; fail-open tracking when unlimited Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors fix(hwid): never 500 subscriptions; fail-open tracking when unlimited Root cause: hwid_limit=0 still tried to INSERT/UPDATE devices; any DB error returned 500 and blocked the whole subscription (Happ always sends x-hwid). - limit<=0: best-effort track only, never deny - limit>0: require x-hwid; deny only when over device cap - Accept broader client HWID strings (4–128, strip controls) - Router: only 403 for MaxDevices/Required; ignore other errors |
||
|
|
b6996ae2fb |
docs: align README, OpenAPI, and docs with current limits/certs/subs
- Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate docs: align README, OpenAPI, and docs with current limits/certs/subs - Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate docs: align README, OpenAPI, and docs with current limits/certs/subs - Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate docs: align README, OpenAPI, and docs with current limits/certs/subs - Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate docs: align README, OpenAPI, and docs with current limits/certs/subs - Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate docs: align README, OpenAPI, and docs with current limits/certs/subs - Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate docs: align README, OpenAPI, and docs with current limits/certs/subs - Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate docs: align README, OpenAPI, and docs with current limits/certs/subs - Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate docs: align README, OpenAPI, and docs with current limits/certs/subs - Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate docs: align README, OpenAPI, and docs with current limits/certs/subs - Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate docs: align README, OpenAPI, and docs with current limits/certs/subs - Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate docs: align README, OpenAPI, and docs with current limits/certs/subs - Feature tables: IP 5s poll, HWID require x-hwid, sub_pull_limit, batch cert - docs/users-limits.md, batch-certificate.md, subscription-formats.md - OpenAPI ProxyUser + POST /nodes/batch/certificate |
||
|
|
05bf9a270e |
chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema
Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 chore: align MetaCubeX audit — mihomo v1.19.31, TUIC modes, VMess schema Per wiki.metacubex.one / KIMI audit: - Bump bundled mihomo to v1.19.31 (amd64-v1 / arm64 digests verified) - TUIC: panel keeps tuic-v4|tuic-v5; legacy "tuic" auto-detects token-only→v4 else v5 (YAML type always "tuic" per official inbound docs) - UI: token field only on tuic-v4; tuic-v5 does not accept token in form - VMess listener schema: drop allow-insecure (not in official VMess listener fields) - Docs: version references → v1.19.31 |
||
|
|
e48fb1008d |
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
docs(ai-prompt): centralize install prompt and add curl-to-clipboard
Move the AI assistant install prompt into a single source of truth
(docs/ai-install-prompt.{md,zh.txt,en.txt}) so it no longer diverges
across README.md, README.en.md, README.zh-CN.md and docs/installation.md.
Add a one-liner that fetches the plain-text prompt straight to the
clipboard (pbcopy / xclip / wl-copy / Set-Clipboard), removing manual
copy-paste of a large block from rendered READMEs. The prompt content
itself is unchanged in spirit and still only runs the official
install.sh, with downloads verifying SHA256SUMS.
Prompt refinements (faithful to official script behavior):
- note CPU arch (amd64/arm64) and init system (systemd/OpenRC) checks
- mention sudo 3m-ui reset-admin for a lost one-time password
- explicitly forbid swapping third-party mirrors
|
||
|
|
715cec2ecd |
docs: add AI assistant install prompt (official script only)
Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. docs: add AI assistant install prompt (official script only) Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. docs: add AI assistant install prompt (official script only) Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. docs: add AI assistant install prompt (official script only) Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. docs: add AI assistant install prompt (official script only) Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. docs: add AI assistant install prompt (official script only) Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. docs: add AI assistant install prompt (official script only) Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. docs: add AI assistant install prompt (official script only) Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. docs: add AI assistant install prompt (official script only) Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. docs: add AI assistant install prompt (official script only) Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. docs: add AI assistant install prompt (official script only) Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. docs: add AI assistant install prompt (official script only) Copy-paste prompts for ChatGPT/Claude/Cursor in README (zh/en), zh-CN README, and installation.md. Instruct assistants to use only the official curl | sudo sh installer and not invent third-party sources. |
||
|
|
9471368afd |
perf: compress and cache embedded frontend assets (#54)
perf: compress and cache embedded frontend assets (#54) perf: compress and cache embedded frontend assets (#54) perf: compress and cache embedded frontend assets (#54) perf: compress and cache embedded frontend assets (#54) perf: compress and cache embedded frontend assets (#54) perf: compress and cache embedded frontend assets (#54) perf: compress and cache embedded frontend assets (#54) perf: compress and cache embedded frontend assets (#54) perf: compress and cache embedded frontend assets (#54) perf: compress and cache embedded frontend assets (#54) perf: compress and cache embedded frontend assets (#54) |
||
|
|
3ec69d55de | feat(mihomo): persistent core updates with rollback (#53) | ||
|
|
3a5b0d7e66 |
feat: sub path/port, user groups/tags/cycle renew, export links, WARP register
- server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles feat: sub path/port, user groups/tags/cycle renew, export links, WARP register - server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles feat: sub path/port, user groups/tags/cycle renew, export links, WARP register - server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles feat: sub path/port, user groups/tags/cycle renew, export links, WARP register - server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles feat: sub path/port, user groups/tags/cycle renew, export links, WARP register - server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles feat: sub path/port, user groups/tags/cycle renew, export links, WARP register - server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles feat: sub path/port, user groups/tags/cycle renew, export links, WARP register - server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles feat: sub path/port, user groups/tags/cycle renew, export links, WARP register - server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles feat: sub path/port, user groups/tags/cycle renew, export links, WARP register - server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles feat: sub path/port, user groups/tags/cycle renew, export links, WARP register - server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles feat: sub path/port, user groups/tags/cycle renew, export links, WARP register - server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles feat: sub path/port, user groups/tags/cycle renew, export links, WARP register - server.sub_path / sub_port / env overrides; custom /sub/:token + optional second listener - subscription URLs use configured path; legacy API path kept - proxy users: group, tags, traffic_reset_days, expire_renew_days + background cycle job - GET /users/export-links for one-click subscription link export - POST /system/templates/warp/register (Cloudflare WARP one-click) + Settings UI - Share page export-all; Users form fields for group/tags/cycles |
||
|
|
d0b53dcc9e |
feat(listeners): verify client connectivity and expose diagnostics
Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. feat(listeners): verify client connectivity and expose diagnostics Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. feat(listeners): verify client connectivity and expose diagnostics Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. feat(listeners): verify client connectivity and expose diagnostics Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. feat(listeners): verify client connectivity and expose diagnostics Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. feat(listeners): verify client connectivity and expose diagnostics Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. feat(listeners): verify client connectivity and expose diagnostics Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. feat(listeners): verify client connectivity and expose diagnostics Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. feat(listeners): verify client connectivity and expose diagnostics Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. feat(listeners): verify client connectivity and expose diagnostics Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. feat(listeners): verify client connectivity and expose diagnostics Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. feat(listeners): verify client connectivity and expose diagnostics Inspect listener readiness and test exported client endpoints with isolated Mihomo clients. Preserve public addresses, ports and protocol settings, report diagnostic stages, and repair generated access SNI fields. |
||
|
|
2e6256fb6a |
feat(distribution): add complete installation and recovery workflows
Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. feat(distribution): add complete installation and recovery workflows Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. feat(distribution): add complete installation and recovery workflows Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. feat(distribution): add complete installation and recovery workflows Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. feat(distribution): add complete installation and recovery workflows Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. feat(distribution): add complete installation and recovery workflows Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. feat(distribution): add complete installation and recovery workflows Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. feat(distribution): add complete installation and recovery workflows Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. feat(distribution): add complete installation and recovery workflows Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. feat(distribution): add complete installation and recovery workflows Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. feat(distribution): add complete installation and recovery workflows Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. feat(distribution): add complete installation and recovery workflows Ship stable-only Linux bundles and multiarch Docker images with a pinned Mihomo core. Share secure first-run initialization across native and container installs. Validate downloads before downtime, snapshot persistent state before updates, and restore the previous installation after a failed upgrade. Add backup, restore, healthcheck, and randomized administrator reset commands. Add release verification, lifecycle regression tests, and installation documentation. |
||
|
|
a3c5c3cd0f |
docs: 迁移至 3m-ui-docs 仓库 (Docusaurus)
文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) docs: 迁移至 3m-ui-docs 仓库 (Docusaurus) 文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) docs: 迁移至 3m-ui-docs 仓库 (Docusaurus) 文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) docs: 迁移至 3m-ui-docs 仓库 (Docusaurus) 文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) docs: 迁移至 3m-ui-docs 仓库 (Docusaurus) 文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) docs: 迁移至 3m-ui-docs 仓库 (Docusaurus) 文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) docs: 迁移至 3m-ui-docs 仓库 (Docusaurus) 文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) docs: 迁移至 3m-ui-docs 仓库 (Docusaurus) 文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) docs: 迁移至 3m-ui-docs 仓库 (Docusaurus) 文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) docs: 迁移至 3m-ui-docs 仓库 (Docusaurus) 文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) docs: 迁移至 3m-ui-docs 仓库 (Docusaurus) 文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) docs: 迁移至 3m-ui-docs 仓库 (Docusaurus) 文档已从本仓库迁移至独立的 3m-ui-docs 仓库,基于 Docusaurus 3 构建。 变更: - 删除 docs/ 目录(全部 18 篇 wiki 文档已迁移) - README.md 顶部添加迁移指引 新文档仓库: https://github.com/kazeyukiro/3m-ui-docs GitHub Wiki 已同步清空(仅保留迁移指引首页) |
||
|
|
1c24114581 |
docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO)
Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO) Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO) Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO) Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO) Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO) Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO) Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO) Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO) Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO) Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO) Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. docs: explain Mihomo verification behavior (THREE_M_UI_VERIFY_MIHOMO) Add section '四、Mihomo 核心的校验(说明)' to 验证Release签名.md: - Mihomo does not publish SHA256SUMS; we use GitHub Release API digest. - Three-tier verification: default (best-effort), VERIFY_MIHOMO=1 (enforce), INSECURE=1 (skip all). - Threat model: our 3m-ui binary is fully verified end-to-end; Mihomo is independent and protected by HTTPS + ELF smoke-test. Add item #11 to 安全建议.md summarizing the Mihomo verification stance. |
||
|
|
b81f91cb58 |
docs: add Release signature verification guide
Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. docs: add Release signature verification guide Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. docs: add Release signature verification guide Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. docs: add Release signature verification guide Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. docs: add Release signature verification guide Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. docs: add Release signature verification guide Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. docs: add Release signature verification guide Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. docs: add Release signature verification guide Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. docs: add Release signature verification guide Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. docs: add Release signature verification guide Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. docs: add Release signature verification guide Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. docs: add Release signature verification guide Add a new wiki page 验证Release签名.md covering: - Asset inventory (binaries, scripts, SHA256SUMS, cosign .pem/.sig) - Layer 1: integrity verification via SHA256SUMS (default, fail-closed) - Layer 2: authenticity verification via cosign keyless OIDC (opt-in) - Three verification modes: installer auto, manual, end-to-end example - v1.0.0 back-fill note (uses refs/heads/main identity) - FAQ (legacy releases, THREE_M_UI_INSECURE, keyless model, cosign trust) Cross-reference from: - 安装与升级.md: new '验证安装包签名(推荐)' section with cosign install + THREE_M_UI_VERIFY_COSIGN=1 usage for both install and update. - 安全建议.md: new item #10 '供应链验证' summarizing the two layers and warning against THREE_M_UI_INSECURE=1. - _Sidebar.md: add 验证Release签名 entry above 安全建议. |
||
|
|
7dca023678 | docs: NAT and custom panel port guide | ||
|
|
e930d6905e | docs: NAT and custom panel port guide | ||
|
|
149dab30b1 | docs: NAT and custom panel port guide | ||
|
|
1e2ab3488f | docs: NAT and custom panel port guide | ||
|
|
f60c3b218f | docs: NAT and custom panel port guide | ||
|
|
5b3836f9ae | docs: NAT and custom panel port guide | ||
|
|
7dae775208 | docs: add complete user guide under docs/wiki |