Skip to content

Universal Virtualization Management Platform 可扩展的通用虚拟化管理平台,支持 LXD / Incus / Docker / Proxmox VE

License

Notifications You must be signed in to change notification settings

oneclickvirt/oneclickvirt

Repository files navigation

OneClickVirt 虚拟化管理平台

一个可扩展的通用虚拟化管理平台,支持 LXD、Incus、Docker 和 Proxmox VE。

详细说明

www.spiritlhl.net

快速部署

方式一:使用预构建镜像(推荐)

使用已构建好的多架构镜像,会自动根据当前系统架构下载对应版本。

镜像标签说明:

镜像标签 说明 适用场景
spiritlhl/oneclickvirt:latest 一体化版本(内置数据库)最新版 快速部署
spiritlhl/oneclickvirt:20251016 一体化版本特定日期版本 需要固定版本
spiritlhl/oneclickvirt:no-db 独立数据库版本最新版 不内置数据库
spiritlhl/oneclickvirt:no-db-20251016 独立数据库版本特定日期 不内置数据库

所有镜像均支持 linux/amd64linux/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。

方式二:自己编译打包

展开查看编译步骤

如果需要修改源码或自定义构建:

一体化版本(内置数据库):

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

环境部署

  1. 构建前端
cd web
npm i
npm run serve
  1. 构建后端
cd server
go mod tidy
go run main.go
  1. 开发模式下不需要反代后端,vite已自带后端代理请求。

  2. 在mysql中创建一个空的数据库oneclickvirt,记录对应的账户和密码。

  3. 访问前端地址,自动跳转到初始化界面,填写数据库信息和相关信息,点击初始化。

  4. 完成初始化后会自动跳转到首页,可以开始开发测试了。

本地开发

默认账户

系统初始化后会生成以下默认账户:

  • 管理员账户:admin / Admin123!@#

提示:请在首次登录后立即修改默认密码,修改密码应该在用户管理界面点击对应用户进行修改。

配置文件

主要配置文件位于 server/config.yaml

演示截图