diff --git a/web/html/xui/index.html b/web/html/xui/index.html
new file mode 100644
index 00000000..284fdf03
--- /dev/null
+++ b/web/html/xui/index.html
@@ -0,0 +1,576 @@
+
+
+{{template "head" .}}
+
+
+
+
+ {{ template "commonSider" . }}
+
+
+
+
+
+
+
+
+
+
+
+ CPU: [[ cpuCoreFormat(status.cpuCores) ]]
+ Speed: [[ cpuSpeedFormat(status.cpuSpeedMhz) ]]
+
+
+
+
+ {{ i18n "pages.index.memory"}}: [[ sizeFormat(status.mem.current) ]] / [[ sizeFormat(status.mem.total) ]]
+
+
+
+
+
+
+
+
+
+ Swap: [[ sizeFormat(status.swap.current) ]] / [[ sizeFormat(status.swap.total) ]]
+
+
+
+
+
+ {{ i18n "pages.index.hard"}}: [[ sizeFormat(status.disk.current) ]] / [[ sizeFormat(status.disk.total) ]]
+
+
+
+
+
+
+
+
+
+
+
+
+ 3x-ui: v{{ .cur_ver }}
+ Xray: v[[ status.xray.version ]]
+ Telegram: @panel3xui
+
+
+
+
+ {{ i18n "menu.link" }}:
+ {{ i18n "pages.index.logs" }}
+ {{ i18n "pages.index.config" }}
+ {{ i18n "pages.index.backup" }}
+
+
+
+
+ {{ i18n "pages.index.xrayStatus" }}:
+ [[ status.xray.state ]]
+
+
+ [[ line ]]
+
+
+
+ {{ i18n "pages.index.stopXray" }}
+ {{ i18n "pages.index.restartXray" }}
+ {{ i18n "pages.index.xraySwitch" }}
+
+
+
+
+
+
+ {{ i18n "pages.index.systemLoad" }}: [[ status.loads[0] ]] | [[ status.loads[1] ]] | [[ status.loads[2] ]]
+
+
+ {{ i18n "pages.index.systemLoadDesc" }}
+
+
+
+
+
+ {{ i18n "pages.index.operationHours" }}:
+ [[ formatSecond(status.uptime) ]]
+
+
+
+
+
+
+
+
+ IPv4:
+
+
+ [[ status.publicIP.ipv4 ]]
+
+
+
+
+
+ IPv6:
+
+
+ [[ status.publicIP.ipv6 ]]
+
+
+
+
+
+
+
+
+
+
+
+ TCP: [[ status.tcpCount ]]
+
+
+ {{ i18n "pages.index.connectionTcpCountDesc" }}
+
+
+
+
+
+ UDP: [[ status.udpCount ]]
+
+
+ {{ i18n "pages.index.connectionUdpCountDesc" }}
+
+
+
+
+
+
+
+
+
+
+
+
+ [[ sizeFormat(status.netIO.up) ]]/S
+
+
+ {{ i18n "pages.index.upSpeed" }}
+
+
+
+
+
+
+ [[ sizeFormat(status.netIO.down) ]]/S
+
+
+ {{ i18n "pages.index.downSpeed" }}
+
+
+
+
+
+
+
+
+
+
+
+
+ [[ sizeFormat(status.netTraffic.sent) ]]
+
+
+ {{ i18n "pages.index.totalSent" }}
+
+
+
+
+
+
+ [[ sizeFormat(status.netTraffic.recv) ]]
+
+
+ {{ i18n "pages.index.totalReceive" }}
+
+
+
+
+
+
+
+
+
+
+
+
+ versionModal.visible = false"
+ :class="themeSwitcher.darkCardClass"
+ footer="">
+ {{ i18n "pages.index.xraySwitchClick"}}
+ {{ i18n "pages.index.xraySwitchClickDesk"}}
+
+
+ [[ version ]]
+
+
+
+
+ logModal.visible = false" @cancel="() => logModal.visible = false"
+ :class="themeSwitcher.darkCardClass"
+ width="800px"
+ footer="">
+
+
+
+ 10
+ 20
+ 50
+ 100
+
+
+
+
+
+
+
+ {{ i18n "download" }} x-ui.log
+
+
+
+
+
+
+ backupModal.hide()" @cancel="() => backupModal.hide()">
+
+
+ [[ backupModal.description ]]
+
+
+
+ [[ backupModal.exportText ]]
+
+
+ [[ backupModal.importText ]]
+
+
+
+
+
+{{template "js" .}}
+{{template "component/themeSwitcher" .}}
+{{template "textModal"}}
+
+
+
\ No newline at end of file