一个可扩展的通用虚拟化管理平台,支持 LXD、Incus、Docker 和 Proxmox VE。
使用已构建好的多架构镜像,会自动根据当前系统架构下载对应版本。
镜像标签说明:
| 镜像标签 | 说明 | 适用场景 |
|---|---|---|
spiritlhl/oneclickvirt:latest |
一体化版本(内置数据库)最新版 | 快速部署 |
spiritlhl/oneclickvirt:20251226 |
一体化版本特定日期版本 | 需要固定版本 |
spiritlhl/oneclickvirt:no-db |
独立数据库版本最新版 | 不内置数据库 |
spiritlhl/oneclickvirt:no-db-20251226 |
独立数据库版本特定日期 | 不内置数据库 |
所有镜像均支持 linux/amd64 和 linux/arm64 架构。
展开查看一体化版本(内置数据库)
基础使用(不配置域名):
docker run -d \
--name oneclickvirt \
-p 80:80 \
-v oneclickvirt-data:/var/lib/mysql \
-v oneclickvirt-storage:/app/storage \
--restart unless-stopped \
spiritlhl/oneclickvirt:latest配置域名访问:
如果你需要配置域名,需要设置 FRONTEND_URL 环境变量:
docker run -d \
--name oneclickvirt \
-p 80:80 \
-e FRONTEND_URL="https://your-domain.com" \
-v oneclickvirt-data:/var/lib/mysql \
-v oneclickvirt-storage:/app/storage \
--restart unless-stopped \
spiritlhl/oneclickvirt:latest或者使用 GitHub Container Registry:
docker run -d \
--name oneclickvirt \
-p 80:80 \
-e FRONTEND_URL="https://your-domain.com" \
-v oneclickvirt-data:/var/lib/mysql \
-v oneclickvirt-storage:/app/storage \
--restart unless-stopped \
ghcr.io/oneclickvirt/oneclickvirt:latest展开查看独立数据库版本
使用外部数据库,镜像更小,启动更快:
docker run -d \
--name oneclickvirt \
-p 80:80 \
-e FRONTEND_URL="https://your-domain.com" \
-e DB_HOST="your-mysql-host" \
-e DB_PORT="3306" \
-e DB_NAME="oneclickvirt" \
-e DB_USER="root" \
-e DB_PASSWORD="your-password" \
-v oneclickvirt-storage:/app/storage \
--restart unless-stopped \
spiritlhl/oneclickvirt:no-db环境变量说明:
FRONTEND_URL: 前端访问地址(必填,支持 http/https)DB_HOST: 数据库主机地址DB_PORT: 数据库端口(默认 3306)DB_NAME: 数据库名称DB_USER: 数据库用户名DB_PASSWORD: 数据库密码
说明:
FRONTEND_URL用于配置前端访问地址,影响 CORS、OAuth2 回调等功能。系统会自动检测 HTTP/HTTPS 协议并调整相应配置,协议头可以是http或https。
展开查看 Docker Compose 部署
使用 Docker Compose 可以一键部署完整的开发环境,采用分容器部署架构,包括独立的前端容器、后端容器和数据库容器:
git clone https://github.com/oneclickvirt/oneclickvirt.git
cd oneclickvirt
docker-compose up -d --build || docker compose up -d --build默认配置说明:
- 前端服务:
http://localhost:8888 - 后端 API:通过前端代理访问
- MySQL 数据库:端口 3306,数据库名
oneclickvirt,无密码 - 数据持久化:
- 数据库数据:
./data/mysql - 应用存储:
./data/app/
- 数据库数据:
初始化配置:
首次访问时会进入初始化界面,数据库配置请填写:
- 数据库地址:
mysql(容器名称,不是 127.0.0.1) - 数据库端口:
3306 - 数据库名称:
oneclickvirt - 数据库用户:
root - 数据库密码:留空(无密码)
自定义端口(可选):
如果需要修改前端访问端口,编辑 docker-compose.yaml 文件中的 ports 配置:
services:
web:
ports:
- "你的端口:80" # 例如 "80:80" 或 "8080:80"停止服务:
docker-compose down查看日志:
docker-compose logs -f清理数据:
docker-compose down
rm -rf ./data展开查看编译步骤
如果需要修改源码或自定义构建:
一体化版本(内置数据库):
git clone https://github.com/oneclickvirt/oneclickvirt.git
cd oneclickvirt
docker build -t oneclickvirt .
docker run -d \
--name oneclickvirt \
-p 80:80 \
-v oneclickvirt-data:/var/lib/mysql \
-v oneclickvirt-storage:/app/storage \
--restart unless-stopped \
oneclickvirt独立数据库版本:
git clone https://github.com/oneclickvirt/oneclickvirt.git
cd oneclickvirt
docker build -f Dockerfile.no-db -t oneclickvirt:no-db .
docker run -d \
--name oneclickvirt \
-p 80:80 \
-e FRONTEND_URL="https://your-domain.com" \
-e DB_HOST="your-mysql-host" \
-e DB_PORT="3306" \
-e DB_NAME="oneclickvirt" \
-e DB_USER="root" \
-e DB_PASSWORD="your-password" \
-v oneclickvirt-storage:/app/storage \
--restart unless-stopped \
oneclickvirt:no-db展开查看开发部署步骤
- Go 1.24.5
- Node.js 22+
- MySQL 5.7+
- npm 或 yarn
- 构建前端
cd web
npm i
npm run serve- 构建后端
cd server
go mod tidy
go run main.go-
开发模式下不需要反代后端,vite已自带后端代理请求。
-
在mysql中创建一个空的数据库
oneclickvirt,记录对应的账户和密码。 -
访问前端地址,自动跳转到初始化界面,填写数据库信息和相关信息,点击初始化。
-
完成初始化后会自动跳转到首页,可以开始开发测试了。
系统初始化后会生成以下默认账户:
- 管理员账户:
admin / Admin123!@#
提示:请在首次登录后立即修改默认密码,修改密码应该在用户管理界面点击对应用户进行修改。
主要配置文件位于 server/config.yaml
感谢以下平台提供测试:






