# System Architecture Describe the overall architecture with user, controller, agents. ๐ŸŒ User Panel โ”€โ”€โ–บ XControl API โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ–ฒ โ”‚ โ”‚ โ”‚ REST API โ–ผ โ”‚ [ๆต่งˆๅ™จ] โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” gRPC/HTTP โ”‚ PostgreSQL โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ Xray ่Š‚็‚น Agent #1 โ”‚ โ”‚ Xray + stats/api โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ... โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ DeepFlow Agent #N โ”‚ โ”‚ eBPF + WASM้‡‡ๆต้‡ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ๐Ÿงญ ๅคš็งŸๆˆท VLESS ็ฎก็†็ณป็ปŸๆžถๆž„ๅ›พ ๏ผˆ็”จๆˆท้ข + ๆŽงๅˆถ้ข + ๅคš่Š‚็‚น๏ผ‰ ๐ŸŒ ็”จๆˆท้ข๏ผˆUser Panel๏ผ‰ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ [User Browser] โ”‚ โ”‚ โ”œโ”€๐Ÿ“„ ๆŸฅ็œ‹้…็ฝฎๅฏผๅ‡บ๏ผˆvless:// + QR ็ ๏ผ‰ โ”‚ โ”‚ โ”œโ”€๐Ÿ“Š ๅฝ“ๅ‰ไฝฟ็”จ้‡๏ผˆไธŠ/ไธ‹่กŒๆต้‡ใ€ๅ›พ่กจ๏ผ‰ โ”‚ โ”‚ โ””โ”€๐ŸŒ ๅฏ็”จ่Š‚็‚นๅˆ—่กจ๏ผˆ้€‰ๆ‹ฉ่ฎข้˜…๏ผ‰ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ HTTPS API ่ฏทๆฑ‚ โ–ผ ๐Ÿง  ๆŽงๅˆถ้ข๏ผˆvless-admin Controller๏ผ‰ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ REST API (Gin) โ”‚ โ”‚ โ”œโ”€ /api/users โ†’ ็”จๆˆทๆณจๅ†Œ/ๆทปๅŠ /ๆต้‡ๆŸฅ่ฏข โ”‚ โ”‚ โ”œโ”€ /api/subscription โ†’ vless:// ่ฎข้˜…้“พๆŽฅ็”Ÿๆˆ โ”‚ โ”‚ โ”œโ”€ /api/nodes โ†’ ๅคš่Š‚็‚นไฟกๆฏๅฑ•็คบ โ”‚ โ”‚ โ””โ”€ /api/stats โ†’ ๅŽๅฐๆต้‡้‡‡้›†ใ€ๆตๆŽง็ญ–็•ฅ โ”‚ โ”‚ โ”‚ โ”‚ PostgreSQL โ”‚ โ”‚ โ”œโ”€ ็”จๆˆท่กจ (email + UUID) โ”‚ โ”‚ โ”œโ”€ ่Š‚็‚น่กจ โ”‚ โ”‚ โ””โ”€ ๆต้‡่กจ๏ผˆๆฏๆ—ฅ/ๆฏๅฐๆ—ถ๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ WebUI (Vue3) โ†’ embed.FS๏ผˆGo ไบŒ่ฟ›ๅˆถๅตŒๅ…ฅ๏ผ‰ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ HTTP/gRPC ๆŽงๅˆถไธŽๆ‹‰ๅ–้…็ฝฎ โ–ผ ๐Ÿ›ฐ๏ธ ๅคš่Š‚็‚น๏ผˆXray-core + Agent๏ผ‰ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Agent: Node #1 โ”‚ โ”‚ Agent: Node #2 โ”‚ โ”‚ Agent: Node #N โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ Xray-core โ”‚ โ”‚ โ”‚ โ”‚ Xray-core โ”‚ โ”‚ โ”‚ โ”‚ Xray-core โ”‚ โ”‚ โ”‚ โ”‚ + stats + api โ”‚ โ”‚ โ”‚ โ”‚ + stats + api โ”‚ โ”‚ โ”‚ โ”‚ + stats + api โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โฌ† ไธŠๆŠฅ็”จๆˆทๆต้‡ โ”‚ โ”‚ โฌ† ไธŠๆŠฅ็”จๆˆทๆต้‡ โ”‚ โ”‚ โฌ† ไธŠๆŠฅ็”จๆˆทๆต้‡ โ”‚ โ”‚ โฌ‡ ๆ‹‰ๅ–็”จๆˆท้…็ฝฎ โ”‚ โ”‚ โฌ‡ ๆ‹‰ๅ–็”จๆˆท้…็ฝฎ โ”‚ โ”‚ โฌ‡ ๆ‹‰ๅ–็”จๆˆท้…็ฝฎ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