feat:添加英文使用说明
BIN
docs/en/guide/oneclickvirt/images/autoapi1.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
docs/en/guide/oneclickvirt/images/autoapi2.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
docs/en/guide/oneclickvirt/images/autoapi3.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
docs/en/guide/oneclickvirt/images/autoapi4.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
docs/en/guide/oneclickvirt/images/base.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
docs/en/guide/oneclickvirt/images/bw1.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
docs/en/guide/oneclickvirt/images/bw2.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
docs/en/guide/oneclickvirt/images/connect.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/en/guide/oneclickvirt/images/edituser.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
docs/en/guide/oneclickvirt/images/images.png
Normal file
|
After Width: | Height: | Size: 154 KiB |
BIN
docs/en/guide/oneclickvirt/images/ipt1.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
docs/en/guide/oneclickvirt/images/ipt2.png
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
docs/en/guide/oneclickvirt/images/level.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
docs/en/guide/oneclickvirt/images/location.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
docs/en/guide/oneclickvirt/images/resetuserpassword.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
docs/en/guide/oneclickvirt/images/resetuserpasswordsuccess.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
docs/en/guide/oneclickvirt/images/setct.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
docs/en/guide/oneclickvirt/images/setmore1.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
docs/en/guide/oneclickvirt/images/setmore2.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
docs/en/guide/oneclickvirt/images/setvirt.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
docs/en/guide/oneclickvirt/images/setvm.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
docs/en/guide/oneclickvirt/images/sshtest.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/en/guide/oneclickvirt/images/switch.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
docs/en/guide/oneclickvirt/images/usercontrol.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
docs/en/guide/oneclickvirt/images/userlevel.png
Normal file
|
After Width: | Height: | Size: 91 KiB |
@@ -4,13 +4,13 @@ outline: deep
|
||||
|
||||
# OneClickVirt
|
||||
|
||||
Distinguish between the control panel and the controlled end. The controlled end needs to have the corresponding virtualization environment installed in advance. You can use the installation instructions from other sections of this document for environment installation. The control panel is actually just a panel without virtualization environment requirements.
|
||||
Distinguish between the panel side and the controlled side. The controlled side needs to have the corresponding virtualization environment installed in advance. You can use other sections of this documentation for environment installation. The control side is actually just a panel and has no virtualization environment requirements.
|
||||
|
||||
## Controlled End
|
||||
## Controlled Side
|
||||
|
||||
Refer to the installation instructions from other sections of this document for environment installation. This won't be elaborated further here. This tutorial provides corresponding installation commands for the four mainstream virtualization technologies. Please refer to them on your own.
|
||||
Refer to other sections of this documentation for environment installation. This will not be elaborated here. This tutorial provides corresponding installation commands for the four mainstream virtualization technologies. Please refer to them yourself.
|
||||
|
||||
If you need to use the panel's traffic control feature, you'll need to additionally install the ```vnstat``` tool. Download it yourself. If using apt package management, you can use:
|
||||
If you need to use the panel's traffic control feature, you need to additionally install the ```vnstat``` tool. Download it yourself. If using apt package management, you can use
|
||||
|
||||
```shell
|
||||
apt install -y vnstat
|
||||
@@ -18,47 +18,47 @@ apt install -y vnstat
|
||||
|
||||
to download it. The same applies to other systems.
|
||||
|
||||
The controlled side only needs to install the virtualization environment, there is no need to install additional agent for control, just make sure that SSH can log in.
|
||||
The controlled side only needs to have the virtualization environment installed, and does not require additional agent installation for control. Just ensure that SSH login is available.
|
||||
|
||||
## Control Panel
|
||||
## Panel Side
|
||||
|
||||
Hardware requirements: at least 1GB of free memory and 2GB of free disk space. Installation can be completed through any of the following methods.
|
||||
Hardware requirements include at least 1G of free memory and 2G of free disk space. Installation can be completed using any of the methods below.
|
||||
|
||||
| Installation Method | Use Case | Advantages | Disadvantages |
|
||||
| Installation Method | Application Scenario | Advantages | Disadvantages |
|
||||
|---------|---------|------|------|
|
||||
| Docker Deployment (Pre-built Image) | Quick deployment, larger footprint | One-click installation, data persistence | Requires Docker environment, large image download |
|
||||
| Frontend-Backend Separation Deployment | High performance, minimal footprint | Best performance, flexible configuration | Complex configuration, requires reverse proxy setup |
|
||||
| All-in-One Deployment | Works with or without public IPv4 address | Simple deployment, no reverse proxy needed | Lower performance |
|
||||
| Separate Front-end and Back-end Deployment | High performance, minimal footprint | Best performance, flexible configuration | Complex configuration, requires reverse proxy setup |
|
||||
| Integrated Deployment | Works with or without public IPv4 address | Simple deployment, no reverse proxy needed | Poor performance |
|
||||
| Dockerfile Self-compilation | Suitable for secondary development and source code release | Highly customizable | Requires Docker environment, long compilation time |
|
||||
|
||||
### Installation via Docker
|
||||
|
||||
:::tip
|
||||
Since the database starts together with the container, do not operate immediately after container startup. Wait at least 12 seconds.
|
||||
Since the database starts together with the container, do not operate immediately after the container starts. Wait at least 12 seconds.
|
||||
:::
|
||||
|
||||
Available image tags can be found at:
|
||||
Available image tags can be queried at:
|
||||
|
||||
https://hub.docker.com/r/spiritlhl/oneclickvirt
|
||||
|
||||
https://github.com/oneclickvirt/oneclickvirt/pkgs/container/oneclickvirt
|
||||
|
||||
#### Method 1: Deploy Using Pre-built Images
|
||||
#### Method 1: Deploy Using Pre-built Image
|
||||
|
||||
**Image Tag Description**
|
||||
|
||||
| Image Tag | Description | Use Case |
|
||||
| Image Tag | Description | Application Scenario |
|
||||
|---------|------|---------|
|
||||
| `spiritlhl/oneclickvirt:latest` | All-in-one version (with built-in database) latest | Quick deployment |
|
||||
| `spiritlhl/oneclickvirt:20251022` | All-in-one version specific date | Need fixed version |
|
||||
| `spiritlhl/oneclickvirt:no-db` | Independent database version latest | No built-in database |
|
||||
| `spiritlhl/oneclickvirt:no-db-20251022` | Independent database version specific date | No built-in database |
|
||||
| `spiritlhl/oneclickvirt:latest` | Integrated version (built-in database) latest | Quick deployment |
|
||||
| `spiritlhl/oneclickvirt:20251023` | Integrated version specific date | Requires fixed version |
|
||||
| `spiritlhl/oneclickvirt:no-db` | Separate database version latest | Without built-in database |
|
||||
| `spiritlhl/oneclickvirt:no-db-20251023` | Separate database version specific date | Without built-in database |
|
||||
|
||||
All images support both `linux/amd64` and `linux/arm64` architectures.
|
||||
|
||||
**Deploy in Fresh Environment**
|
||||
##### Deploy in Fresh Environment
|
||||
|
||||
Using pre-built ```amd64``` or ```arm64``` images, the corresponding version will be automatically downloaded based on the current system architecture:
|
||||
Use pre-built ```amd64``` or ```arm64``` images, which will automatically download the corresponding version based on the current system architecture:
|
||||
|
||||
Without domain configuration:
|
||||
|
||||
@@ -68,14 +68,13 @@ docker run -d \
|
||||
-p 80:80 \
|
||||
-v oneclickvirt-data:/var/lib/mysql \
|
||||
-v oneclickvirt-storage:/app/storage \
|
||||
-v oneclickvirt-config:/app/config.yaml \
|
||||
--restart unless-stopped \
|
||||
spiritlhl/oneclickvirt:latest
|
||||
```
|
||||
|
||||
With domain access configuration:
|
||||
Configure domain access:
|
||||
|
||||
If you need to configure a domain, you need to set the `FRONTEND_URL` environment variable:
|
||||
If you need to configure a domain, set the `FRONTEND_URL` environment variable:
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
@@ -84,16 +83,21 @@ docker run -d \
|
||||
-e FRONTEND_URL="https://your-domain.com" \
|
||||
-v oneclickvirt-data:/var/lib/mysql \
|
||||
-v oneclickvirt-storage:/app/storage \
|
||||
-v oneclickvirt-config:/app/config.yaml \
|
||||
--restart unless-stopped \
|
||||
spiritlhl/oneclickvirt:latest
|
||||
```
|
||||
|
||||
The above methods are only for new installations.
|
||||
|
||||
**Upgrade Frontend and Backend Only in Existing Environment**
|
||||
##### Upgrade Only Front-end and Back-end in Existing Environment
|
||||
|
||||
Delete only the container itself without removing mounted volumes:
|
||||
First backup the configuration file to the current path:
|
||||
|
||||
```shell
|
||||
docker cp oneclickvirt:/app/config.yaml .
|
||||
```
|
||||
|
||||
Delete only the container without removing the mounted volumes:
|
||||
|
||||
```shell
|
||||
docker rm -f oneclickvirt
|
||||
@@ -111,11 +115,17 @@ Pull the container image again:
|
||||
docker pull spiritlhl/oneclickvirt:latest
|
||||
```
|
||||
|
||||
Then follow the steps for fresh environment deployment. Note that after waiting 12 seconds and opening the frontend, you'll find it automatically skips the initialization interface because the data has been persisted and imported.
|
||||
Then follow the steps for deployment in a fresh environment. Note that after waiting 12 seconds and opening the front-end, you will find it automatically skips the initialization interface because the data has been persisted and imported.
|
||||
|
||||
**Redeploy in Existing Environment**
|
||||
Then overwrite the original configuration file:
|
||||
|
||||
This will completely delete existing data before deployment. You need to delete not only the container but also the corresponding mount points:
|
||||
```shell
|
||||
docker cp config.yaml oneclickvirt:/app/config.yaml
|
||||
```
|
||||
|
||||
##### Redeploy in Existing Environment
|
||||
|
||||
This will completely delete the original data before redeployment. You need to delete not only the container but also the corresponding mount points:
|
||||
|
||||
```shell
|
||||
docker rm -f oneclickvirt
|
||||
@@ -134,13 +144,13 @@ Pull the container image again:
|
||||
docker pull spiritlhl/oneclickvirt:latest
|
||||
```
|
||||
|
||||
Then follow the steps for fresh environment deployment. This will prompt for re-initialization, and all original data has been deleted.
|
||||
Then follow the steps for deployment in a fresh environment. This will prompt for reinitialization, as all original data has been deleted.
|
||||
|
||||
#### Method 2: Self-compile and Deploy via Dockerfile
|
||||
|
||||
This method is suitable for modifying source code and custom builds:
|
||||
This method is suitable for self-modifying source code and custom builds:
|
||||
|
||||
**All-in-One Version (with built-in database)**
|
||||
##### Integrated Version (Built-in Database)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/oneclickvirt/oneclickvirt.git
|
||||
@@ -151,12 +161,11 @@ docker run -d \
|
||||
-p 80:80 \
|
||||
-v oneclickvirt-data:/var/lib/mysql \
|
||||
-v oneclickvirt-storage:/app/storage \
|
||||
-v oneclickvirt-config:/app/config.yaml \
|
||||
--restart unless-stopped \
|
||||
oneclickvirt
|
||||
```
|
||||
|
||||
**Independent Database Version (no built-in database)**
|
||||
##### Separate Database Version (Without Built-in Database)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/oneclickvirt/oneclickvirt.git
|
||||
@@ -172,7 +181,6 @@ docker run -d \
|
||||
-e DB_USER="root" \
|
||||
-e DB_PASSWORD="your-password" \
|
||||
-v oneclickvirt-storage:/app/storage \
|
||||
-v oneclickvirt-config:/app/config.yaml \
|
||||
--restart unless-stopped \
|
||||
oneclickvirt:no-db
|
||||
```
|
||||
|
||||
@@ -26,6 +26,8 @@ Frontend static files can be deployed through ```nginx``` or ```caddy``` or ```O
|
||||
|
||||
## Platform Features
|
||||
|
||||
- Aligned with internationalization standards, the frontend supports switching between Chinese and English display modes, with Chinese as the default.
|
||||
|
||||
- Provider Integration: Supports four major mainstream virtualization platforms: ProxmoxVE, Incus, Docker, LXD
|
||||
|
||||
- Flexible Instance Types: Supports creating Virtual Machines (VM) and Containers, providing a unified virtualization resource management experience through abstracted design
|
||||
|
||||
@@ -2,17 +2,239 @@
|
||||
outline: deep
|
||||
---
|
||||
|
||||
# Instructions for use
|
||||
# Usage Guide
|
||||
|
||||
The use of this panel will be explained in detail here, if you have any questions, please add the group to ask for help from the administrators or group members: https://t.me/oneclickvirt
|
||||
This document provides detailed instructions on how to use this panel. If you have any questions, please join the group for help from administrators or group members: https://t.me/oneclickvirt
|
||||
|
||||
## User Management
|
||||
|
||||
After logging into the administrator interface, open the user management page and you must click reset password to ensure that the admin account password is a strong password, ensuring it won't be maliciously brute-forced. If you used a custom password during initialization, then resetting the password is optional.
|
||||
|
||||

