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:
@@ -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
|
||||
@@ -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 |
Reference in New Issue
Block a user