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