|
||||
|
||||
Resetting the password will automatically generate a strong password, displayed only once. Make sure to copy and save it to avoid forgetting it.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
If you need to change the user type, you need to click on the corresponding user to edit them. The edit popup supports changing the user type.
|
||||
|
||||

|
||||
|
||||
Administrators can click on the avatar in the upper right corner. The dropdown menu has buttons to switch between administrator and normal user views. If you need to test any features, you can directly use the administrator account for testing. (Normal users do not have this view switching button)
|
||||
|
||||
## Managing Nodes
|
||||
|
||||
First, you need to ensure that the node to be managed has one of the four major virtualization technologies installed.
|
||||
|
||||
Ping the node's IP from the machine where this panel is deployed. The latency should preferably be within 300ms and the packet loss rate should not be too high, otherwise connection issues may occur, resulting in missed command execution in control.
|
||||
|
||||
Here are the steps for setting up nodes:
|
||||
|
||||
### Basic Information (Required)
|
||||
|
||||

|
||||
|
||||
The server name should preferably only contain English letters and numbers, no special characters, and should ideally be within 6 characters. When creating containers or virtual machines later, this server name prefix will be automatically added.
|
||||
|
||||
Select the virtualization technology name you actually installed for the server type. Docker can only create containers by default, while other virtualization technologies can create virtual machines.
|
||||
|
||||
Fill in the node's public IPv4 address or internal SSH connection address for the SSH address. This address will be used for SSH connections and API connections.
|
||||
|
||||
NAT port mapping will prioritize using the port IP for mapping. If no specific port IP is provided, the SSH address IP will be used for mapping.
|
||||
|
||||
Fill in the SSH connection port for the port field.
|
||||
|
||||
The description can note some information about the current node, visible only to administrators.
|
||||
|
||||
The status is enabled by default, allowing normal users to apply and claim instances after the subsequent health check.
|
||||
|
||||
Architecture is the node's own architecture. Currently, managing amd64 and arm64 architecture nodes is supported. Select accordingly.
|
||||
|
||||
### Connection Configuration (Required)
|
||||
|
||||

