This is a web application built with Next.js for managing and accessing Docker-based VNC containers. The platform allows users to create, manage, and remotely access Ubuntu desktop environment containers.
- Create VNC containers based on Ubuntu XFCE desktop environment
- Manage container lifecycle (start, stop, remove)
- Access container desktop environments directly through browser
- Responsive web interface supporting both desktop and mobile devices
- Next.js 15.4.5 - React Framework
- React 19.1.0 - UI Library
- TypeScript - Type-safe JavaScript
- Tailwind CSS v4 - CSS Framework
- Dockerode - Docker API Client
- react-vnc - React VNC Component
- noVNC - VNC Client Library
- WebSocket - Real-time Communication Protocol
โโโโโโโโโโโโโโโโโโโ HTTP โโโโโโโโโโโโโโโโโโ
โ Web Browser โ โโโโโโโโโโโถโ Next.js Server โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ
โ
WebSocketโ
โผ
โโโโโโโโโโโโโโโโโโ
โ WebSocket Proxy โ
โ (websockify.ts) โ
โโโโโโโโโโโโโโโโโโ
โ
TCP/VNCโ
โผ
โโโโโโโโโโโโโโโโโโ
โ Docker Containerโ
โ (Ubuntu XFCE) โ
โโโโโโโโโโโโโโโโโโ
.
โโโ server/ # Server-side code
โ โโโ websockify.ts # WebSocket to TCP proxy service
โโโ src/
โ โโโ app/
โ โโโ [container]/ # Container detail page (dynamic route)
โ โ โโโ page.tsx # VNC connection page
โ โโโ actions/ # Server Actions
โ โ โโโ docker.ts # Docker container operations
โ โโโ globals.css # Global styles
โ โโโ layout.tsx # Root layout
โ โโโ page.tsx # Homepage (container management)
โโโ next.config.ts # Next.js configuration
โโโ package.json # Project dependencies and scripts
โโโ tsconfig.json # TypeScript configuration
- Node.js (Recommended 18.x or higher)
- Docker (for running containers)
- npm, yarn, pnpm or bun (for dependency management)
npm install
# or
yarn install
# or
pnpm install
# or
bun installnpm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You also need to start the WebSocket proxy service:
npx tsx server/websockify.tsnpm run build
# or
yarn build
# or
pnpm build
# or
bun buildnpm run start
# or
yarn start
# or
pnpm start
# or
bun start- Enter a container name on the homepage and click "Create Container"
- Wait for the container to be created and started (may take some time)
- Click on the container name to enter the VNC connection page
- The system will automatically connect to the container's desktop environment
- Use the buttons at the bottom of the page to disconnect or reconnect
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
This project is licensed under the MIT License - see the LICENSE file for details.
่ฟๆฏไธไธชๅบไบ Next.js ๆๅปบ็ Web ๅบ็จ๏ผ็จไบ็ฎก็ๅ่ฎฟ้ฎๅบไบ Docker ็ VNC ๅฎนๅจใ่ฏฅๅนณๅฐๅ ่ฎธ็จๆทๅๅปบใ็ฎก็ๅ่ฟ็จ่ฎฟ้ฎ Ubuntu ๆก้ข็ฏๅขๅฎนๅจใ
- ๅๅปบๅบไบ Ubuntu XFCE ๆก้ข็ฏๅข็ VNC ๅฎนๅจ
- ็ฎก็ๅฎนๅจ็ๅฝๅจๆ๏ผๅฏๅจใๅๆญขใๅ ้ค๏ผ
- ้่ฟๆต่งๅจ็ดๆฅ่ฎฟ้ฎๅฎนๅจๅ ็ๆก้ข็ฏๅข
- ๅๅบๅผ Web ็้ข๏ผๆฏๆๆก้ขๅ็งปๅจ่ฎพๅค
- Next.js 15.4.5 - React ๆกๆถ
- React 19.1.0 - UI ๅบ
- TypeScript - ็ฑปๅๅฎๅ จ็ JavaScript
- Tailwind CSS v4 - CSS ๆกๆถ
- Dockerode - Docker API ๅฎขๆท็ซฏ
- react-vnc - React VNC ็ปไปถ
- noVNC - VNC ๅฎขๆท็ซฏๅบ
- WebSocket - ๅฎๆถ้ไฟกๅ่ฎฎ
โโโโโโโโโโโโโโโโโโโ HTTP โโโโโโโโโโโโโโโโโโ
โ Web ๆต่งๅจ โ โโโโโโโโโโโถโ Next.js ๆๅก โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ
โ
WebSocketโ
โผ
โโโโโโโโโโโโโโโโโโ
โ WebSocket ไปฃ็ โ
โ (websockify.ts) โ
โโโโโโโโโโโโโโโโโโ
โ
TCP/VNCโ
โผ
โโโโโโโโโโโโโโโโโโ
โ Docker ๅฎนๅจ โ
โ (Ubuntu XFCE) โ
โโโโโโโโโโโโโโโโโโ
.
โโโ server/ # ๆๅกๅจ็ซฏไปฃ็
โ โโโ websockify.ts # WebSocket ๅฐ TCP ็ไปฃ็ๆๅก
โโโ src/
โ โโโ app/
โ โโโ [container]/ # ๅฎนๅจ่ฏฆๆ
้กต้ข๏ผๅจๆ่ทฏ็ฑ๏ผ
โ โ โโโ page.tsx # VNC ่ฟๆฅ้กต้ข
โ โโโ actions/ # Server Actions
โ โ โโโ docker.ts # Docker ๅฎนๅจๆไฝ
โ โโโ globals.css # ๅ
จๅฑๆ ทๅผ
โ โโโ layout.tsx # ๆ นๅธๅฑ
โ โโโ page.tsx # ไธป้กต๏ผๅฎนๅจ็ฎก็๏ผ
โโโ next.config.ts # Next.js ้
็ฝฎ
โโโ package.json # ้กน็ฎไพ่ตๅ่ๆฌ
โโโ tsconfig.json # TypeScript ้
็ฝฎ
- Node.js (ๆจ่ 18.x ๆๆด้ซ็ๆฌ)
- Docker (็จไบ่ฟ่กๅฎนๅจ)
- npm, yarn, pnpm ๆ bun (็จไบไพ่ต็ฎก็)
npm install
# ๆ
yarn install
# ๆ
pnpm install
# ๆ
bun installnpm run dev
# ๆ
yarn dev
# ๆ
pnpm dev
# ๆ
bun devๆๅผ http://localhost:3000 ๆฅ็ๅบ็จใ
ๅๆถ้่ฆๅฏๅจ WebSocket ไปฃ็ๆๅก๏ผ
npx tsx server/websockify.tsnpm run build
# ๆ
yarn build
# ๆ
pnpm build
# ๆ
bun buildnpm run start
# ๆ
yarn start
# ๆ
pnpm start
# ๆ
bun start- ๅจไธป้กตไธ่พๅ ฅๅฎนๅจๅ็งฐๅนถ็นๅป"ๅๅปบๅฎนๅจ"
- ็ญๅพ ๅฎนๅจๅๅปบๅๅฏๅจๅฎๆ๏ผๅฏ่ฝ้่ฆไธไบๆถ้ด๏ผ
- ็นๅปๅฎนๅจๅ็งฐ่ฟๅ ฅ VNC ่ฟๆฅ้กต้ข
- ็ณป็ปๅฐ่ชๅจ่ฟๆฅๅฐๅฎนๅจ็ๆก้ข็ฏๅข
- ๅฏไปฅไฝฟ็จ้กต้ขๅบ้จ็ๆ้ฎๆญๅผๆ้ๆฐ่ฟๆฅ
- Next.js ๆๆกฃ - ไบ่งฃ Next.js ็นๆงๅ API
- ๅญฆไน Next.js - ไบคไบๅผ Next.js ๆ็จ
ไฝ ๅฏไปฅๆฅ็ GitHub ไปๅบ - ๆฌข่ฟๆไพๅ้ฆๅ่ดก็ฎ๏ผ
ๆฌ้กน็ฎไฝฟ็จ MIT ่ฎธๅฏ่ฏ๏ผ่ฏฆๆ ่ฏทๆฅ็ LICENSE ๆไปถใ