eadd5255b00a8faca3da6e653cbd7e4da1e2ec7e
17
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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 |