|
||||
|
||||
It is recommended to use the root user for the username, as corresponding dependencies need to be downloaded when automatically configuring the API later.
|
||||
|
||||
The password is the one used for SSH login. Of course, if you don't use a password and use key login instead, that's also acceptable.
|
||||
|
||||
The SSH timeout configuration is designed to test connectivity and optimize fault tolerance.
|
||||
|
||||

|
||||
|
||||
After filling in the previous information, click test, and corresponding prompt values will appear. Click apply to proceed. Of course, not applying is also fine, with higher fault tolerance.
|
||||
|
||||
This design is to accommodate nodes with extremely poor connectivity to the panel machine. Increasing these parameter values means higher fault tolerance.
|
||||
|
||||
The execution timeout generally does not need to be modified unless your node itself has particularly weak performance and command execution takes a long time.
|
||||
|
||||
### Location Information (Optional)
|
||||
|
||||

|
||||
|
||||
Directly enter a specific country and click to check it. Most countries already have presets with corresponding flag icons.
|
||||
|
||||
After setting the location, normal users will be able to see the corresponding flag and region in the application claim interface, along with the automatically matched continent.
|
||||
|
||||
### Instance Type and Quantity Limits (Required)
|
||||
|
||||

|
||||
|
||||
For docker type nodes, only containers can be created. Other virtualization types support creating both containers and virtual machines (provided the node itself supports it).
|
||||
|
||||
If you don't need to create virtual machines, be sure to uncheck the virtual machine option.
|
||||
|
||||
If the quantity limit maintains the default parameter of 0, it means there is no node-level instance quantity limit for this type.
|
||||
|
||||
For container types, it is recommended to set the quantity according to the following formula:
|
||||
|
||||
Node free storage disk size / Minimum disk size of instances to be distributed = Maximum instance quantity
|
||||
|
||||
For virtual machine types:
|
||||
|
||||
Node free memory size (including virtual memory) / Minimum memory size of instances to be distributed = Instance quantity
|
||||
|
||||
The reason for this calculation is that containers generally do not limit the total CPU quantity and memory size, but limit disk size, while virtual machines generally have memory as the bottleneck for the number of instances created.
|
||||
|
||||
### Resource Overcommit Configuration (Optional)
|
||||
|
||||

