feat: add xui-deploy skill with lessons learned

- SKILL.md v1.1: full deployment workflow for 3x-ui on VPS via SSH
- Covers Docker/native install, Nginx+TLS, Xray inbound config
- references/xray-inbound-config.md: VLESS+WS+TLS and Reality configs
- references/lessons-learned.md: lessons from first real deployment
  - /app/x-ui binary vs shell wrapper in Docker
  - correct API path: panel/api/inbounds/add
  - subPath-only DB write (subURI causes blank settings page)
  - --network host port exposure workaround
- Agent prompt and eval configs included
This commit is contained in:
Team
2026-04-25 14:07:55 +08:00
parent c0d14c6ac1
commit b6e3cef844
11 changed files with 877 additions and 0 deletions
@@ -0,0 +1,40 @@
@startuml xui-deploy-architecture
skinparam componentStyle rectangle
skinparam defaultFontName Arial
skinparam backgroundColor #FAFAFA
package "xui-deploy Skill" {
component "SKILL.md\n(instructions)" as SKILL
component "evals/evals.json" as EVALS
}
package "Local Machine" {
component "SSH private key" as KEY
actor Developer
}
package "VPS (Linux)" {
component "curl / bash" as CURL
component "x-ui CLI\n(x-ui setting / restart)" as XUCLI
component "3x-ui Service\n(systemd)" as SERVICE
database "x-ui Data\n(/etc/x-ui/)" as DATA
component "Panel Web UI\n(:<panel_port>)" as PANEL
component "Firewall\n(ufw / firewalld)" as FW
}
cloud "GitHub" {
component "install.sh\n(MHSanaei/3x-ui)" as INSTALLER
}
Developer --> SKILL : triggers skill
SKILL --> KEY : SSH auth
SKILL --> CURL : runs installer via SSH
CURL --> INSTALLER : downloads install.sh
INSTALLER --> SERVICE : installs & starts
SKILL --> XUCLI : configure port/user/pass/path
XUCLI --> SERVICE : restart
SERVICE --> DATA : persists config
SERVICE --> PANEL : serves web UI
SKILL --> FW : opens panel port
SKILL --> Developer : reports panel URL
@enduml
+43
View File
@@ -0,0 +1,43 @@
@startuml xui-deploy-workflow
skinparam defaultFontName Arial
skinparam backgroundColor #FAFAFA
actor Developer
participant "xui-deploy\nSkill" as SKILL
participant "VPS (SSH)" as VPS
participant "GitHub\n(install.sh)" as GH
Developer -> SKILL : deploy x-ui on VPS
SKILL -> Developer : collect host, SSH user, key, panel password
SKILL -> VPS : ssh echo OK (connectivity test)
alt SSH fails
SKILL -> Developer : report error, stop
end
SKILL -> VPS : cat /etc/os-release
alt unsupported OS
SKILL -> Developer : warn, ask to confirm
end
SKILL -> VPS : curl install.sh | bash
VPS -> GH : download install.sh
alt x-ui already installed
VPS -> VPS : update to latest version
else fresh install
VPS -> VPS : install 3x-ui + systemd service
end
SKILL -> VPS : x-ui setting -port / -username / -password / -webBasePath
SKILL -> VPS : x-ui restart
SKILL -> VPS : x-ui status
alt service not running
SKILL -> VPS : x-ui log (last 30 lines)
SKILL -> Developer : report error
end
SKILL -> VPS : ufw allow <port> OR firewall-cmd --add-port
SKILL -> Developer : panel URL + username + version
@enduml
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB