feat: 更新图片引用
@@ -1,9 +1,10 @@
|
||||
import { createWriteStream } from 'node:fs'
|
||||
import { resolve } from 'node:path'
|
||||
import { SitemapStream } from 'sitemap'
|
||||
import { defineConfig } from 'vitepress'
|
||||
import { createWriteStream } from 'node:fs';
|
||||
import { resolve } from 'node:path';
|
||||
import { SitemapStream } from 'sitemap';
|
||||
import { defineConfig } from 'vitepress';
|
||||
|
||||
const links: { url: string; lastmod: number }[] = [];
|
||||
|
||||
const links = []
|
||||
export default defineConfig({
|
||||
lastUpdated: true,
|
||||
lang: 'zh-CN',
|
||||
@@ -11,94 +12,93 @@ export default defineConfig({
|
||||
if (!/[\\/]404\.html$/.test(id)) {
|
||||
links.push({
|
||||
url: pageData.relativePath.replace(/\/index\.md$/, '/').replace(/\.md$/, '.html'),
|
||||
lastmod: pageData.lastUpdated,
|
||||
})
|
||||
lastmod: pageData.lastUpdated ?? Date.now(),
|
||||
});
|
||||
}
|
||||
},
|
||||
buildEnd: async ({ outDir }) => {
|
||||
const sitemap = new SitemapStream({
|
||||
hostname: 'https://www.spiritlhl.net/'
|
||||
})
|
||||
const writeStream = createWriteStream(resolve(outDir, 'sitemap.xml'))
|
||||
sitemap.pipe(writeStream)
|
||||
links.forEach((link) => sitemap.write(link))
|
||||
sitemap.end()
|
||||
await new Promise((r) => writeStream.on('finish', r))
|
||||
});
|
||||
const writeStream = createWriteStream(resolve(outDir, 'sitemap.xml'));
|
||||
sitemap.pipe(writeStream);
|
||||
links.forEach((link) => sitemap.write(link));
|
||||
sitemap.end();
|
||||
await new Promise((r) => writeStream.on('finish', r));
|
||||
},
|
||||
head: [
|
||||
['link', { rel: 'icon', href: 'https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png' }],
|
||||
['link', { rel: 'icon', href: 'https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png' }],
|
||||
['meta', { name: 'google-site-verification', content: 'wdrGBim_2XmtMrqxivze70saMiPQAiOhpmN3KAWb0Sw' }],
|
||||
// <meta name="google-site-verification" content="wdrGBim_2XmtMrqxivze70saMiPQAiOhpmN3KAWb0Sw" />
|
||||
['meta', { name: 'msvalidate.01', content: 'FC9B6B8BEB3D3B56844ADA69766DBB24' }],
|
||||
// <meta name="msvalidate.01" content="FC9B6B8BEB3D3B56844ADA69766DBB24" />
|
||||
['script', {
|
||||
async: true,
|
||||
src: "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5991535488582679",
|
||||
crossorigin: "anonymous"
|
||||
}],
|
||||
],
|
||||
locales: {
|
||||
root: {
|
||||
lang: 'zh-CN',
|
||||
label: '简体中文',
|
||||
title: '一键虚拟化项目',
|
||||
description: '开源、易于使用的服务器虚拟化项目',
|
||||
link: '/',
|
||||
themeConfig: {
|
||||
logo: { src: 'https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png', width: 24, height: 24 },
|
||||
lastUpdatedText: '上次更新',
|
||||
editLink: {
|
||||
pattern: 'https://github.com/oneclickvirt/oneclickvirt.github.io/edit/main/docs/:path',
|
||||
text: '在GitHub中编辑',
|
||||
lang: 'zh-CN',
|
||||
label: '简体中文',
|
||||
title: '一键虚拟化项目',
|
||||
description: '开源、易于使用的服务器虚拟化项目',
|
||||
link: '/',
|
||||
themeConfig: {
|
||||
logo: { src: 'https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png' },
|
||||
lastUpdatedText: '上次更新',
|
||||
editLink: {
|
||||
pattern: 'https://github.com/oneclickvirt/oneclickvirt.github.io/edit/main/docs/:path',
|
||||
text: '在GitHub中编辑',
|
||||
},
|
||||
nav: [
|
||||
{
|
||||
text: '一键虚拟化',
|
||||
link: '/',
|
||||
activeMatch: '^/$|^/guide/'
|
||||
},
|
||||
nav: [
|
||||
{ text: '一键虚拟化',
|
||||
link: '/',
|
||||
activeMatch: '^/$|^/guide/'
|
||||
},
|
||||
{ text: 'Linux相关项目',
|
||||
link: '/case/index',
|
||||
activeMatch: '^/case/'
|
||||
},
|
||||
// {
|
||||
// text: '开发手册',
|
||||
// link: '/developer/index',
|
||||
// activeMatch: '^/developer/'
|
||||
// },
|
||||
{ text: 'VPS余量监控', link: 'https://spiders.spiritlhl.net/' },
|
||||
{ text: 'VPS测试存档', link: 'https://beta.spiritlhl.net/' }
|
||||
],
|
||||
sidebar: {
|
||||
'/': getGuideSidebarZhCN(),
|
||||
'/guide/': getGuideSidebarZhCN(),
|
||||
'/case/': getCaseSidebarZhCN(),
|
||||
'/developer/': getDeveloperSidebarZhCN(),
|
||||
}
|
||||
{
|
||||
text: 'Linux相关项目',
|
||||
link: '/case/index',
|
||||
activeMatch: '^/case/'
|
||||
},
|
||||
// {
|
||||
// text: '开发手册',
|
||||
// link: '/developer/index',
|
||||
// activeMatch: '^/developer/'
|
||||
// },
|
||||
{ text: 'VPS余量监控', link: 'https://spiders.spiritlhl.net/' },
|
||||
{ text: 'VPS测试存档', link: 'https://beta.spiritlhl.net/' }
|
||||
],
|
||||
sidebar: {
|
||||
'/': getGuideSidebarZhCN(),
|
||||
'/guide/': getGuideSidebarZhCN(),
|
||||
'/case/': getCaseSidebarZhCN(),
|
||||
'/developer/': getDeveloperSidebarZhCN(),
|
||||
}
|
||||
},
|
||||
en: {
|
||||
lang: 'en-US',
|
||||
label: 'English',
|
||||
title: 'One Click Virtualization',
|
||||
description: 'Open source, easy to use server virtualization project',
|
||||
link: '/en/',
|
||||
themeConfig: {
|
||||
logo: { src: 'https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png', width: 24, height: 24 },
|
||||
lastUpdatedText: 'Last Updated',
|
||||
editLink: {
|
||||
text: 'Edit this page on GitHub',
|
||||
pattern: 'https://github.com/oneclickvirt/oneclickvirt.github.io/edit/main/docs/:path',
|
||||
},
|
||||
nav: [
|
||||
{ text: 'One Click Virtualization', link: '/en/', activeMatch: '^/en/guide/' },
|
||||
// { text: 'Development Manual', link: '/en/developer/index', activeMatch: '^/en/developer/' },
|
||||
{ text: 'VPS Stock Monitor', link: 'https://spiders.spiritlhl.net/' },
|
||||
{ text: 'VPS Test Archive', link: 'https://beta.spiritlhl.net/' }
|
||||
],
|
||||
sidebar: {
|
||||
'/en/': getGuideSidebarEnUS(),
|
||||
'/en/guide/': getGuideSidebarEnUS(),
|
||||
'/en/developer/': getDeveloperSidebarEnUS()
|
||||
}
|
||||
},
|
||||
en: {
|
||||
lang: 'en-US',
|
||||
label: 'English',
|
||||
title: 'One Click Virtualization',
|
||||
description: 'Open source, easy to use server virtualization project',
|
||||
link: '/en/',
|
||||
themeConfig: {
|
||||
logo: { src: 'https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png' },
|
||||
lastUpdatedText: 'Last Updated',
|
||||
editLink: {
|
||||
text: 'Edit this page on GitHub',
|
||||
pattern: 'https://github.com/oneclickvirt/oneclickvirt.github.io/edit/main/docs/:path',
|
||||
},
|
||||
nav: [
|
||||
{ text: 'One Click Virtualization', link: '/en/', activeMatch: '^/en/guide/' },
|
||||
// { text: 'Development Manual', link: '/en/developer/index', activeMatch: '^/en/developer/' },
|
||||
{ text: 'VPS Stock Monitor', link: 'https://spiders.spiritlhl.net/' },
|
||||
{ text: 'VPS Test Archive', link: 'https://beta.spiritlhl.net/' }
|
||||
],
|
||||
sidebar: {
|
||||
'/en/': getGuideSidebarEnUS(),
|
||||
'/en/guide/': getGuideSidebarEnUS(),
|
||||
'/en/developer/': getDeveloperSidebarEnUS()
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -117,7 +117,7 @@ export default defineConfig({
|
||||
copyright: 'Copyright © 2022-present oneclickvirt'
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
function getGuideSidebarZhCN() {
|
||||
return [
|
||||
@@ -191,7 +191,7 @@ function getGuideSidebarZhCN() {
|
||||
{ text: '捐赠', link: '/guide/dashboardq.html' },
|
||||
]
|
||||
}
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
function getCaseSidebarZhCN() {
|
||||
@@ -210,7 +210,7 @@ function getCaseSidebarZhCN() {
|
||||
{ text: '9. convoy面板安装脚本', link: '/case/case9.html' }
|
||||
]
|
||||
}
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
function getDeveloperSidebarZhCN() {
|
||||
@@ -221,7 +221,7 @@ function getDeveloperSidebarZhCN() {
|
||||
{ text: 'l10n', link: '/developer/l10n.html' }
|
||||
]
|
||||
}
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
function getGuideSidebarEnUS() {
|
||||
@@ -239,6 +239,7 @@ function getGuideSidebarEnUS() {
|
||||
{ text: 'PVE main installation', link: '/en/guide/pve/pve_install.html' },
|
||||
{ text: 'KVM Virtualization', link: '/en/guide/pve/pve_kvm.html' },
|
||||
{ text: 'LXC Virtualization', link: '/en/guide/pve/pve_lxc.html' },
|
||||
{ text: 'Windows Virtual Machine', link: '/en/guide/pve/pve_windows.html' },
|
||||
{ text: 'Custom', link: '/en/guide/pve/pve_custom.html' },
|
||||
{ text: 'Acknowledgements', link: '/en/guide/pve/pve_thanks.html' },
|
||||
{ text: 'FAQ', link: '/en/guide/pve/pve_qa.html' }
|
||||
@@ -295,7 +296,7 @@ function getGuideSidebarEnUS() {
|
||||
{ text: 'Donation', link: '/guide/dashboardq.html' }
|
||||
]
|
||||
}
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
function getDeveloperSidebarEnUS() {
|
||||
@@ -306,5 +307,5 @@ function getDeveloperSidebarEnUS() {
|
||||
{ text: 'l10n', link: '/en/developer/l10n.html' }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
}
|
||||
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 672 KiB |
BIN
docs/en/guide/pve/images/net1.png
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
docs/en/guide/pve/images/net2.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
docs/en/guide/pve/images/net3.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
docs/en/guide/pve/images/net4.png
Normal file
|
After Width: | Height: | Size: 174 KiB |
BIN
docs/en/guide/pve/images/pve_kvm_1.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
docs/en/guide/pve/images/pve_kvm_2.png
Normal file
|
After Width: | Height: | Size: 117 KiB |
BIN
docs/en/guide/pve/images/pve_kvm_3.png
Normal file
|
After Width: | Height: | Size: 161 KiB |
1
docs/en/guide/pve/images/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
暂存图片
|
||||
@@ -20,15 +20,15 @@ bash <(curl -sSL https://raw.githubusercontent.com/fscarmen/tools/main/root.sh)
|
||||
|
||||
**Commands to set up the testing environment for executing this project are as follows:**
|
||||
|
||||

|
||||

|
||||
|
||||
To perform the above-mentioned query, you only need to use the one-click script below to automatically create a virtual machine. There is no need to manually modify settings on the web interface.
|
||||
|
||||

|
||||

|
||||
|
||||
After creating the virtual machines using the subsequent script as mentioned above, it **may** be necessary to manually modify the settings on the web interface. You will need to disable hardware nested virtualization for each respective virtual machine, as shown in the following diagram.
|
||||
|
||||

|
||||

|
||||
|
||||
Stop the virtual machine before making modifications. After the modifications are done, you can start the machine to use NOVNC. Failure to close it **may** result in bugs that render this virtual machine unusable.
|
||||
|
||||
|
||||
95
docs/en/guide/pve/pve_windows.md
Normal file
@@ -0,0 +1,95 @@
|
||||
---
|
||||
outline: deep
|
||||
---
|
||||
|
||||
## Using ISO Image with VirtIO for VM Setup
|
||||
|
||||
### 1. Download the Image
|
||||
Before installation, you need to download the image file via `local(pve) --> ISO images --> Download from URL`
|
||||
|
||||
For the download link (`URL:`), you can use files from:
|
||||
https://github.com/ILLKX/Windows-VirtIO
|
||||
|
||||
Enter `win.iso` as the `File Name:`
|
||||

|
||||
|
||||
Click `Download`. After downloading is complete, you can see the file size of `win.iso` on the current page, confirming it's in ISO format.
|
||||

|
||||
|
||||
### 2. Setting Up the Template
|
||||
Click `Create VM` in the top right corner of the page.
|
||||
|
||||
In the `General` window, select `mypool` for `Resource Pool:`, enter `win` for `Name`, then click `Next`.
|
||||

|
||||
|
||||
In the `OS` window, select `win.iso` for `ISO image`. For `Guest OS`, select `Microsoft Windows` as the `Type` and choose the appropriate `Version` for your ISO. For example, if you downloaded Windows 2022, select `11/2022`, then click `Next`.
|
||||

|
||||
|
||||
In the `System` window, select `VirtIO-GPU` for `Graphic card`, `q35` for `Machine`, `VirtIO SCSI` for `SCSI Controller`, and `Default (SeaBIOS)` for `BIOS`, then click `Next`.
|
||||

|
||||
|
||||
In the `Disk` window, select `Write Back` for `Cache`, enter your desired disk size in `Disk size (GiB)` (generally not less than `20`), and choose the storage location in `Storage`. In this example, only the system disk `local` is available, so `local` is selected. Then click `Next`.
|
||||

|
||||
|
||||
In the `CPU` window, enter the number of cores needed in `Cores`, then click `Next`.
|
||||

|
||||
|
||||
In the `Memory` window, enter the desired memory size in `Memory (MiB)`, then click `Next`.
|
||||

|
||||
|
||||
In the `Network` window, select `vmbr1` for `Bridge`, `VirtIO (paravirtualized)` for `Model`, uncheck `Firewall`, then click `Next`.
|
||||

|
||||
|
||||
In the `Confirm` window, click `Finish`.
|
||||

|
||||
|
||||
### 3. Graphical Installation Configuration
|
||||
Click on the template you've set up on the left, click `Start` in the upper right corner to start the virtual machine, then click `Console` to enter the `VNC` interface and wait for the operating system to boot.
|
||||

|
||||
|
||||
In the VNC, click `Next`, then `Install now`, then `I don't have a product key`, check `Accept license`, click `Next`, and then select `Custom installation`.
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
If the image comes with VirtIO drivers, you should be able to see the available system storage disk and its size. Select it and click `Next`.
|
||||

|
||||

|
||||
|
||||
Wait for the system to install. It may restart automatically several times and could take more than 10 minutes.
|
||||

|
||||
|
||||
After installation is complete, you'll be asked to set a password during first login.
|
||||

|
||||
|
||||
Once setup is complete, there's a pop-up box on the left side of the NOVNC page. Click the first button, then follow the login prompt by pressing `Ctrl`+`Alt`+last button to enter the login page.
|
||||
|
||||
### 4. Network Initialization
|
||||
Since the PVE is set up with a static network through this project, you need to manually modify the bound IP address after logging in, rather than using DHCP.
|
||||
|
||||
Right-click in the bottom right corner of the desktop and select `Open Network and Internet settings`. In the settings page that appears, click `Change adapter options`.
|
||||

|
||||
|
||||
In the `Network Connections`, select `Ethernet` and click `Change settings of this connection`.
|
||||

|
||||
|
||||
In the popup window, select `Internet Protocol Version 4 (TCP/IPv4)` and click `Properties`.
|
||||

|
||||
|
||||
In the new dialog box, select `Use the following IP address` and enter:
|
||||
IP address(I): `172.16.1.xxx` (replace xxx with your desired IP, I used 100 for convenience as my vmid is 100)
|
||||
Subnet mask(U): `255.255.255.0`
|
||||
Default gateway(D): `172.16.1.1`
|
||||
|
||||
Then select `Use the following DNS server addresses` and enter:
|
||||
```
|
||||
8.8.8.8
|
||||
144.144.144.144
|
||||
```
|
||||
|
||||
Click OK in the bottom right corner, and make sure `Validate settings upon exit` is NOT checked.
|
||||

|
||||
|
||||
Click `OK` and `Yes` for any other dialog boxes, and your virtual machine will now have network connectivity.
|
||||