|
||||
|
||||
By default, container types do not limit the total amount of CPU and memory pre-allocation, but limit the total amount of pre-allocated disk, to achieve optimal resource sharing and maximum instance quantity.
|
||||
|
||||

|
||||
|
||||
By default, virtual machine types limit all resources, with the maximum total pre-allocated resources not exceeding the actual resource size.
|
||||
|
||||
For ProxmoxVE, there is also a storage pool name setting where the created disk will be located. If PVE has multiple disks, you need to set which storage pool to create on.
|
||||
|
||||
Other types of virtualization environments have already asked about the specific storage pool creation location during installation, so no setting is needed.
|
||||
|
||||
In general, if you need to limit which resource from being overcommitted, click to limit it. After limiting, the corresponding resource cannot be overcommitted. If not limited, the corresponding resource can be overcommitted.
|
||||
|
||||
The limitation here is the total resource usage of this type of instance on this node, used to calculate available resources and limit instance creation.
|
||||
|
||||
It is not recommended to modify unless you know what this setting does.
|
||||
|
||||
### IP Mapping Configuration (Optional)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Generally no modification is needed. Here you can set the port mapping quantity, range, network configuration method, and port mapping method for each instance.
|
||||
|
||||
By default, instances are created with NAT-mapped public IPv4 ports.
|
||||
|
||||
If the node itself has an IPv6 subnet greater than or equal to /80 in size, then by changing the network configuration, instances with independent public IPv6 addresses can be created.
|
||||
|
||||
To an extreme, instances with only independent IPv6 addresses can also be created. Choose for yourself.
|
||||
|
||||
It is not recommended to modify the mapping method unless you know what this setting does.
|
||||
|
||||
### Bandwidth and Traffic Configuration (Required)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Literal meaning. Set the maximum bandwidth and available traffic total calculated by natural month for instances created on the node. Traffic monitoring and traffic statistics are automatically enabled by default.
|
||||
|
||||
When instance traffic exceeds the node limit or user limit, the instance will be automatically stopped; when the node's total traffic is exceeded, all instances on the entire node will be stopped.
|
||||
|
||||
At the beginning of the month, statistics data will be reset, and all instances that were automatically stopped due to reaching traffic limits will be restarted.
|
||||
|
||||
### Level Restrictions (Required)
|
||||
|
||||

|
||||
|
||||
This preset has 5 levels, which will go through this restriction filtering configuration when users apply and claim.
|
||||
|
||||
During the actual instance creation process, the node-level level restrictions will be compared with the global user level resource restrictions, taking the minimum value as the resource limit available to the user on the current node.
|
||||
|
||||
This setting is to specialize the configuration limits of instances that can be created by users of corresponding levels on the current node, avoiding situations where global restrictions are not applicable to the current node. Global restrictions can be set in system configuration and are generally used for resource restrictions at the user's entire account level.
|
||||
|
||||
### Advanced Settings (Optional)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Expiration time:
|
||||
|
||||
Prevents users from continuing to operate expired nodes. Expired nodes will be automatically frozen. At this time, corresponding instances will not allow any operations, but will not be automatically deleted. If a node is frozen, please clean up and delete the node in time.
|
||||
|
||||
Task concurrency control:
|
||||
|
||||
By default, single-threaded serial execution is used. At the same time, only one add/delete/modify task will exist (corresponding to instance creation, deletion, and reset operations).
|
||||
|
||||
It can be changed to multi-threaded concurrent execution. At the same time, multiple add/delete/modify tasks can exist. Only when concurrent execution is used does the concurrency quantity setting make sense.
|
||||
|
||||
Serial execution is suitable for situations where the node itself has weak performance or the platform has few users. Concurrent operation is suitable for situations where the node itself has strong performance or there are many users. Please choose the mode yourself.
|
||||
|
||||
Personally, I recommend using the default settings. Concurrent execution may have boundary conditions that have not been fully tested and may have bugs.
|
||||
|
||||
Task polling settings:
|
||||
|
||||
Controls whether to enable task execution and the interval for polling to check status. Generally keep the default.
|
||||
|
||||
Operation execution rules:
|
||||
|
||||
Node operation mode supports API only, SSH only, and automatic switching. The automatic switching mode is used by default. Generally, there is no need to modify unless there are special needs.
|
||||
|
||||
If you need to enable API operation mode, after successfully saving the node settings, click the auto-configure API button outside. This will execute a background task to automatically interface with the virtualization platform's API without manual configuration. After waiting for about 15-20 seconds, it should have been configured successfully. Click the button to see the configuration history tasks and corresponding logs. After successful configuration, click health check again to ensure the API status is green and online, then the API has been successfully configured and enabled.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### Health Check (Required)
|
||||
|
||||

|
||||
|
||||
After saving the node, after clicking health check and completing it, normal users can see the corresponding server and can apply for creation. If no health check is performed, users cannot apply for creation and claiming.
|
||||
|
||||
After the health check, it will display whether the connection status of the corresponding type is online, and will automatically detect the actual total resources of the entire machine. This total resource amount is the limit for total resource amount that will not be overcommitted as set earlier.
|
||||
|
||||
## System Images
|
||||
|
||||

|
||||
|
||||
By default, seed data will record all available images for all virtualization environments. Only alpine and debian images are enabled by default to avoid too many available images for users.
|
||||
|
||||
If you need images for any system, any virtualization environment, and any architecture, please search and enable them yourself, otherwise users cannot select the corresponding images.
|
||||
|
||||
Custom image addresses are not currently supported. The front-end entry function is currently unavailable. Do not manually enter images.
|
||||
|
||||
## System Configuration
|
||||
|
||||
Most options here do not need much elaboration. There are two configurations that need special explanation.
|
||||
|
||||
### User Level Configuration (Required)
|
||||
|
||||

|
||||
|
||||
This limits the total available resource amount for the normal user level's corresponding total account.
|
||||
|
||||
When creating instances on corresponding nodes, this global configuration will be filtered together with the node's own level configuration to provide users with configurations that meet both conditions.
|
||||
|
||||
### Instance Permission Configuration (Required)
|
||||
|
||||

|
||||
|
||||
Here you can control the minimum level required for users' sensitive operations. You can control the minimum user level required for instance creation, instance deletion, and instance system reset.
|
||||
|
||||
## Configuration File
|
||||
|
||||
The default settings are sufficient for light usage. If advanced customization is needed, you need to modify the configuration file or make modifications in the admin interface after initialization.
|
||||
The default system configuration is sufficient for light use. If advanced customization is needed, you need to modify the configuration file or modify it in the administrator interface after initialization.
|
||||
|
||||
https://github.com/oneclickvirt/oneclickvirt/blob/main/server/config.yaml
|
||||
|
||||
Here is the complete initialization configuration file. The specific configuration items will be explained below:
|
||||
Here is the complete initialized configuration file. The following will explain the specific configuration items:
|
||||
|
||||
### auth Authentication Configuration
|
||||
|
||||
@@ -33,20 +255,20 @@ auth:
|
||||
frontend-url: ""
|
||||
```
|
||||
|
||||
Configuration items for the authentication module, used to control user login and registration methods and third-party login integration.
|
||||
Authentication module configuration items, used to control user login registration methods and third-party login integration.
|
||||
|
||||
- `email-password`: Authentication password for email service, used for identity verification when sending emails via SMTP
|
||||
- `email-password`: Email service authentication password, used for identity verification when sending emails via SMTP
|
||||
- `email-smtp-host`: SMTP server address, such as `smtp.gmail.com`
|
||||
- `email-smtp-port`: SMTP server port, common ports are `25`, `465` (SSL), `587` (TLS)
|
||||
- `email-smtp-port`: SMTP server port, commonly used ports are `25`, `465` (SSL), `587` (TLS)
|
||||
- `email-username`: SMTP server login username, usually the complete email address
|
||||
- `enable-email`: Whether to enable email login functionality
|
||||
- `enable-oauth2`: Whether to enable OAuth2 third-party login functionality
|
||||
- `enable-public-registration`: Whether to allow public registration; when disabled, only administrators can create accounts
|
||||
- `enable-public-registration`: Whether to allow public registration. When closed, only administrators can create accounts
|
||||
- `enable-qq`: Whether to enable QQ login
|
||||
- `enable-telegram`: Whether to enable Telegram login
|
||||
- `qq-app-id`: App ID applied for from QQ Connect platform
|
||||
- `qq-app-key`: App Key applied for from QQ Connect platform
|
||||
- `telegram-bot-token`: API Token for Telegram Bot
|
||||
- `qq-app-id`: App ID applied for on QQ Connect platform
|
||||
- `qq-app-key`: App Key applied for on QQ Connect platform
|
||||
- `telegram-bot-token`: Telegram Bot's API Token
|
||||
- `frontend-url`: Frontend access address, must include protocol header (`http://` or `https://`), trailing slash is optional. OAuth2 callback address depends on this configuration
|
||||
|
||||
### captcha Verification Code Configuration
|
||||
@@ -60,7 +282,7 @@ captcha:
|
||||
width: 120
|
||||
```
|
||||
|
||||
Configuration for generating and verifying graphical verification codes, used for security verification on frontend login and registration pages.
|
||||
Graphic verification code generation and verification configuration, used for security verification on frontend login registration pages.
|
||||
|
||||
- `enabled`: Whether to enable verification code functionality
|
||||
- `expire-time`: Verification code expiration time, in seconds
|
||||
@@ -82,10 +304,10 @@ cdn:
|
||||
|
||||
CDN acceleration node configuration used when downloading system images.
|
||||
|
||||
- `base-endpoint`: Primary CDN node address, used with priority
|
||||
- `base-endpoint`: Main CDN node address, used with priority
|
||||
- `endpoints`: Backup CDN node list, retried in order. The system will automatically select available nodes for image downloads
|
||||
|
||||
Generally, this configuration does not need to be modified. Preloaded system images are all hosted in the organization's repository, and the default CDN nodes already provide good download acceleration.
|
||||
Generally, there is no need to modify this configuration. Preloaded system images are all hosted in this organization's repository, and the default CDN nodes can already provide good download acceleration.
|
||||
|
||||
### mysql Database Configuration
|
||||
|
||||
@@ -108,13 +330,13 @@ mysql:
|
||||
username: root
|
||||
```
|
||||
|
||||
MySQL database connection and behavior configuration. Initialization judgment logic: when both `path` and `port` are empty, the system considers initialization is needed, and the target database must be an empty database at this time.
|
||||
MySQL database connection and behavior configuration. Initialization judgment logic: When both `path` and `port` are empty, the system considers initialization is needed. At this time, the target database must be an empty database.
|
||||
|
||||
- `auto-create`: Whether to automatically create the database (if it doesn't exist)
|
||||
- `config`: Database connection parameters, including character set, time parsing, etc.
|
||||
- `db-name`: Database name
|
||||
- `engine`: Database storage engine, InnoDB is recommended
|
||||
- `log-mode`: Database log mode, options are `silent`, `error`, `warn`, `info`
|
||||
- `log-mode`: Database log mode, optional values are `silent`, `error`, `warn`, `info`
|
||||
- `log-zap`: Whether to use zap log library to record database logs
|
||||
- `max-idle-conns`: Maximum number of idle connections
|
||||
- `max-lifetime`: Maximum connection lifetime, in seconds
|
||||
@@ -178,7 +400,7 @@ quota:
|
||||
max-traffic: 512000
|
||||
```
|
||||
|
||||
Configuration for controlling user levels and resource quotas. The default unit for memory, disk, and traffic is MB.
|
||||
User level and resource quota control configuration. The default unit for memory, disk, and traffic is MB.
|
||||
|
||||
#### Global Configuration
|
||||
|
||||
@@ -189,19 +411,19 @@ Configuration for controlling user levels and resource quotas. The default unit
|
||||
Controls the types of operations that users of different levels can perform.
|
||||
|
||||
- `min-level-for-container`: Minimum user level required to create container instances
|
||||
- `min-level-for-delete`: Minimum level required to perform delete operations on the regular user side
|
||||
- `min-level-for-delete`: Minimum level required to perform deletion operations on the normal user side
|
||||
- `min-level-for-vm`: Minimum user level required to create virtual machine instances
|
||||
|
||||
#### level-limits Level Quota Limits
|
||||
|
||||
Defines the resource quota limits corresponding to each user level, with the key being the level number.
|
||||
Defines the resource quota upper limits corresponding to each user level, with keys being level numbers.
|
||||
|
||||
Each level includes the following configurations:
|
||||
Each level includes the following configuration:
|
||||
|
||||
- `max-instances`: Maximum number of instances that users of this level can create
|
||||
- `max-instances`: Maximum number of instances that can be created by users of this level
|
||||
- `max-resources`: Maximum resource limits for a single instance
|
||||
- `bandwidth`: Maximum bandwidth, in Mbps
|
||||
- `cpu`: Maximum number of CPU cores
|
||||
- `cpu`: Maximum CPU cores
|
||||
- `disk`: Maximum disk space, in MB
|
||||
- `memory`: Maximum memory, in MB
|
||||
- `max-traffic`: Maximum total traffic for users of this level, in MB
|
||||
@@ -234,14 +456,14 @@ Detailed configuration for system log recording, based on the zap log library.
|
||||
- `encode-level`: Log level encoding method, options are `LowercaseLevelEncoder` (lowercase), `CapitalLevelEncoder` (uppercase)
|
||||
- `format`: Log output format, options are `console` (console format), `json` (JSON format)
|
||||
- `level`: Log level, options are `debug`, `info`, `warn`, `error`. It is recommended to use `debug` during development and debugging, and `info` or `warn` in production environments
|
||||
- `log-in-console`: Whether to also output logs to the console
|
||||
- `log-in-console`: Whether to output logs to the console simultaneously
|
||||
- `max-array-elements`: Maximum number of elements recorded for array type fields
|
||||
- `max-backups`: Maximum number of historical log files to retain
|
||||
- `max-file-size`: Maximum size of a single log file, in MB
|
||||
- `max-log-length`: Maximum length of a single log entry; parts exceeding this will be truncated
|
||||
- `max-log-length`: Maximum length of a single log entry, excess parts will be truncated
|
||||
- `max-string-length`: Maximum recording length for string fields
|
||||
- `prefix`: Log prefix identifier
|
||||
- `retention-day`: Number of days to retain log files; expired files are automatically deleted
|
||||
- `retention-day`: Number of days to retain log files, automatically deleted when expired
|
||||
- `show-line`: Whether to display the filename and line number of the log call
|
||||
- `stacktrace-key`: Key name for stack trace information
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ https://github.com/oneclickvirt/oneclickvirt/pkgs/container/oneclickvirt
|
||||
|
||||
所有镜像均支持 `linux/amd64` 和 `linux/arm64` 架构。
|
||||
|
||||
**全新环境下部署**
|
||||
##### 全新环境下部署
|
||||
|
||||
使用已构建好的```amd64```或```arm64```镜像,会自动根据当前系统架构下载对应版本:
|
||||
|
||||
@@ -70,7 +70,6 @@ docker run -d \
|
||||
-p 80:80 \
|
||||
-v oneclickvirt-data:/var/lib/mysql \
|
||||
-v oneclickvirt-storage:/app/storage \
|
||||
-v oneclickvirt-config:/app/config.yaml \
|
||||
--restart unless-stopped \
|
||||
spiritlhl/oneclickvirt:latest
|
||||
```
|
||||
@@ -86,14 +85,19 @@ docker run -d \
|
||||
-e FRONTEND_URL="https://your-domain.com" \
|
||||
-v oneclickvirt-data:/var/lib/mysql \
|
||||
-v oneclickvirt-storage:/app/storage \
|
||||
-v oneclickvirt-config:/app/config.yaml \
|
||||
--restart unless-stopped \
|
||||
spiritlhl/oneclickvirt:latest
|
||||
```
|
||||
|
||||
以上的方式仅限于新安装
|
||||
|
||||
**旧有环境下仅升级前后端**
|
||||
##### 旧有环境下仅升级前后端
|
||||
|
||||
先备份配置文件到当前路径下:
|
||||
|
||||
```shell
|
||||
docker cp oneclickvirt:/app/config.yaml .
|
||||
```
|
||||
|
||||
不需要删除挂载盘仅删除容器本身:
|
||||
|
||||
@@ -115,7 +119,13 @@ docker pull spiritlhl/oneclickvirt:latest
|
||||
|
||||
然后再按全新环境下开设的步骤来,注意等待12秒后打开前端,会发现已自动越过初始化界面,因为数据已持久化导入。
|
||||
|
||||
**旧有环境下重新部署**
|
||||
然后覆写原有的配置文件:
|
||||
|
||||
```shell
|
||||
docker cp config.yaml oneclickvirt:/app/config.yaml
|
||||
```
|
||||
|
||||
##### 旧有环境下重新部署
|
||||
|
||||
这将完全删除原有数据再部署,不仅需要删除容器还得删除对应的挂载点:
|
||||
|
||||
@@ -142,7 +152,7 @@ docker pull spiritlhl/oneclickvirt:latest
|
||||
|
||||
这种方式适合自行修改源码与自定义构建:
|
||||
|
||||
**一体化版本(内置数据库)**
|
||||
##### 一体化版本(内置数据库)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/oneclickvirt/oneclickvirt.git
|
||||
@@ -153,12 +163,11 @@ docker run -d \
|
||||
-p 80:80 \
|
||||
-v oneclickvirt-data:/var/lib/mysql \
|
||||
-v oneclickvirt-storage:/app/storage \
|
||||
-v oneclickvirt-config:/app/config.yaml \
|
||||
--restart unless-stopped \
|
||||
oneclickvirt
|
||||
```
|
||||
|
||||
**独立数据库版本(不内置数据库)**
|
||||
##### 独立数据库版本(不内置数据库)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/oneclickvirt/oneclickvirt.git
|
||||
@@ -174,7 +183,6 @@ docker run -d \
|
||||
-e DB_USER="root" \
|
||||
-e DB_PASSWORD="your-password" \
|
||||
-v oneclickvirt-storage:/app/storage \
|
||||
-v oneclickvirt-config:/app/config.yaml \
|
||||
--restart unless-stopped \
|
||||
oneclickvirt:no-db
|
||||
```
|
||||
|
||||
@@ -26,6 +26,8 @@ outline: deep
|
||||
|
||||
## 平台特点
|
||||
|
||||
- 对接国际化,前端支持中英双语切换显示,默认使用中文显示
|
||||
|
||||
- 对接Provider: 支持 ProxmoxVE、Incus、Docker、LXD 四大主流虚拟化平台
|
||||
|
||||
- 灵活实例类型: 支持创建虚拟机(VM)和容器(Container),通过抽象化设计提供统一的虚拟化资源管理体验
|
||||
|
||||