mirror of
https://github.com/oneclickvirt/oneclickvirt.github.io.git
synced 2026-05-23 01:41:52 +08:00
deploy: 2426efb5aa
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as t,ag as h}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"ECS","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case1.md","filePath":"case/case1.md","lastUpdated":1771138580000}'),n={name:"case/case1.md"};function e(l,s,k,p,r,d){return t(),a("div",null,s[0]||(s[0]=[h("",74)]))}const o=i(n,[["render",e]]);export{g as __pageData,o as default};
|
||||
import{_ as i,c as a,o as t,ag as h}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"ECS","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case1.md","filePath":"case/case1.md","lastUpdated":1772085361000}'),n={name:"case/case1.md"};function e(l,s,k,p,r,d){return t(),a("div",null,s[0]||(s[0]=[h("",74)]))}const o=i(n,[["render",e]]);export{g as __pageData,o as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as t,ag as n}from"./chunks/framework.CSeR4K32.js";const F=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case2.md","filePath":"case/case2.md","lastUpdated":1771138580000}'),h={name:"case/case2.md"};function l(e,s,p,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n("",109)]))}const c=i(h,[["render",l]]);export{F as __pageData,c as default};
|
||||
import{_ as i,c as a,o as t,ag as n}from"./chunks/framework.CSeR4K32.js";const F=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case2.md","filePath":"case/case2.md","lastUpdated":1772085361000}'),h={name:"case/case2.md"};function l(e,s,p,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n("",109)]))}const c=i(h,[["render",l]]);export{F as __pageData,c as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as t,c as s,o as a,ag as p}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case3.md","filePath":"case/case3.md","lastUpdated":1771138580000}'),i={name:"case/case3.md"};function n(c,e,r,h,l,d){return a(),s("div",null,e[0]||(e[0]=[p("",44)]))}const b=t(i,[["render",n]]);export{g as __pageData,b as default};
|
||||
import{_ as t,c as s,o as a,ag as p}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case3.md","filePath":"case/case3.md","lastUpdated":1772085361000}'),i={name:"case/case3.md"};function n(c,e,r,h,l,d){return a(),s("div",null,e[0]||(e[0]=[p("",44)]))}const b=t(i,[["render",n]]);export{g as __pageData,b as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as r,ag as c}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case4.md","filePath":"case/case4.md","lastUpdated":1771138580000}'),i={name:"case/case4.md"};function s(h,a,l,n,o,b){return r(),t("div",null,a[0]||(a[0]=[c('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to "仓库""></a></h1><p><a href="https://github.com/oneclickvirt/backtrace" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/backtrace</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/backtrace.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits"></a></p><h1 id="backtrace" tabindex="-1">backtrace <a class="header-anchor" href="#backtrace" aria-label="Permalink to "backtrace""></a></h1><p>三网回程路由线路测试</p><p>基于 <a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">https://github.com/zhanghanyun/backtrace</a> 的重构和优化,与原版存在很大不同</p><p>路由的线路判断最终还是得人工判断的才准确,本项目测试结果仅供参考</p><h2 id="功能" tabindex="-1">功能 <a class="header-anchor" href="#功能" aria-label="Permalink to "功能""></a></h2><ul><li>[x] 检测回程显示IPV4地址时的线路,不显示IP地址时显示ASN检测不到,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>也支持</li><li>[x] 支持对<code>4837</code>、<code>9929</code>和<code>163</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>也支持</li><li>[x] 支持对<code>CN2GT</code>和<code>CN2GIA</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>不支持</li><li>[x] 支持对<code>CMIN2</code>和<code>CMI</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>不支持</li><li>[x] 支持对整个回程路由进行线路分析,与原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>仅进行一次判断不同</li><li>[x] 修复原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>对IPV4地址信息获取时json解析失败依然打印信息的问题</li><li>[x] 增加对全平台的编译支持,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>仅支持linux平台的amd64和arm64架构</li></ul><h2 id="使用" tabindex="-1">使用 <a class="header-anchor" href="#使用" aria-label="Permalink to "使用""></a></h2><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/oneclickvirt/backtrace/main/backtrace_install.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -sSf</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> sh</span></span></code></pre></div><p>更多架构请查看 <a href="https://github.com/oneclickvirt/backtrace/releases/tag/output" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/backtrace/releases/tag/output</a></p><h2 id="概览图" tabindex="-1">概览图 <a class="header-anchor" href="#概览图" aria-label="Permalink to "概览图""></a></h2><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/4688f99f-0f02-486f-8ffc-78d30f2c2f95" alt="图片"></p><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/2812a47d-4e6b-4091-9bb9-596af6c3c8bc" alt="图片"></p><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/2e5cc625-e0da-41ff-85ff-9d21c01114a3" alt="图片"></p>',16)]))}const d=e(i,[["render",s]]);export{k as __pageData,d as default};
|
||||
import{_ as e,c as t,o as r,ag as c}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case4.md","filePath":"case/case4.md","lastUpdated":1772085361000}'),i={name:"case/case4.md"};function s(h,a,l,n,o,b){return r(),t("div",null,a[0]||(a[0]=[c('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to "仓库""></a></h1><p><a href="https://github.com/oneclickvirt/backtrace" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/backtrace</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/backtrace.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits"></a></p><h1 id="backtrace" tabindex="-1">backtrace <a class="header-anchor" href="#backtrace" aria-label="Permalink to "backtrace""></a></h1><p>三网回程路由线路测试</p><p>基于 <a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">https://github.com/zhanghanyun/backtrace</a> 的重构和优化,与原版存在很大不同</p><p>路由的线路判断最终还是得人工判断的才准确,本项目测试结果仅供参考</p><h2 id="功能" tabindex="-1">功能 <a class="header-anchor" href="#功能" aria-label="Permalink to "功能""></a></h2><ul><li>[x] 检测回程显示IPV4地址时的线路,不显示IP地址时显示ASN检测不到,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>也支持</li><li>[x] 支持对<code>4837</code>、<code>9929</code>和<code>163</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>也支持</li><li>[x] 支持对<code>CN2GT</code>和<code>CN2GIA</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>不支持</li><li>[x] 支持对<code>CMIN2</code>和<code>CMI</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>不支持</li><li>[x] 支持对整个回程路由进行线路分析,与原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>仅进行一次判断不同</li><li>[x] 修复原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>对IPV4地址信息获取时json解析失败依然打印信息的问题</li><li>[x] 增加对全平台的编译支持,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>仅支持linux平台的amd64和arm64架构</li></ul><h2 id="使用" tabindex="-1">使用 <a class="header-anchor" href="#使用" aria-label="Permalink to "使用""></a></h2><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/oneclickvirt/backtrace/main/backtrace_install.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -sSf</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> sh</span></span></code></pre></div><p>更多架构请查看 <a href="https://github.com/oneclickvirt/backtrace/releases/tag/output" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/backtrace/releases/tag/output</a></p><h2 id="概览图" tabindex="-1">概览图 <a class="header-anchor" href="#概览图" aria-label="Permalink to "概览图""></a></h2><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/4688f99f-0f02-486f-8ffc-78d30f2c2f95" alt="图片"></p><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/2812a47d-4e6b-4091-9bb9-596af6c3c8bc" alt="图片"></p><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/2e5cc625-e0da-41ff-85ff-9d21c01114a3" alt="图片"></p>',16)]))}const d=e(i,[["render",s]]);export{k as __pageData,d as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as r,ag as c}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case4.md","filePath":"case/case4.md","lastUpdated":1771138580000}'),i={name:"case/case4.md"};function s(h,a,l,n,o,b){return r(),t("div",null,a[0]||(a[0]=[c("",16)]))}const d=e(i,[["render",s]]);export{k as __pageData,d as default};
|
||||
import{_ as e,c as t,o as r,ag as c}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case4.md","filePath":"case/case4.md","lastUpdated":1772085361000}'),i={name:"case/case4.md"};function s(h,a,l,n,o,b){return r(),t("div",null,a[0]||(a[0]=[c("",16)]))}const d=e(i,[["render",s]]);export{k as __pageData,d as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as t,o as s,ag as i}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case5.md","filePath":"case/case5.md","lastUpdated":1771138580000}'),r={name:"case/case5.md"};function l(p,e,c,o,n,h){return s(),t("div",null,e[0]||(e[0]=[i("",26)]))}const b=a(r,[["render",l]]);export{u as __pageData,b as default};
|
||||
import{_ as a,c as t,o as s,ag as i}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case5.md","filePath":"case/case5.md","lastUpdated":1772085361000}'),r={name:"case/case5.md"};function l(p,e,c,o,n,h){return s(),t("div",null,e[0]||(e[0]=[i("",26)]))}const b=a(r,[["render",l]]);export{u as __pageData,b as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as i,o as t,ag as p}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case6.md","filePath":"case/case6.md","lastUpdated":1771138580000}'),e={name:"case/case6.md"};function h(n,s,l,r,k,d){return t(),i("div",null,s[0]||(s[0]=[p("",18)]))}const F=a(e,[["render",h]]);export{c as __pageData,F as default};
|
||||
import{_ as a,c as i,o as t,ag as p}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case6.md","filePath":"case/case6.md","lastUpdated":1772085361000}'),e={name:"case/case6.md"};function h(n,s,l,r,k,d){return t(),i("div",null,s[0]||(s[0]=[p("",18)]))}const F=a(e,[["render",h]]);export{c as __pageData,F as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as s,c as i,o as t,ag as h}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1771138580000}'),e={name:"case/case7.md"};function p(l,a,r,n,d,k){return t(),i("div",null,a[0]||(a[0]=[h('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to "仓库""></a></h1><p><a href="https://github.com/spiritLHLS/addzram" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addzram</a></p><h1 id="addzram" tabindex="-1">addzram <a class="header-anchor" href="#addzram" aria-label="Permalink to "addzram""></a></h1><p>为linux服务器启用zram(压缩内存)</p><p>国际</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span></span></code></pre></div><p>国内</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span></span></code></pre></div><p>类同前面的addswap项目</p><p>同样是给机器优化内存占用的东西,只不过zram是压缩内存占用,swap是附加虚拟内存增加内存空间,二者都会占用CPU资源,zram在CPU性能冗余的机器上使用更优</p><p>(理论上zram会比swap的性能占用低,但未实际测试过)</p><p><strong>单位换算:输入 1024 产生 1G 的 zram 设备压缩内存,zram 设备大小不能大于实际内存大小</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to "致谢""></a></h1><p>感谢 <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> 提供优化建议</p>',14)]))}const m=s(e,[["render",p]]);export{c as __pageData,m as default};
|
||||
import{_ as s,c as i,o as t,ag as h}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1772085361000}'),e={name:"case/case7.md"};function p(l,a,r,n,d,k){return t(),i("div",null,a[0]||(a[0]=[h('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to "仓库""></a></h1><p><a href="https://github.com/spiritLHLS/addzram" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addzram</a></p><h1 id="addzram" tabindex="-1">addzram <a class="header-anchor" href="#addzram" aria-label="Permalink to "addzram""></a></h1><p>为linux服务器启用zram(压缩内存)</p><p>国际</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span></span></code></pre></div><p>国内</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span></span></code></pre></div><p>类同前面的addswap项目</p><p>同样是给机器优化内存占用的东西,只不过zram是压缩内存占用,swap是附加虚拟内存增加内存空间,二者都会占用CPU资源,zram在CPU性能冗余的机器上使用更优</p><p>(理论上zram会比swap的性能占用低,但未实际测试过)</p><p><strong>单位换算:输入 1024 产生 1G 的 zram 设备压缩内存,zram 设备大小不能大于实际内存大小</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to "致谢""></a></h1><p>感谢 <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> 提供优化建议</p>',14)]))}const m=s(e,[["render",p]]);export{c as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as s,c as i,o as t,ag as h}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1771138580000}'),e={name:"case/case7.md"};function p(l,a,r,n,d,k){return t(),i("div",null,a[0]||(a[0]=[h("",14)]))}const m=s(e,[["render",p]]);export{c as __pageData,m as default};
|
||||
import{_ as s,c as i,o as t,ag as h}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1772085361000}'),e={name:"case/case7.md"};function p(l,a,r,n,d,k){return t(),i("div",null,a[0]||(a[0]=[h("",14)]))}const m=s(e,[["render",p]]);export{c as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","description":"","frontmatter":{"layout":"home","title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","hero":{"name":"其他实用项目","text":"与Linux相关的其他实用项目","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"实用性","details":"仁者见仁智者见智。"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1771138580000}'),n={name:"case/index.md"};function s(i,o,r,c,l,p){return a(),t("div")}const h=e(n,[["render",s]]);export{m as __pageData,h as default};
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","description":"","frontmatter":{"layout":"home","title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","hero":{"name":"其他实用项目","text":"与Linux相关的其他实用项目","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"实用性","details":"仁者见仁智者见智。"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1772085361000}'),n={name:"case/index.md"};function s(i,o,r,c,l,p){return a(),t("div")}const h=e(n,[["render",s]]);export{m as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","description":"","frontmatter":{"layout":"home","title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","hero":{"name":"其他实用项目","text":"与Linux相关的其他实用项目","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"实用性","details":"仁者见仁智者见智。"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1771138580000}'),n={name:"case/index.md"};function s(i,o,r,c,l,p){return a(),t("div")}const h=e(n,[["render",s]]);export{m as __pageData,h as default};
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","description":"","frontmatter":{"layout":"home","title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","hero":{"name":"其他实用项目","text":"与Linux相关的其他实用项目","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"实用性","details":"仁者见仁智者见智。"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1772085361000}'),n={name:"case/index.md"};function s(i,o,r,c,l,p){return a(),t("div")}const h=e(n,[["render",s]]);export{m as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","hero":{"name":"开发手册","text":"开发手册","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1771138580000}'),n={name:"developer/index.md"};function l(o,r,s,i,p,d){return a(),t("div")}const h=e(n,[["render",l]]);export{m as __pageData,h as default};
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","hero":{"name":"开发手册","text":"开发手册","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1772085361000}'),n={name:"developer/index.md"};function l(o,r,s,i,p,d){return a(),t("div")}const h=e(n,[["render",l]]);export{m as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","hero":{"name":"开发手册","text":"开发手册","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1771138580000}'),n={name:"developer/index.md"};function l(o,r,s,i,p,d){return a(),t("div")}const h=e(n,[["render",l]]);export{m as __pageData,h as default};
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","hero":{"name":"开发手册","text":"开发手册","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1772085361000}'),n={name:"developer/index.md"};function l(o,r,s,i,p,d){return a(),t("div")}const h=e(n,[["render",l]]);export{m as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as l,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const h=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1771138580000}'),r={name:"developer/l10n.md"};function d(n,e,i,c,s,_){return a(),l("div",null,e[0]||(e[0]=[t('<p><strong>你可以在开发新功能时遵循以下步骤来支持本地化</strong></p><h2 id="介绍" tabindex="-1">介绍 <a class="header-anchor" href="#介绍" aria-label="Permalink to "介绍""></a></h2><ol><li>你可以直接使用 <code>/resource/l10n/zh-CN.toml</code> 中已有的文本配置来替换新功能中的文本</li><li>如果新功能中有新增文本,请参考 <code>zh-CN.toml</code> 的配置文本,将新文本拉取到 <code>zh-CN.toml</code> 等其他语言的配置文件中,并添加翻译</li></ol><h2 id="新本地化文本的添加" tabindex="-1">新本地化文本的添加 <a class="header-anchor" href="#新本地化文本的添加" aria-label="Permalink to "新本地化文本的添加""></a></h2><ol><li>在 <code>/resource/l10n/</code> 中添加新的语言文本配置</li><li>在新的语言文本配置中拉取其他语言已有的文本配置</li><li>为新的语言文本配置添加翻译</li></ol>',5)]))}const m=o(r,[["render",d]]);export{h as __pageData,m as default};
|
||||
import{_ as o,c as l,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const h=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1772085361000}'),r={name:"developer/l10n.md"};function d(n,e,i,c,s,_){return a(),l("div",null,e[0]||(e[0]=[t('<p><strong>你可以在开发新功能时遵循以下步骤来支持本地化</strong></p><h2 id="介绍" tabindex="-1">介绍 <a class="header-anchor" href="#介绍" aria-label="Permalink to "介绍""></a></h2><ol><li>你可以直接使用 <code>/resource/l10n/zh-CN.toml</code> 中已有的文本配置来替换新功能中的文本</li><li>如果新功能中有新增文本,请参考 <code>zh-CN.toml</code> 的配置文本,将新文本拉取到 <code>zh-CN.toml</code> 等其他语言的配置文件中,并添加翻译</li></ol><h2 id="新本地化文本的添加" tabindex="-1">新本地化文本的添加 <a class="header-anchor" href="#新本地化文本的添加" aria-label="Permalink to "新本地化文本的添加""></a></h2><ol><li>在 <code>/resource/l10n/</code> 中添加新的语言文本配置</li><li>在新的语言文本配置中拉取其他语言已有的文本配置</li><li>为新的语言文本配置添加翻译</li></ol>',5)]))}const m=o(r,[["render",d]]);export{h as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as l,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const h=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1771138580000}'),r={name:"developer/l10n.md"};function d(n,e,i,c,s,_){return a(),l("div",null,e[0]||(e[0]=[t("",5)]))}const m=o(r,[["render",d]]);export{h as __pageData,m as default};
|
||||
import{_ as o,c as l,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const h=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1772085361000}'),r={name:"developer/l10n.md"};function d(n,e,i,c,s,_){return a(),l("div",null,e[0]||(e[0]=[t("",5)]))}const m=o(r,[["render",d]]);export{h as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as n}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en/developer/index.md","filePath":"en/developer/index.md","lastUpdated":1771138580000}'),a={name:"en/developer/index.md"};function o(l,r,i,p,c,m){return n(),t("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};
|
||||
import{_ as e,c as t,o as n}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en/developer/index.md","filePath":"en/developer/index.md","lastUpdated":1772085361000}'),a={name:"en/developer/index.md"};function o(l,r,i,p,c,m){return n(),t("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as n}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en/developer/index.md","filePath":"en/developer/index.md","lastUpdated":1771138580000}'),a={name:"en/developer/index.md"};function o(l,r,i,p,c,m){return n(),t("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};
|
||||
import{_ as e,c as t,o as n}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en/developer/index.md","filePath":"en/developer/index.md","lastUpdated":1772085361000}'),a={name:"en/developer/index.md"};function o(l,r,i,p,c,m){return n(),t("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as n,o as a,ag as o}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/developer/l10n.md","filePath":"en/developer/l10n.md","lastUpdated":1771138580000}'),i={name:"en/developer/l10n.md"};function l(r,e,d,c,s,u){return a(),n("div",null,e[0]||(e[0]=[o('<p><strong>You can follow these steps to support localization when developing new features</strong></p><h2 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h2><ol><li>You can directly use the text configuration already available in <code>/resource/l10n/en-US.toml</code> to replace the text in the new feature.</li><li>If there is new text in the new feature, please refer to the configuration text in <code>en-US.toml</code>, pull the new text into the configuration files of other languages such as <code>en-US.toml</code>, and add translations.</li></ol><h2 id="adding-a-new-localized-text-file" tabindex="-1">Adding a new localized text file <a class="header-anchor" href="#adding-a-new-localized-text-file" aria-label="Permalink to "Adding a new localized text file""></a></h2><ol><li>Add a new language text configuration in <code>/resource/l10n/</code>.</li><li>Pull existing text configurations from other languages in the new language text configuration.</li><li>Add translations for the new language text configuration.</li></ol>',5)]))}const h=t(i,[["render",l]]);export{g as __pageData,h as default};
|
||||
import{_ as t,c as n,o as a,ag as o}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/developer/l10n.md","filePath":"en/developer/l10n.md","lastUpdated":1772085361000}'),i={name:"en/developer/l10n.md"};function l(r,e,d,c,s,u){return a(),n("div",null,e[0]||(e[0]=[o('<p><strong>You can follow these steps to support localization when developing new features</strong></p><h2 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h2><ol><li>You can directly use the text configuration already available in <code>/resource/l10n/en-US.toml</code> to replace the text in the new feature.</li><li>If there is new text in the new feature, please refer to the configuration text in <code>en-US.toml</code>, pull the new text into the configuration files of other languages such as <code>en-US.toml</code>, and add translations.</li></ol><h2 id="adding-a-new-localized-text-file" tabindex="-1">Adding a new localized text file <a class="header-anchor" href="#adding-a-new-localized-text-file" aria-label="Permalink to "Adding a new localized text file""></a></h2><ol><li>Add a new language text configuration in <code>/resource/l10n/</code>.</li><li>Pull existing text configurations from other languages in the new language text configuration.</li><li>Add translations for the new language text configuration.</li></ol>',5)]))}const h=t(i,[["render",l]]);export{g as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as n,o as a,ag as o}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/developer/l10n.md","filePath":"en/developer/l10n.md","lastUpdated":1771138580000}'),i={name:"en/developer/l10n.md"};function l(r,e,d,c,s,u){return a(),n("div",null,e[0]||(e[0]=[o("",5)]))}const h=t(i,[["render",l]]);export{g as __pageData,h as default};
|
||||
import{_ as t,c as n,o as a,ag as o}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/developer/l10n.md","filePath":"en/developer/l10n.md","lastUpdated":1772085361000}'),i={name:"en/developer/l10n.md"};function l(r,e,d,c,s,u){return a(),n("div",null,e[0]||(e[0]=[o("",5)]))}const h=t(i,[["render",l]]);export{g as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as a,o as d,j as t,a as r}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"To be developed, stay tuned","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_docker.md","filePath":"en/guide/block/block_docker.md","lastUpdated":1771138580000}'),n={name:"en/guide/block/block_docker.md"};function l(s,e,c,i,p,b){return d(),a("div",null,e[0]||(e[0]=[t("h1",{id:"to-be-developed-stay-tuned",tabindex:"-1"},[r("To be developed, stay tuned "),t("a",{class:"header-anchor",href:"#to-be-developed-stay-tuned","aria-label":'Permalink to "To be developed, stay tuned"'},"")],-1)]))}const _=o(n,[["render",l]]);export{u as __pageData,_ as default};
|
||||
import{_ as o,c as a,o as d,j as t,a as r}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"To be developed, stay tuned","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_docker.md","filePath":"en/guide/block/block_docker.md","lastUpdated":1772085361000}'),n={name:"en/guide/block/block_docker.md"};function l(s,e,c,i,p,b){return d(),a("div",null,e[0]||(e[0]=[t("h1",{id:"to-be-developed-stay-tuned",tabindex:"-1"},[r("To be developed, stay tuned "),t("a",{class:"header-anchor",href:"#to-be-developed-stay-tuned","aria-label":'Permalink to "To be developed, stay tuned"'},"")],-1)]))}const _=o(n,[["render",l]]);export{u as __pageData,_ as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as a,o as d,j as t,a as r}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"To be developed, stay tuned","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_docker.md","filePath":"en/guide/block/block_docker.md","lastUpdated":1771138580000}'),n={name:"en/guide/block/block_docker.md"};function l(s,e,c,i,p,b){return d(),a("div",null,e[0]||(e[0]=[t("h1",{id:"to-be-developed-stay-tuned",tabindex:"-1"},[r("To be developed, stay tuned "),t("a",{class:"header-anchor",href:"#to-be-developed-stay-tuned","aria-label":'Permalink to "To be developed, stay tuned"'},"")],-1)]))}const _=o(n,[["render",l]]);export{u as __pageData,_ as default};
|
||||
import{_ as o,c as a,o as d,j as t,a as r}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"To be developed, stay tuned","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_docker.md","filePath":"en/guide/block/block_docker.md","lastUpdated":1772085361000}'),n={name:"en/guide/block/block_docker.md"};function l(s,e,c,i,p,b){return d(),a("div",null,e[0]||(e[0]=[t("h1",{id:"to-be-developed-stay-tuned",tabindex:"-1"},[r("To be developed, stay tuned "),t("a",{class:"header-anchor",href:"#to-be-developed-stay-tuned","aria-label":'Permalink to "To be developed, stay tuned"'},"")],-1)]))}const _=o(n,[["render",l]]);export{u as __pageData,_ as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as s,c as a,o as e,ag as n}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Blocking Abusive Behavior via Shell Scripts","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_incus.md","filePath":"en/guide/block/block_incus.md","lastUpdated":1771138580000}'),t={name:"en/guide/block/block_incus.md"};function o(l,i,r,h,p,c){return e(),a("div",null,i[0]||(i[0]=[n("",9)]))}const g=s(t,[["render",o]]);export{k as __pageData,g as default};
|
||||
import{_ as s,c as a,o as e,ag as n}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Blocking Abusive Behavior via Shell Scripts","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_incus.md","filePath":"en/guide/block/block_incus.md","lastUpdated":1772085361000}'),t={name:"en/guide/block/block_incus.md"};function o(l,i,r,h,p,c){return e(),a("div",null,i[0]||(i[0]=[n("",9)]))}const g=s(t,[["render",o]]);export{k as __pageData,g as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as n,ag as t}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"Blocking abuse through iptables","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_iptables.md","filePath":"en/guide/block/block_iptables.md","lastUpdated":1771138580000}'),l={name:"en/guide/block/block_iptables.md"};function h(p,s,e,k,F,o){return n(),a("div",null,s[0]||(s[0]=[t("",38)]))}const g=i(l,[["render",h]]);export{d as __pageData,g as default};
|
||||
import{_ as i,c as a,o as n,ag as t}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"Blocking abuse through iptables","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_iptables.md","filePath":"en/guide/block/block_iptables.md","lastUpdated":1772085361000}'),l={name:"en/guide/block/block_iptables.md"};function h(p,s,e,k,F,o){return n(),a("div",null,s[0]||(s[0]=[t("",38)]))}const g=i(l,[["render",h]]);export{d as __pageData,g as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as s,c as a,o as e,ag as n}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Blocking Abusive Behavior via Shell Scripts","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_lxd.md","filePath":"en/guide/block/block_lxd.md","lastUpdated":1771138580000}'),t={name:"en/guide/block/block_lxd.md"};function o(l,i,r,h,p,c){return e(),a("div",null,i[0]||(i[0]=[n("",9)]))}const g=s(t,[["render",o]]);export{k as __pageData,g as default};
|
||||
import{_ as s,c as a,o as e,ag as n}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Blocking Abusive Behavior via Shell Scripts","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_lxd.md","filePath":"en/guide/block/block_lxd.md","lastUpdated":1772085361000}'),t={name:"en/guide/block/block_lxd.md"};function o(l,i,r,h,p,c){return e(),a("div",null,i[0]||(i[0]=[n("",9)]))}const g=s(t,[["render",o]]);export{k as __pageData,g as default};
|
||||
@@ -1,3 +1,3 @@
|
||||
import{_ as t,c as s,o as i,ag as a}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"Avoid theft by setting up a firewall to limit the IPs used by the VMs","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_pve.md","filePath":"en/guide/block/block_pve.md","lastUpdated":1771138580000}'),n={name:"en/guide/block/block_pve.md"};function l(o,e,h,r,p,d){return i(),s("div",null,e[0]||(e[0]=[a(`<h1 id="avoid-theft-by-setting-up-a-firewall-to-limit-the-ips-used-by-the-vms" tabindex="-1">Avoid theft by setting up a firewall to limit the IPs used by the VMs <a class="header-anchor" href="#avoid-theft-by-setting-up-a-firewall-to-limit-the-ips-used-by-the-vms" aria-label="Permalink to "Avoid theft by setting up a firewall to limit the IPs used by the VMs""></a></h1><p>Create the following file under the PVE's host machine</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">/etc/pve/firewall/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"><VMID>.fw</span></span>
|
||||
import{_ as t,c as s,o as i,ag as a}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"Avoid theft by setting up a firewall to limit the IPs used by the VMs","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_pve.md","filePath":"en/guide/block/block_pve.md","lastUpdated":1772085361000}'),n={name:"en/guide/block/block_pve.md"};function l(o,e,h,r,p,d){return i(),s("div",null,e[0]||(e[0]=[a(`<h1 id="avoid-theft-by-setting-up-a-firewall-to-limit-the-ips-used-by-the-vms" tabindex="-1">Avoid theft by setting up a firewall to limit the IPs used by the VMs <a class="header-anchor" href="#avoid-theft-by-setting-up-a-firewall-to-limit-the-ips-used-by-the-vms" aria-label="Permalink to "Avoid theft by setting up a firewall to limit the IPs used by the VMs""></a></h1><p>Create the following file under the PVE's host machine</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">/etc/pve/firewall/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"><VMID>.fw</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[IPSET ipfilter-</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"><</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">net0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">xxx.xxx.xxx.xxx</span></span></code></pre></div><p><code><VMID></code> is replaced with the VMID number of the virtual machine, <code><net0></code> is replaced with the corresponding alias in the network device (which generally doesn't need to be changed unless you're restricted to IPV6), and <code>xxx.xxx.xxx.xxx</code> is replaced with the public IP address, noting that this IP corresponds to the network device in front of it.</p><p>The idea here is that net0 can only use the IP xxx.xxx.xxx.xxx, if you use any other IP the data will be dropped, thus restricting the VM to only use this IP.</p><p>There can be more than one IP, once this rule is enabled the VM can't use any other IP, if you don't write an IPv6 address it means the VM can't use an IPv6 address.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>This setting is only recommended when opening <strong>VMs</strong> with separate IPs that are not NAT full port mapped, otherwise it may cause strange issues resulting in the server being without a network.</p></div><p>This method <strong>is not suitable</strong> for use on PVEs that open any NAT VMs/containers.</p>`,8)]))}const g=t(n,[["render",l]]);export{u as __pageData,g as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as s,o as i,ag as a}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"Avoid theft by setting up a firewall to limit the IPs used by the VMs","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_pve.md","filePath":"en/guide/block/block_pve.md","lastUpdated":1771138580000}'),n={name:"en/guide/block/block_pve.md"};function l(o,e,h,r,p,d){return i(),s("div",null,e[0]||(e[0]=[a("",8)]))}const g=t(n,[["render",l]]);export{u as __pageData,g as default};
|
||||
import{_ as t,c as s,o as i,ag as a}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"Avoid theft by setting up a firewall to limit the IPs used by the VMs","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_pve.md","filePath":"en/guide/block/block_pve.md","lastUpdated":1772085361000}'),n={name:"en/guide/block/block_pve.md"};function l(o,e,h,r,p,d){return i(),s("div",null,e[0]||(e[0]=[a("",8)]))}const g=t(n,[["render",l]]);export{u as __pageData,g as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as a,o as r,ag as i}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/dashboard.md","filePath":"en/guide/dashboard.md","lastUpdated":1771138580000}'),o={name:"en/guide/dashboard.md"};function n(s,e,l,c,h,p){return r(),a("div",null,e[0]||(e[0]=[i('<h2 id="preparation-work" tabindex="-1">Preparation Work <a class="header-anchor" href="#preparation-work" aria-label="Permalink to "Preparation Work""></a></h2><p>To virtualize a server, you will need:</p><ol><li><p>A server (VPS or Dedicated Server) that can connect to the public internet. It's preferable if this server can access GitHub's RAW pages perfectly, as some projects and components might not use CDN acceleration.</p></li><li><p>A stable SSH connection from your local machine. If the connection isn't stable, you can use the <code>screen</code> command to create a window and execute commands within that window.</p></li></ol><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>If you're unfamiliar with the <code>screen</code> command, please search for relevant tutorials to learn it, or you can use <code>tmux</code> as an alternative.</p></div><ol start="3"><li>Ensure that the server's system and hardware meet the requirements specified by the corresponding project. Refer to the project's documentation for detailed information.</li></ol><p><strong>This document will use a VPS as an example, and the VPS should be clean without any native environment issues. If necessary, reinstall the system to ensure the initial environment's cleanliness.</strong></p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>The PVE project might cause problems on the host machine. If you're not familiar with debugging bugs and fixing system issues, it's not recommended to use PVE in a production environment. When using PVE-related scripts, make sure the host machine can be reinstalled at any time.</p></div><h2 id="project-repository" tabindex="-1">Project Repository <a class="header-anchor" href="#project-repository" aria-label="Permalink to "Project Repository""></a></h2><p>Welcome Star and Fork, all resources are open source, no non-open source parts, reproduced as well as the use of please write on the source of this site, thank you!</p><h2 id="oneclickvirt" tabindex="-1">OneClickVirt <a class="header-anchor" href="#oneclickvirt" aria-label="Permalink to "OneClickVirt""></a></h2><p><a href="https://github.com/oneclickvirt/oneclickvirt" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/oneclickvirt</a></p><h2 id="pve" tabindex="-1">PVE <a class="header-anchor" href="#pve" aria-label="Permalink to "PVE""></a></h2><p><a href="https://github.com/oneclickvirt/pve" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/pve</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/pve.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits"></a></p><h2 id="incus" tabindex="-1">Incus <a class="header-anchor" href="#incus" aria-label="Permalink to "Incus""></a></h2><p><a href="https://github.com/oneclickvirt/incus" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/incus</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/incus.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits"></a></p><h2 id="docker" tabindex="-1">Docker <a class="header-anchor" href="#docker" aria-label="Permalink to "Docker""></a></h2><p><a href="https://github.com/oneclickvirt/docker" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/docker</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/docker.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits"></a></p><h2 id="lxd" tabindex="-1">LXD <a class="header-anchor" href="#lxd" aria-label="Permalink to "LXD""></a></h2><p><a href="https://github.com/oneclickvirt/lxd" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/lxd</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/lxd.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits"></a></p>',23)]))}const m=t(o,[["render",n]]);export{u as __pageData,m as default};
|
||||
import{_ as t,c as a,o as r,ag as i}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/dashboard.md","filePath":"en/guide/dashboard.md","lastUpdated":1772085361000}'),o={name:"en/guide/dashboard.md"};function n(s,e,l,c,h,p){return r(),a("div",null,e[0]||(e[0]=[i('<h2 id="preparation-work" tabindex="-1">Preparation Work <a class="header-anchor" href="#preparation-work" aria-label="Permalink to "Preparation Work""></a></h2><p>To virtualize a server, you will need:</p><ol><li><p>A server (VPS or Dedicated Server) that can connect to the public internet. It's preferable if this server can access GitHub's RAW pages perfectly, as some projects and components might not use CDN acceleration.</p></li><li><p>A stable SSH connection from your local machine. If the connection isn't stable, you can use the <code>screen</code> command to create a window and execute commands within that window.</p></li></ol><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>If you're unfamiliar with the <code>screen</code> command, please search for relevant tutorials to learn it, or you can use <code>tmux</code> as an alternative.</p></div><ol start="3"><li>Ensure that the server's system and hardware meet the requirements specified by the corresponding project. Refer to the project's documentation for detailed information.</li></ol><p><strong>This document will use a VPS as an example, and the VPS should be clean without any native environment issues. If necessary, reinstall the system to ensure the initial environment's cleanliness.</strong></p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>The PVE project might cause problems on the host machine. If you're not familiar with debugging bugs and fixing system issues, it's not recommended to use PVE in a production environment. When using PVE-related scripts, make sure the host machine can be reinstalled at any time.</p></div><h2 id="project-repository" tabindex="-1">Project Repository <a class="header-anchor" href="#project-repository" aria-label="Permalink to "Project Repository""></a></h2><p>Welcome Star and Fork, all resources are open source, no non-open source parts, reproduced as well as the use of please write on the source of this site, thank you!</p><h2 id="oneclickvirt" tabindex="-1">OneClickVirt <a class="header-anchor" href="#oneclickvirt" aria-label="Permalink to "OneClickVirt""></a></h2><p><a href="https://github.com/oneclickvirt/oneclickvirt" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/oneclickvirt</a></p><h2 id="pve" tabindex="-1">PVE <a class="header-anchor" href="#pve" aria-label="Permalink to "PVE""></a></h2><p><a href="https://github.com/oneclickvirt/pve" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/pve</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/pve.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits"></a></p><h2 id="incus" tabindex="-1">Incus <a class="header-anchor" href="#incus" aria-label="Permalink to "Incus""></a></h2><p><a href="https://github.com/oneclickvirt/incus" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/incus</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/incus.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits"></a></p><h2 id="docker" tabindex="-1">Docker <a class="header-anchor" href="#docker" aria-label="Permalink to "Docker""></a></h2><p><a href="https://github.com/oneclickvirt/docker" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/docker</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/docker.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits"></a></p><h2 id="lxd" tabindex="-1">LXD <a class="header-anchor" href="#lxd" aria-label="Permalink to "LXD""></a></h2><p><a href="https://github.com/oneclickvirt/lxd" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/lxd</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/lxd.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits"></a></p>',23)]))}const m=t(o,[["render",n]]);export{u as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as a,o as r,ag as i}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/dashboard.md","filePath":"en/guide/dashboard.md","lastUpdated":1771138580000}'),o={name:"en/guide/dashboard.md"};function n(s,e,l,c,h,p){return r(),a("div",null,e[0]||(e[0]=[i("",23)]))}const m=t(o,[["render",n]]);export{u as __pageData,m as default};
|
||||
import{_ as t,c as a,o as r,ag as i}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/dashboard.md","filePath":"en/guide/dashboard.md","lastUpdated":1772085361000}'),o={name:"en/guide/dashboard.md"};function n(s,e,l,c,h,p){return r(),a("div",null,e[0]||(e[0]=[i("",23)]))}const m=t(o,[["render",n]]);export{u as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as s,o as t,ag as i}from"./chunks/framework.CSeR4K32.js";const p="/assets/wechat.BhfskdFa.jpg",_=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/dashboardq.md","filePath":"en/guide/dashboardq.md","lastUpdated":1771138580000}'),o={name:"en/guide/dashboardq.md"};function n(d,a,c,l,r,h){return t(),s("div",null,a[0]||(a[0]=[i('<p>Give me a cup of coffee.</p><p><a href="https://ko-fi.com/spiritlhl" target="_blank" rel="noreferrer">https://ko-fi.com/spiritlhl</a></p><p>WeChat</p><p><img src="'+p+'" alt="WeChat"></p><p>USDT-TRC20</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">TNqjaPYAmDsm9pbpLY79pixE8z1ce3Zj1B</span></span></code></pre></div><p>USDT-Polygon/Matic</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">0xb81b44cb00f9e6e084f85e5da604ec479e7ffab6</span></span></code></pre></div>',8)]))}const g=e(o,[["render",n]]);export{_ as __pageData,g as default};
|
||||
import{_ as e,c as s,o as t,ag as i}from"./chunks/framework.CSeR4K32.js";const p="/assets/wechat.BhfskdFa.jpg",_=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/dashboardq.md","filePath":"en/guide/dashboardq.md","lastUpdated":1772085361000}'),o={name:"en/guide/dashboardq.md"};function n(d,a,c,l,r,h){return t(),s("div",null,a[0]||(a[0]=[i('<p>Give me a cup of coffee.</p><p><a href="https://ko-fi.com/spiritlhl" target="_blank" rel="noreferrer">https://ko-fi.com/spiritlhl</a></p><p>WeChat</p><p><img src="'+p+'" alt="WeChat"></p><p>USDT-TRC20</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">TNqjaPYAmDsm9pbpLY79pixE8z1ce3Zj1B</span></span></code></pre></div><p>USDT-Polygon/Matic</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">0xb81b44cb00f9e6e084f85e5da604ec479e7ffab6</span></span></code></pre></div>',8)]))}const g=e(o,[["render",n]]);export{_ as __pageData,g as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as s,o as t,ag as i}from"./chunks/framework.CSeR4K32.js";const p="/assets/wechat.BhfskdFa.jpg",_=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/dashboardq.md","filePath":"en/guide/dashboardq.md","lastUpdated":1771138580000}'),o={name:"en/guide/dashboardq.md"};function n(d,a,c,l,r,h){return t(),s("div",null,a[0]||(a[0]=[i("",8)]))}const g=e(o,[["render",n]]);export{_ as __pageData,g as default};
|
||||
import{_ as e,c as s,o as t,ag as i}from"./chunks/framework.CSeR4K32.js";const p="/assets/wechat.BhfskdFa.jpg",_=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/dashboardq.md","filePath":"en/guide/dashboardq.md","lastUpdated":1772085361000}'),o={name:"en/guide/dashboardq.md"};function n(d,a,c,l,r,h){return t(),s("div",null,a[0]||(a[0]=[i("",8)]))}const g=e(o,[["render",n]]);export{_ as __pageData,g as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as s,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Running Android Virtual Machine in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_android.md","filePath":"en/guide/docker/docker_android.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_android.md"};function o(r,i,l,h,d,p){return a(),s("div",null,i[0]||(i[0]=[t("",22)]))}const g=e(n,[["render",o]]);export{k as __pageData,g as default};
|
||||
import{_ as e,c as s,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Running Android Virtual Machine in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_android.md","filePath":"en/guide/docker/docker_android.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_android.md"};function o(r,i,l,h,d,p){return a(),s("div",null,i[0]||(i[0]=[t("",22)]))}const g=e(n,[["render",o]]);export{k as __pageData,g as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as t,ag as e}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_build.md","filePath":"en/guide/docker/docker_build.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_build.md"};function h(l,s,p,r,o,k){return t(),a("div",null,s[0]||(s[0]=[e("",51)]))}const F=i(n,[["render",h]]);export{c as __pageData,F as default};
|
||||
import{_ as i,c as a,o as t,ag as e}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_build.md","filePath":"en/guide/docker/docker_build.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_build.md"};function h(l,s,p,r,o,k){return t(),a("div",null,s[0]||(s[0]=[e("",51)]))}const F=i(n,[["render",h]]);export{c as __pageData,F as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Script for One-Click Installation of Certain Containers using Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_custom.md","filePath":"en/guide/docker/docker_custom.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_custom.md"};function o(l,s,h,p,r,c){return a(),e("div",null,s[0]||(s[0]=[t(`<h1 id="script-for-one-click-installation-of-certain-containers-using-docker" tabindex="-1">Script for One-Click Installation of Certain Containers using Docker <a class="header-anchor" href="#script-for-one-click-installation-of-certain-containers-using-docker" aria-label="Permalink to "Script for One-Click Installation of Certain Containers using Docker""></a></h1><p>Each container has specific configuration requirements; please refer to them individually.</p><p>If the configured memory is not enough, then it's okay to make up for it with the virtual memory <a href="https://virt.spiritlhl.net/en_US/guide/docker_install.html#setting-up-virtual-memory" target="_blank" rel="noreferrer">here</a>.</p><p>Note that the following scripts must be pre-installed using the environment installation scripts in this set of tutorials before using them</p><h2 id="one-click-setup-of-firefox-browser-container" tabindex="-1">One-Click Setup of Firefox Browser Container <a class="header-anchor" href="#one-click-setup-of-firefox-browser-container" aria-label="Permalink to "One-Click Setup of Firefox Browser Container""></a></h2><ul><li>Crash recovery on startup has been configured.</li><li>Chinese fonts have been integrated into the container.</li><li>Built-in web validation with the option to set a custom password.</li><li>Maximum memory usage for the container is customizable.</li><li>Choice to enable VNC port, disabled by default.</li><li>No need to consider support for nested virtualization or server architecture.</li><li>Audio mapping is not supported; sound transmission is unavailable on both the web and VNC.</li></ul><p><strong>The host machine should have at least 1 core, 1GB RAM, and 5GB disk space. The created container will occupy a minimum of 1GB disk space.</strong></p><p><strong>Setup:</strong></p><p>After setup, the default password is <code>oneclick</code>.</p><p>The default web port is <code>3003</code>. Once the setup is complete, simply open <code>HOST_IPV4:PORT</code> in your browser.</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/onefirefox.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span></span></code></pre></div><p><strong>Deletion</strong></p><p>Modify the following port number <code>3003</code> to your actual port number, and then execute the command to delete the container, configuration file, and corresponding image</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">PORT</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"3003"</span></span>
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Script for One-Click Installation of Certain Containers using Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_custom.md","filePath":"en/guide/docker/docker_custom.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_custom.md"};function o(l,s,h,p,r,c){return a(),e("div",null,s[0]||(s[0]=[t(`<h1 id="script-for-one-click-installation-of-certain-containers-using-docker" tabindex="-1">Script for One-Click Installation of Certain Containers using Docker <a class="header-anchor" href="#script-for-one-click-installation-of-certain-containers-using-docker" aria-label="Permalink to "Script for One-Click Installation of Certain Containers using Docker""></a></h1><p>Each container has specific configuration requirements; please refer to them individually.</p><p>If the configured memory is not enough, then it's okay to make up for it with the virtual memory <a href="https://virt.spiritlhl.net/en_US/guide/docker_install.html#setting-up-virtual-memory" target="_blank" rel="noreferrer">here</a>.</p><p>Note that the following scripts must be pre-installed using the environment installation scripts in this set of tutorials before using them</p><h2 id="one-click-setup-of-firefox-browser-container" tabindex="-1">One-Click Setup of Firefox Browser Container <a class="header-anchor" href="#one-click-setup-of-firefox-browser-container" aria-label="Permalink to "One-Click Setup of Firefox Browser Container""></a></h2><ul><li>Crash recovery on startup has been configured.</li><li>Chinese fonts have been integrated into the container.</li><li>Built-in web validation with the option to set a custom password.</li><li>Maximum memory usage for the container is customizable.</li><li>Choice to enable VNC port, disabled by default.</li><li>No need to consider support for nested virtualization or server architecture.</li><li>Audio mapping is not supported; sound transmission is unavailable on both the web and VNC.</li></ul><p><strong>The host machine should have at least 1 core, 1GB RAM, and 5GB disk space. The created container will occupy a minimum of 1GB disk space.</strong></p><p><strong>Setup:</strong></p><p>After setup, the default password is <code>oneclick</code>.</p><p>The default web port is <code>3003</code>. Once the setup is complete, simply open <code>HOST_IPV4:PORT</code> in your browser.</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/onefirefox.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span></span></code></pre></div><p><strong>Deletion</strong></p><p>Modify the following port number <code>3003</code> to your actual port number, and then execute the command to delete the container, configuration file, and corresponding image</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">PORT</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"3003"</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> stop</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> firefox_</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">\${PORT}</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rm</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> firefox_</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">\${PORT}</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">rm</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -rf</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /usr/local/bin/firefox_</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">\${PORT}</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Script for One-Click Installation of Certain Containers using Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_custom.md","filePath":"en/guide/docker/docker_custom.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_custom.md"};function o(l,s,h,p,r,c){return a(),e("div",null,s[0]||(s[0]=[t("",52)]))}const u=i(n,[["render",o]]);export{k as __pageData,u as default};
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Script for One-Click Installation of Certain Containers using Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_custom.md","filePath":"en/guide/docker/docker_custom.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_custom.md"};function o(l,s,h,p,r,c){return a(),e("div",null,s[0]||(s[0]=[t("",52)]))}const u=i(n,[["render",o]]);export{k as __pageData,u as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_install.md","filePath":"en/guide/docker/docker_install.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_install.md"};function l(h,s,r,o,p,d){return a(),e("div",null,s[0]||(s[0]=[t("",20)]))}const u=i(n,[["render",l]]);export{k as __pageData,u as default};
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_install.md","filePath":"en/guide/docker/docker_install.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_install.md"};function l(h,s,r,o,p,d){return a(),e("div",null,s[0]||(s[0]=[t("",20)]))}const u=i(n,[["render",l]]);export{k as __pageData,u as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as r,o,ag as c}from"./chunks/framework.CSeR4K32.js";const h=JSON.parse('{"title":"Running macOS Virtual Machines in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_macos.md","filePath":"en/guide/docker/docker_macos.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_macos.md"};function t(i,e,s,d,u,l){return o(),r("div",null,e[0]||(e[0]=[c('<h1 id="running-macos-virtual-machines-in-docker" tabindex="-1">Running macOS Virtual Machines in Docker <a class="header-anchor" href="#running-macos-virtual-machines-in-docker" aria-label="Permalink to "Running macOS Virtual Machines in Docker""></a></h1><h2 id="using-dockur" tabindex="-1">Using Dockur <a class="header-anchor" href="#using-dockur" aria-label="Permalink to "Using Dockur""></a></h2><p>Original Project:</p><p><a href="https://github.com/dockur/macos" target="_blank" rel="noreferrer">https://github.com/dockur/macos</a></p><h2 id="using-docker-osx" tabindex="-1">Using Docker-OSX <a class="header-anchor" href="#using-docker-osx" aria-label="Permalink to "Using Docker-OSX""></a></h2><p>Original Project:</p><p><a href="https://github.com/sickcodes/Docker-OSX" target="_blank" rel="noreferrer">https://github.com/sickcodes/Docker-OSX</a></p>',7)]))}const m=a(n,[["render",t]]);export{h as __pageData,m as default};
|
||||
import{_ as a,c as r,o,ag as c}from"./chunks/framework.CSeR4K32.js";const h=JSON.parse('{"title":"Running macOS Virtual Machines in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_macos.md","filePath":"en/guide/docker/docker_macos.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_macos.md"};function t(i,e,s,d,u,l){return o(),r("div",null,e[0]||(e[0]=[c('<h1 id="running-macos-virtual-machines-in-docker" tabindex="-1">Running macOS Virtual Machines in Docker <a class="header-anchor" href="#running-macos-virtual-machines-in-docker" aria-label="Permalink to "Running macOS Virtual Machines in Docker""></a></h1><h2 id="using-dockur" tabindex="-1">Using Dockur <a class="header-anchor" href="#using-dockur" aria-label="Permalink to "Using Dockur""></a></h2><p>Original Project:</p><p><a href="https://github.com/dockur/macos" target="_blank" rel="noreferrer">https://github.com/dockur/macos</a></p><h2 id="using-docker-osx" tabindex="-1">Using Docker-OSX <a class="header-anchor" href="#using-docker-osx" aria-label="Permalink to "Using Docker-OSX""></a></h2><p>Original Project:</p><p><a href="https://github.com/sickcodes/Docker-OSX" target="_blank" rel="noreferrer">https://github.com/sickcodes/Docker-OSX</a></p>',7)]))}const m=a(n,[["render",t]]);export{h as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as r,o,ag as c}from"./chunks/framework.CSeR4K32.js";const h=JSON.parse('{"title":"Running macOS Virtual Machines in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_macos.md","filePath":"en/guide/docker/docker_macos.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_macos.md"};function t(i,e,s,d,u,l){return o(),r("div",null,e[0]||(e[0]=[c("",7)]))}const m=a(n,[["render",t]]);export{h as __pageData,m as default};
|
||||
import{_ as a,c as r,o,ag as c}from"./chunks/framework.CSeR4K32.js";const h=JSON.parse('{"title":"Running macOS Virtual Machines in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_macos.md","filePath":"en/guide/docker/docker_macos.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_macos.md"};function t(i,e,s,d,u,l){return o(),r("div",null,e[0]||(e[0]=[c("",7)]))}const m=a(n,[["render",t]]);export{h as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as o,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const p=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_precheck.md","filePath":"en/guide/docker/docker_precheck.md","lastUpdated":1771138580000}'),r={name:"en/guide/docker/docker_precheck.md"};function i(s,e,c,h,d,u){return a(),o("div",null,e[0]||(e[0]=[n('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><p>The following is an introduction to the non-customized sections. Please ensure that you don't confuse them with the customized parts.</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>incus</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>If the host has an IPV6 network, the installation will change the network structure of the host, please make sure that the host can reset the system at any time and that there is no important data on the host before running.</p></div><p>Feel free to give the project a <code>Star</code> for free support!--><a href="https://github.com/oneclickvirt/docker" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/docker</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to "Project Features""></a></h2><p>Bulk or individual NAT server provisioning via docker</p><p>Default use of debian system optional alpine system, each container comes with 1 external ssh port, 25 internal and external network ports, you can choose whether to bind IPV6 address</p><p>The default creation of unprivileged containers, and does not mount and host docker daemon communication, so ** host created docker virtualization NAT servers can not be nested within the virtualization docker **</p><p>By default, lxcfs is installed and enabled, so that when querying resources within a container, CPU and memory use the configured view instead of the host's view.</p><p>By default, you can choose whether or not to share the hard disk of the host machine, and you can choose whether or not to install it as an environment that can limit the size of the hard disk during Docker installation.</p><h2 id="configuration-requirements" tabindex="-1">Configuration requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to "Configuration requirements""></a></h2><p>The system can be installed docker can be used, the network can connect to the Github raw interface can be used, hardware configuration as long as not pull across the line, free hard disk has 3G on it!</p><p>(If you need to bind an IPV6 address, then please make sure to use the installation script of this set of scripts for docker installation, you need it to automatically preset some of the settings)</p><p>If the hardware resources are just a little bit better, need to limit more things and need to limit the size of the hard disk, you can use the incus partition of the script batch open LXC virtualization containers</p><p>If the hardware is very good and you have a lot of resources, you can use the PVE partition script to batch open KVM virtualized VMs.</p>',16)]))}const f=t(r,[["render",i]]);export{p as __pageData,f as default};
|
||||
import{_ as t,c as o,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const p=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_precheck.md","filePath":"en/guide/docker/docker_precheck.md","lastUpdated":1772085361000}'),r={name:"en/guide/docker/docker_precheck.md"};function i(s,e,c,h,d,u){return a(),o("div",null,e[0]||(e[0]=[n('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><p>The following is an introduction to the non-customized sections. Please ensure that you don't confuse them with the customized parts.</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>incus</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>If the host has an IPV6 network, the installation will change the network structure of the host, please make sure that the host can reset the system at any time and that there is no important data on the host before running.</p></div><p>Feel free to give the project a <code>Star</code> for free support!--><a href="https://github.com/oneclickvirt/docker" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/docker</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to "Project Features""></a></h2><p>Bulk or individual NAT server provisioning via docker</p><p>Default use of debian system optional alpine system, each container comes with 1 external ssh port, 25 internal and external network ports, you can choose whether to bind IPV6 address</p><p>The default creation of unprivileged containers, and does not mount and host docker daemon communication, so ** host created docker virtualization NAT servers can not be nested within the virtualization docker **</p><p>By default, lxcfs is installed and enabled, so that when querying resources within a container, CPU and memory use the configured view instead of the host's view.</p><p>By default, you can choose whether or not to share the hard disk of the host machine, and you can choose whether or not to install it as an environment that can limit the size of the hard disk during Docker installation.</p><h2 id="configuration-requirements" tabindex="-1">Configuration requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to "Configuration requirements""></a></h2><p>The system can be installed docker can be used, the network can connect to the Github raw interface can be used, hardware configuration as long as not pull across the line, free hard disk has 3G on it!</p><p>(If you need to bind an IPV6 address, then please make sure to use the installation script of this set of scripts for docker installation, you need it to automatically preset some of the settings)</p><p>If the hardware resources are just a little bit better, need to limit more things and need to limit the size of the hard disk, you can use the incus partition of the script batch open LXC virtualization containers</p><p>If the hardware is very good and you have a lot of resources, you can use the PVE partition script to batch open KVM virtualized VMs.</p>',16)]))}const f=t(r,[["render",i]]);export{p as __pageData,f as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as o,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const p=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_precheck.md","filePath":"en/guide/docker/docker_precheck.md","lastUpdated":1771138580000}'),r={name:"en/guide/docker/docker_precheck.md"};function i(s,e,c,h,d,u){return a(),o("div",null,e[0]||(e[0]=[n("",16)]))}const f=t(r,[["render",i]]);export{p as __pageData,f as default};
|
||||
import{_ as t,c as o,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const p=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_precheck.md","filePath":"en/guide/docker/docker_precheck.md","lastUpdated":1772085361000}'),r={name:"en/guide/docker/docker_precheck.md"};function i(s,e,c,h,d,u){return a(),o("div",null,e[0]||(e[0]=[n("",16)]))}const f=t(r,[["render",i]]);export{p as __pageData,f as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as s,o as t,ag as i}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"Solve the puzzle","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_qa.md","filePath":"en/guide/docker/docker_qa.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_qa.md"};function o(p,e,c,l,d,r){return t(),s("div",null,e[0]||(e[0]=[i('<h1 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to "Solve the puzzle""></a></h1><h2 id="common-docker-commands" tabindex="-1">Common Docker Commands <a class="header-anchor" href="#common-docker-commands" aria-label="Permalink to "Common Docker Commands""></a></h2><p>Check real-time resource usage of a specific container</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker stats <container_name></span></span></code></pre></div><p>Enter a specific container</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker exec -it <container_name> /bin/bash</span></span></code></pre></div><p>Clean Docker cache, remove unused resources including images, containers, networks, etc.</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker system prune -a</span></span></code></pre></div><p>Uninstall all Docker images and containers</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker rm -f $(docker ps -aq); docker rmi $(docker images -aq)</span></span></code></pre></div><p>View logs of a specific container</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker logs <container_name_or_ID></span></span></code></pre></div><p>View overall disk usage of Docker</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker system df</span></span></code></pre></div><p>List all containers</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker ps -a</span></span></code></pre></div><p>List all images</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker images</span></span></code></pre></div><p>Remove a specific container</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker rm -f <container_name_or_ID></span></span></code></pre></div><p>Remove a specific image</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker rmi <image_name_or_ID></span></span></code></pre></div>',22)]))}const u=a(n,[["render",o]]);export{g as __pageData,u as default};
|
||||
import{_ as a,c as s,o as t,ag as i}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"Solve the puzzle","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_qa.md","filePath":"en/guide/docker/docker_qa.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_qa.md"};function o(p,e,c,l,d,r){return t(),s("div",null,e[0]||(e[0]=[i('<h1 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to "Solve the puzzle""></a></h1><h2 id="common-docker-commands" tabindex="-1">Common Docker Commands <a class="header-anchor" href="#common-docker-commands" aria-label="Permalink to "Common Docker Commands""></a></h2><p>Check real-time resource usage of a specific container</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker stats <container_name></span></span></code></pre></div><p>Enter a specific container</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker exec -it <container_name> /bin/bash</span></span></code></pre></div><p>Clean Docker cache, remove unused resources including images, containers, networks, etc.</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker system prune -a</span></span></code></pre></div><p>Uninstall all Docker images and containers</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker rm -f $(docker ps -aq); docker rmi $(docker images -aq)</span></span></code></pre></div><p>View logs of a specific container</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker logs <container_name_or_ID></span></span></code></pre></div><p>View overall disk usage of Docker</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker system df</span></span></code></pre></div><p>List all containers</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker ps -a</span></span></code></pre></div><p>List all images</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker images</span></span></code></pre></div><p>Remove a specific container</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker rm -f <container_name_or_ID></span></span></code></pre></div><p>Remove a specific image</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker rmi <image_name_or_ID></span></span></code></pre></div>',22)]))}const u=a(n,[["render",o]]);export{g as __pageData,u as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as s,o as t,ag as i}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"Solve the puzzle","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_qa.md","filePath":"en/guide/docker/docker_qa.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_qa.md"};function o(p,e,c,l,d,r){return t(),s("div",null,e[0]||(e[0]=[i("",22)]))}const u=a(n,[["render",o]]);export{g as __pageData,u as default};
|
||||
import{_ as a,c as s,o as t,ag as i}from"./chunks/framework.CSeR4K32.js";const g=JSON.parse('{"title":"Solve the puzzle","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_qa.md","filePath":"en/guide/docker/docker_qa.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_qa.md"};function o(p,e,c,l,d,r){return t(),s("div",null,e[0]||(e[0]=[i("",22)]))}const u=a(n,[["render",o]]);export{g as __pageData,u as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a,ag as o}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_thanks.md","filePath":"en/guide/docker/docker_thanks.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_thanks.md"};function c(p,r,h,i,s,l){return a(),t("div",null,r[0]||(r[0]=[o('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://hub.docker.com/_/debian" target="_blank" rel="noreferrer">https://hub.docker.com/_/debian</a></p><p><a href="https://hub.docker.com/r/redroid/redroid" target="_blank" rel="noreferrer">https://hub.docker.com/r/redroid/redroid</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://guacamole.apache.org/doc/gug/introduction.html" target="_blank" rel="noreferrer">https://guacamole.apache.org/doc/gug/introduction.html</a></p><p><a href="https://blog.imoeq.com/oracle-arm-run-android-by-docker" target="_blank" rel="noreferrer">https://blog.imoeq.com/oracle-arm-run-android-by-docker</a></p><p><a href="https://blog.imoeq.com/scrcpy-run-a-android-web-page" target="_blank" rel="noreferrer">https://blog.imoeq.com/scrcpy-run-a-android-web-page</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/" target="_blank" rel="noreferrer">https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/</a></p><p><a href="https://releases.hashicorp.com/vagrant/" target="_blank" rel="noreferrer">https://releases.hashicorp.com/vagrant/</a></p><p><a href="https://github.com/hashicorp/vagrant/" target="_blank" rel="noreferrer">https://github.com/hashicorp/vagrant/</a></p><p><a href="https://app.vagrantup.com/peru" target="_blank" rel="noreferrer">https://app.vagrantup.com/peru</a></p><p><a href="https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1" target="_blank" rel="noreferrer">https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1</a></p><p><a href="https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4" target="_blank" rel="noreferrer">https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4</a></p><p><a href="https://github.com/jlesage/docker-firefox" target="_blank" rel="noreferrer">https://github.com/jlesage/docker-firefox</a></p><p><a href="https://github.com/linuxserver/docker-webtop" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-webtop</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/linuxserver/docker-chromium" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-chromium</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> and @CoiaPrant for providing docker guidance.</p>',20)]))}const u=e(n,[["render",c]]);export{d as __pageData,u as default};
|
||||
import{_ as e,c as t,o as a,ag as o}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_thanks.md","filePath":"en/guide/docker/docker_thanks.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_thanks.md"};function c(p,r,h,i,s,l){return a(),t("div",null,r[0]||(r[0]=[o('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://hub.docker.com/_/debian" target="_blank" rel="noreferrer">https://hub.docker.com/_/debian</a></p><p><a href="https://hub.docker.com/r/redroid/redroid" target="_blank" rel="noreferrer">https://hub.docker.com/r/redroid/redroid</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://guacamole.apache.org/doc/gug/introduction.html" target="_blank" rel="noreferrer">https://guacamole.apache.org/doc/gug/introduction.html</a></p><p><a href="https://blog.imoeq.com/oracle-arm-run-android-by-docker" target="_blank" rel="noreferrer">https://blog.imoeq.com/oracle-arm-run-android-by-docker</a></p><p><a href="https://blog.imoeq.com/scrcpy-run-a-android-web-page" target="_blank" rel="noreferrer">https://blog.imoeq.com/scrcpy-run-a-android-web-page</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/" target="_blank" rel="noreferrer">https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/</a></p><p><a href="https://releases.hashicorp.com/vagrant/" target="_blank" rel="noreferrer">https://releases.hashicorp.com/vagrant/</a></p><p><a href="https://github.com/hashicorp/vagrant/" target="_blank" rel="noreferrer">https://github.com/hashicorp/vagrant/</a></p><p><a href="https://app.vagrantup.com/peru" target="_blank" rel="noreferrer">https://app.vagrantup.com/peru</a></p><p><a href="https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1" target="_blank" rel="noreferrer">https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1</a></p><p><a href="https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4" target="_blank" rel="noreferrer">https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4</a></p><p><a href="https://github.com/jlesage/docker-firefox" target="_blank" rel="noreferrer">https://github.com/jlesage/docker-firefox</a></p><p><a href="https://github.com/linuxserver/docker-webtop" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-webtop</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/linuxserver/docker-chromium" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-chromium</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> and @CoiaPrant for providing docker guidance.</p>',20)]))}const u=e(n,[["render",c]]);export{d as __pageData,u as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a,ag as o}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_thanks.md","filePath":"en/guide/docker/docker_thanks.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_thanks.md"};function c(p,r,h,i,s,l){return a(),t("div",null,r[0]||(r[0]=[o("",20)]))}const u=e(n,[["render",c]]);export{d as __pageData,u as default};
|
||||
import{_ as e,c as t,o as a,ag as o}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_thanks.md","filePath":"en/guide/docker/docker_thanks.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_thanks.md"};function c(p,r,h,i,s,l){return a(),t("div",null,r[0]||(r[0]=[o("",20)]))}const u=e(n,[["render",c]]);export{d as __pageData,u as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Running Windows Virtual Machine in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_windows.md","filePath":"en/guide/docker/docker_windows.md","lastUpdated":1771138580000}'),n={name:"en/guide/docker/docker_windows.md"};function o(r,s,l,h,p,d){return a(),e("div",null,s[0]||(s[0]=[t("",61)]))}const g=i(n,[["render",o]]);export{k as __pageData,g as default};
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Running Windows Virtual Machine in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_windows.md","filePath":"en/guide/docker/docker_windows.md","lastUpdated":1772085361000}'),n={name:"en/guide/docker/docker_windows.md"};function o(r,s,l,h,p,d){return a(),e("div",null,s[0]||(s[0]=[t("",61)]))}const g=i(n,[["render",o]]);export{k as __pageData,g as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as s,c as t,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const i="/assets/lxd1.CbGLa5s4.png",o="/assets/lxd2.C4eWfnaM.png",l="/assets/lxd3.tQBNiKQo.png",p="/assets/lxd4.CSfRHLxz.png",r="/assets/lxd5.WUJi0qzd.png",h="/assets/lxd6.Cnds779U.png",d="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",g="/assets/lxd10.BjQ0l1K7.png",k="/assets/lxd11.D6E5sVW2.png",m="/assets/lxd12.B9udKIzn.png",b="/assets/lxd13.Dwv7xBpz.png",f="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",v="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",S=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_custom.md","filePath":"en/guide/incus/incus_custom.md","lastUpdated":1771138580000}'),B={name:"en/guide/incus/incus_custom.md"};function I(q,e,T,V,A,O){return a(),t("div",null,e[0]||(e[0]=[n(`<h1 id="custom" tabindex="-1">Custom <a class="header-anchor" href="#custom" aria-label="Permalink to "Custom""></a></h1><h2 id="adding-a-customized-mirror-source" tabindex="-1">Adding a customized mirror source <a class="header-anchor" href="#adding-a-customized-mirror-source" aria-label="Permalink to "Adding a customized mirror source""></a></h2><p><a href="https://incusimages.spiritlhl.net/" target="_blank" rel="noreferrer">https://incusimages.spiritlhl.net/</a></p><p>This mirror source is obtained by me through daily patching, and will be updated daily, what exactly is patched can be found at <a href="https://github.com/oneclickvirt/incus_images" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/incus_images</a> for details.</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remove</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span></span>
|
||||
import{_ as s,c as t,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const i="/assets/lxd1.CbGLa5s4.png",o="/assets/lxd2.C4eWfnaM.png",l="/assets/lxd3.tQBNiKQo.png",p="/assets/lxd4.CSfRHLxz.png",r="/assets/lxd5.WUJi0qzd.png",h="/assets/lxd6.Cnds779U.png",d="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",g="/assets/lxd10.BjQ0l1K7.png",k="/assets/lxd11.D6E5sVW2.png",m="/assets/lxd12.B9udKIzn.png",b="/assets/lxd13.Dwv7xBpz.png",f="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",v="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",S=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_custom.md","filePath":"en/guide/incus/incus_custom.md","lastUpdated":1772085361000}'),B={name:"en/guide/incus/incus_custom.md"};function I(q,e,T,V,A,O){return a(),t("div",null,e[0]||(e[0]=[n(`<h1 id="custom" tabindex="-1">Custom <a class="header-anchor" href="#custom" aria-label="Permalink to "Custom""></a></h1><h2 id="adding-a-customized-mirror-source" tabindex="-1">Adding a customized mirror source <a class="header-anchor" href="#adding-a-customized-mirror-source" aria-label="Permalink to "Adding a customized mirror source""></a></h2><p><a href="https://incusimages.spiritlhl.net/" target="_blank" rel="noreferrer">https://incusimages.spiritlhl.net/</a></p><p>This mirror source is obtained by me through daily patching, and will be updated daily, what exactly is patched can be found at <a href="https://github.com/oneclickvirt/incus_images" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/incus_images</a> for details.</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remove</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://incusimages.spiritlhl.net</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --protocol</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> simplestreams</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --public</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> image</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl:debian</span></span></code></pre></div><h2 id="attach-free-ipv6-address-segments-to-host-machines" tabindex="-1">Attach free IPV6 address segments to host machines <a class="header-anchor" href="#attach-free-ipv6-address-segments-to-host-machines" aria-label="Permalink to "Attach free IPV6 address segments to host machines""></a></h2><p>Some machines don't have an IPV6 /64 subnet on the machine itself, here is a method given to attach an IPV6 subnet for free.</p><p>Here is a solution using the 6in4 method for a host machine that doesn't have an IPV6 address on its own.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The operations on this page must be performed on the original system, and ensure that no other scripts from this project are installed(Except for PVE, which needs to be installed first), as this may lead to environment conflicts.</p></div><p>Here are the platforms that are currently running in 2023 that offer IPV6 subnets for free.</p><table tabindex="0"><thead><tr><th>Supported Platforms</th><th>Corresponding Required Installation Packages</th><th>Protocols</th><th>Number of Channels/Subnets</th></tr></thead><tbody><tr><td>tunnelbroker.net</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64 OR 5✖/64</td></tr><tr><td>tunnelbroker.ch</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64</td></tr><tr><td>ip4market.ru</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td>netassist.ua</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td><a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></td><td>ifupdown2</td><td>sit、gre、ipip</td><td>custom</td></tr></tbody></table><p>The free platform only solves the problem that IPV6 is not available, it does not provide premium IPV6 bandwidth.</p><p>If you need high quality bandwidth, please build your own tunnel. When both ifupdown and ifupdown2 are available, try ifupdown first to see if it can be installed successfully, otherwise install ifupdown2.</p><p>After the installation is complete, select which package is installed behind to convert the format.</p><h3 id="initial-environment-modifications" tabindex="-1">Initial environment modifications <a class="header-anchor" href="#initial-environment-modifications" aria-label="Permalink to "Initial environment modifications""></a></h3><p>Execute</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>touch /etc/cloud/cloud-init.disabled</span></span></code></pre></div><p>Turn off the automated overwrite of cloud-init first, and then to see what the local machine is using to manage the network, run</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>systemctl is-active systemd-networkd</span></span></code></pre></div><p>and</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>systemctl is-active networking</span></span></code></pre></div><p>See which case this falls into, if it's the former active and the latter inactive, you need to reinstall/DD a system that isn't configured this way, or switch the local machine to use ifupdown/ifupdown2 to manage network execution</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span># Judge for yourself whether you need to disable the original network management or not</span></span>
|
||||
<span class="line"><span># systemctl stop systemd-networkd</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as s,c as t,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const i="/assets/lxd1.CbGLa5s4.png",o="/assets/lxd2.C4eWfnaM.png",l="/assets/lxd3.tQBNiKQo.png",p="/assets/lxd4.CSfRHLxz.png",r="/assets/lxd5.WUJi0qzd.png",h="/assets/lxd6.Cnds779U.png",d="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",g="/assets/lxd10.BjQ0l1K7.png",k="/assets/lxd11.D6E5sVW2.png",m="/assets/lxd12.B9udKIzn.png",b="/assets/lxd13.Dwv7xBpz.png",f="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",v="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",S=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_custom.md","filePath":"en/guide/incus/incus_custom.md","lastUpdated":1771138580000}'),B={name:"en/guide/incus/incus_custom.md"};function I(q,e,T,V,A,O){return a(),t("div",null,e[0]||(e[0]=[n("",198)]))}const W=s(B,[["render",I]]);export{S as __pageData,W as default};
|
||||
import{_ as s,c as t,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const i="/assets/lxd1.CbGLa5s4.png",o="/assets/lxd2.C4eWfnaM.png",l="/assets/lxd3.tQBNiKQo.png",p="/assets/lxd4.CSfRHLxz.png",r="/assets/lxd5.WUJi0qzd.png",h="/assets/lxd6.Cnds779U.png",d="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",g="/assets/lxd10.BjQ0l1K7.png",k="/assets/lxd11.D6E5sVW2.png",m="/assets/lxd12.B9udKIzn.png",b="/assets/lxd13.Dwv7xBpz.png",f="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",v="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",S=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_custom.md","filePath":"en/guide/incus/incus_custom.md","lastUpdated":1772085361000}'),B={name:"en/guide/incus/incus_custom.md"};function I(q,e,T,V,A,O){return a(),t("div",null,e[0]||(e[0]=[n("",198)]))}const W=s(B,[["render",I]]);export{S as __pageData,W as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as t,ag as n}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"Custom Configuration","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_extra_config.md","filePath":"en/guide/incus/incus_extra_config.md","lastUpdated":1771138580000}'),e={name:"en/guide/incus/incus_extra_config.md"};function l(p,s,h,o,r,k){return t(),a("div",null,s[0]||(s[0]=[n("",33)]))}const g=i(e,[["render",l]]);export{c as __pageData,g as default};
|
||||
import{_ as i,c as a,o as t,ag as n}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"Custom Configuration","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_extra_config.md","filePath":"en/guide/incus/incus_extra_config.md","lastUpdated":1772085361000}'),e={name:"en/guide/incus/incus_extra_config.md"};function l(p,s,h,o,r,k){return t(),a("div",null,s[0]||(s[0]=[n("",33)]))}const g=i(e,[["render",l]]);export{c as __pageData,g as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as e,o as i,ag as t}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_install.md","filePath":"en/guide/incus/incus_install.md","lastUpdated":1771138580000}'),n={name:"en/guide/incus/incus_install.md"};function l(o,s,p,h,r,d){return i(),e("div",null,s[0]||(s[0]=[t("",39)]))}const k=a(n,[["render",l]]);export{u as __pageData,k as default};
|
||||
import{_ as a,c as e,o as i,ag as t}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_install.md","filePath":"en/guide/incus/incus_install.md","lastUpdated":1772085361000}'),n={name:"en/guide/incus/incus_install.md"};function l(o,s,p,h,r,d){return i(),e("div",null,s[0]||(s[0]=[t("",39)]))}const k=a(n,[["render",l]]);export{u as __pageData,k as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as t,ag as e}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"Running LXC Container in Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_lxc.md","filePath":"en/guide/incus/incus_lxc.md","lastUpdated":1771138580000}'),n={name:"en/guide/incus/incus_lxc.md"};function h(l,s,p,o,r,k){return t(),a("div",null,s[0]||(s[0]=[e("",85)]))}const g=i(n,[["render",h]]);export{c as __pageData,g as default};
|
||||
import{_ as i,c as a,o as t,ag as e}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"Running LXC Container in Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_lxc.md","filePath":"en/guide/incus/incus_lxc.md","lastUpdated":1772085361000}'),n={name:"en/guide/incus/incus_lxc.md"};function h(l,s,p,o,r,k){return t(),a("div",null,s[0]||(s[0]=[e("",85)]))}const g=i(n,[["render",h]]);export{c as __pageData,g as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as t,c as n,o,ag as a}from"./chunks/framework.CSeR4K32.js";const p=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_precheck.md","filePath":"en/guide/incus/incus_precheck.md","lastUpdated":1771138580000}'),r={name:"en/guide/incus/incus_precheck.md"};function i(s,e,c,d,h,l){return o(),n("div",null,e[0]||(e[0]=[a("",15)]))}const m=t(r,[["render",i]]);export{p as __pageData,m as default};
|
||||
import{_ as t,c as n,o,ag as a}from"./chunks/framework.CSeR4K32.js";const p=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_precheck.md","filePath":"en/guide/incus/incus_precheck.md","lastUpdated":1772085361000}'),r={name:"en/guide/incus/incus_precheck.md"};function i(s,e,c,d,h,l){return o(),n("div",null,e[0]||(e[0]=[a("",15)]))}const m=t(r,[["render",i]]);export{p as __pageData,m as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as i,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_qa.md","filePath":"en/guide/incus/incus_qa.md","lastUpdated":1771138580000}'),n={name:"en/guide/incus/incus_qa.md"};function o(h,s,l,p,r,d){return a(),i("div",null,s[0]||(s[0]=[t("",30)]))}const k=e(n,[["render",o]]);export{u as __pageData,k as default};
|
||||
import{_ as e,c as i,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_qa.md","filePath":"en/guide/incus/incus_qa.md","lastUpdated":1772085361000}'),n={name:"en/guide/incus/incus_qa.md"};function o(h,s,l,p,r,d){return a(),i("div",null,s[0]||(s[0]=[t("",30)]))}const k=e(n,[["render",o]]);export{u as __pageData,k as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Running QEMU Virtualized Linux Virtual Machines in Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_qemu.md","filePath":"en/guide/incus/incus_qemu.md","lastUpdated":1771138580000}'),n={name:"en/guide/incus/incus_qemu.md"};function l(r,s,h,d,p,o){return a(),e("div",null,s[0]||(s[0]=[t("",31)]))}const u=i(n,[["render",l]]);export{k as __pageData,u as default};
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const k=JSON.parse('{"title":"Running QEMU Virtualized Linux Virtual Machines in Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_qemu.md","filePath":"en/guide/incus/incus_qemu.md","lastUpdated":1772085361000}'),n={name:"en/guide/incus/incus_qemu.md"};function l(r,s,h,d,p,o){return a(),e("div",null,s[0]||(s[0]=[t("",31)]))}const u=i(n,[["render",l]]);export{k as __pageData,u as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as r,o as n,ag as s}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_thanks.md","filePath":"en/guide/incus/incus_thanks.md","lastUpdated":1771138580000}'),a={name:"en/guide/incus/incus_thanks.md"};function o(i,t,c,p,l,u){return n(),r("div",null,t[0]||(t[0]=[s('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p><a href="https://github.com/zabbly/incus" target="_blank" rel="noreferrer">https://github.com/zabbly/incus</a></p>',10)]))}const g=e(a,[["render",o]]);export{d as __pageData,g as default};
|
||||
import{_ as e,c as r,o as n,ag as s}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_thanks.md","filePath":"en/guide/incus/incus_thanks.md","lastUpdated":1772085361000}'),a={name:"en/guide/incus/incus_thanks.md"};function o(i,t,c,p,l,u){return n(),r("div",null,t[0]||(t[0]=[s('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p><a href="https://github.com/zabbly/incus" target="_blank" rel="noreferrer">https://github.com/zabbly/incus</a></p>',10)]))}const g=e(a,[["render",o]]);export{d as __pageData,g as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as r,o as n,ag as s}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_thanks.md","filePath":"en/guide/incus/incus_thanks.md","lastUpdated":1771138580000}'),a={name:"en/guide/incus/incus_thanks.md"};function o(i,t,c,p,l,u){return n(),r("div",null,t[0]||(t[0]=[s("",10)]))}const g=e(a,[["render",o]]);export{d as __pageData,g as default};
|
||||
import{_ as e,c as r,o as n,ag as s}from"./chunks/framework.CSeR4K32.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_thanks.md","filePath":"en/guide/incus/incus_thanks.md","lastUpdated":1772085361000}'),a={name:"en/guide/incus/incus_thanks.md"};function o(i,t,c,p,l,u){return n(),r("div",null,t[0]||(t[0]=[s("",10)]))}const g=e(a,[["render",o]]);export{d as __pageData,g as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/win1.BYIcp55m.png",l="/assets/win2.BNn7RQzT.jpg",h="/assets/win3.BgsODJcQ.jpg",p="/assets/wintj.tP8uDOfH.jpg",o="/assets/wincf.B_Jc2M1G.jpg",r="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.BSQ3T_9y.jpg",k="/assets/win7.xhBfJRvu.jpg",c="/assets/win6.B-575Zc1.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in Incus","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_windows.md","filePath":"en/guide/incus/incus_windows.md","lastUpdated":1771138580000}'),F={name:"en/guide/incus/incus_windows.md"};function g(u,s,y,m,C,w){return e(),a("div",null,s[0]||(s[0]=[t(`<h1 id="running-windows-virtual-machines-in-incus" tabindex="-1">Running Windows Virtual Machines in Incus <a class="header-anchor" href="#running-windows-virtual-machines-in-incus" aria-label="Permalink to "Running Windows Virtual Machines in Incus""></a></h1><h2 id="verify-the-incus-driver" tabindex="-1">Verify the Incus Driver <a class="header-anchor" href="#verify-the-incus-driver" aria-label="Permalink to "Verify the Incus Driver""></a></h2><p>Ensure that <code>incus info</code> output contains <code>qemu</code>, otherwise you cannot create VMs:</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> info</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> grep</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -i</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> driver:</span></span></code></pre></div><p>If it only shows <code>lxc</code>, no need to read the subsequent tutorials, incus drivers don't support opening a VM.</p><h2 id="prepare-the-environment-and-patch-the-image" tabindex="-1">Prepare the Environment and Patch the Image <a class="header-anchor" href="#prepare-the-environment-and-patch-the-image" aria-label="Permalink to "Prepare the Environment and Patch the Image""></a></h2><p>Execute the following commands in sequence in the <code>/root</code> directory:</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span></span>
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/win1.BYIcp55m.png",l="/assets/win2.BNn7RQzT.jpg",h="/assets/win3.BgsODJcQ.jpg",p="/assets/wintj.tP8uDOfH.jpg",o="/assets/wincf.B_Jc2M1G.jpg",r="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.BSQ3T_9y.jpg",k="/assets/win7.xhBfJRvu.jpg",c="/assets/win6.B-575Zc1.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in Incus","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_windows.md","filePath":"en/guide/incus/incus_windows.md","lastUpdated":1772085361000}'),F={name:"en/guide/incus/incus_windows.md"};function g(u,s,y,m,C,w){return e(),a("div",null,s[0]||(s[0]=[t(`<h1 id="running-windows-virtual-machines-in-incus" tabindex="-1">Running Windows Virtual Machines in Incus <a class="header-anchor" href="#running-windows-virtual-machines-in-incus" aria-label="Permalink to "Running Windows Virtual Machines in Incus""></a></h1><h2 id="verify-the-incus-driver" tabindex="-1">Verify the Incus Driver <a class="header-anchor" href="#verify-the-incus-driver" aria-label="Permalink to "Verify the Incus Driver""></a></h2><p>Ensure that <code>incus info</code> output contains <code>qemu</code>, otherwise you cannot create VMs:</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> info</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> grep</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -i</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> driver:</span></span></code></pre></div><p>If it only shows <code>lxc</code>, no need to read the subsequent tutorials, incus drivers don't support opening a VM.</p><h2 id="prepare-the-environment-and-patch-the-image" tabindex="-1">Prepare the Environment and Patch the Image <a class="header-anchor" href="#prepare-the-environment-and-patch-the-image" aria-label="Permalink to "Prepare the Environment and Patch the Image""></a></h2><p>Execute the following commands in sequence in the <code>/root</code> directory:</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> snapd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> libguestfs-tools</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> wimtools</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rsync</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> libhivex-bin</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> libwin-hivex-perl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> genisoimage</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ||</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mkisofs</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">snap</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> distrobuilder</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --classic</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># reboot to load some config</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/win1.BYIcp55m.png",l="/assets/win2.BNn7RQzT.jpg",h="/assets/win3.BgsODJcQ.jpg",p="/assets/wintj.tP8uDOfH.jpg",o="/assets/wincf.B_Jc2M1G.jpg",r="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.BSQ3T_9y.jpg",k="/assets/win7.xhBfJRvu.jpg",c="/assets/win6.B-575Zc1.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in Incus","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_windows.md","filePath":"en/guide/incus/incus_windows.md","lastUpdated":1771138580000}'),F={name:"en/guide/incus/incus_windows.md"};function g(u,s,y,m,C,w){return e(),a("div",null,s[0]||(s[0]=[t("",64)]))}const f=i(F,[["render",g]]);export{v as __pageData,f as default};
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/win1.BYIcp55m.png",l="/assets/win2.BNn7RQzT.jpg",h="/assets/win3.BgsODJcQ.jpg",p="/assets/wintj.tP8uDOfH.jpg",o="/assets/wincf.B_Jc2M1G.jpg",r="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.BSQ3T_9y.jpg",k="/assets/win7.xhBfJRvu.jpg",c="/assets/win6.B-575Zc1.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in Incus","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_windows.md","filePath":"en/guide/incus/incus_windows.md","lastUpdated":1772085361000}'),F={name:"en/guide/incus/incus_windows.md"};function g(u,s,y,m,C,w){return e(),a("div",null,s[0]||(s[0]=[t("",64)]))}const f=i(F,[["render",g]]);export{v as __pageData,f as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as s,c as t,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const i="/assets/lxd1.CbGLa5s4.png",o="/assets/lxd2.C4eWfnaM.png",l="/assets/lxd3.tQBNiKQo.png",p="/assets/lxd4.CSfRHLxz.png",r="/assets/lxd5.WUJi0qzd.png",h="/assets/lxd6.Cnds779U.png",d="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",g="/assets/lxd10.BjQ0l1K7.png",k="/assets/lxd11.D6E5sVW2.png",m="/assets/lxd12.B9udKIzn.png",b="/assets/lxd13.Dwv7xBpz.png",f="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",v="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",S=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_custom.md","filePath":"en/guide/lxd/lxd_custom.md","lastUpdated":1771138580000}'),B={name:"en/guide/lxd/lxd_custom.md"};function I(q,e,T,V,A,O){return a(),t("div",null,e[0]||(e[0]=[n(`<h1 id="custom" tabindex="-1">Custom <a class="header-anchor" href="#custom" aria-label="Permalink to "Custom""></a></h1><h2 id="adding-a-customized-mirror-source" tabindex="-1">Adding a customized mirror source <a class="header-anchor" href="#adding-a-customized-mirror-source" aria-label="Permalink to "Adding a customized mirror source""></a></h2><p><a href="https://lxdimages.spiritlhl.net/" target="_blank" rel="noreferrer">https://lxdimages.spiritlhl.net/</a></p><p>This mirror source is obtained by me through daily patching, and will be updated daily, what exactly is patched can be found at <a href="https://github.com/oneclickvirt/lxd_images" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/lxd_images</a> for details.</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">lxc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remove</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span></span>
|
||||
import{_ as s,c as t,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const i="/assets/lxd1.CbGLa5s4.png",o="/assets/lxd2.C4eWfnaM.png",l="/assets/lxd3.tQBNiKQo.png",p="/assets/lxd4.CSfRHLxz.png",r="/assets/lxd5.WUJi0qzd.png",h="/assets/lxd6.Cnds779U.png",d="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",g="/assets/lxd10.BjQ0l1K7.png",k="/assets/lxd11.D6E5sVW2.png",m="/assets/lxd12.B9udKIzn.png",b="/assets/lxd13.Dwv7xBpz.png",f="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",v="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",S=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_custom.md","filePath":"en/guide/lxd/lxd_custom.md","lastUpdated":1772085361000}'),B={name:"en/guide/lxd/lxd_custom.md"};function I(q,e,T,V,A,O){return a(),t("div",null,e[0]||(e[0]=[n(`<h1 id="custom" tabindex="-1">Custom <a class="header-anchor" href="#custom" aria-label="Permalink to "Custom""></a></h1><h2 id="adding-a-customized-mirror-source" tabindex="-1">Adding a customized mirror source <a class="header-anchor" href="#adding-a-customized-mirror-source" aria-label="Permalink to "Adding a customized mirror source""></a></h2><p><a href="https://lxdimages.spiritlhl.net/" target="_blank" rel="noreferrer">https://lxdimages.spiritlhl.net/</a></p><p>This mirror source is obtained by me through daily patching, and will be updated daily, what exactly is patched can be found at <a href="https://github.com/oneclickvirt/lxd_images" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/lxd_images</a> for details.</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">lxc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remove</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">lxc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://lxdimages.spiritlhl.net</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --protocol</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> simplestreams</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --public</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">lxc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> image</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl:debian</span></span></code></pre></div><h2 id="attach-free-ipv6-address-segments-to-host-machines" tabindex="-1">Attach free IPV6 address segments to host machines <a class="header-anchor" href="#attach-free-ipv6-address-segments-to-host-machines" aria-label="Permalink to "Attach free IPV6 address segments to host machines""></a></h2><p>Some machines don't have an IPV6 /64 subnet on the machine itself, here is a method given to attach an IPV6 subnet for free.</p><p>Here is a solution using the 6in4 method for a host machine that doesn't have an IPV6 address on its own.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The operations on this page must be performed on the original system, and ensure that no other scripts from this project are installed(Except for PVE, which needs to be installed first), as this may lead to environment conflicts.</p></div><p>Here are the platforms that are currently running in 2023 that offer IPV6 subnets for free.</p><table tabindex="0"><thead><tr><th>Supported Platforms</th><th>Corresponding Required Installation Packages</th><th>Protocols</th><th>Number of Channels/Subnets</th></tr></thead><tbody><tr><td>tunnelbroker.net</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64 OR 5✖/64</td></tr><tr><td>tunnelbroker.ch</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64</td></tr><tr><td>ip4market.ru</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td>netassist.ua</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td><a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></td><td>ifupdown2</td><td>sit、gre、ipip</td><td>custom</td></tr></tbody></table><p>The free platform only solves the problem that IPV6 is not available, it does not provide premium IPV6 bandwidth.</p><p>If you need high quality bandwidth, please build your own tunnel. When both ifupdown and ifupdown2 are available, try ifupdown first to see if it can be installed successfully, otherwise install ifupdown2.</p><p>After the installation is complete, select which package is installed behind to convert the format.</p><h3 id="initial-environment-modifications" tabindex="-1">Initial environment modifications <a class="header-anchor" href="#initial-environment-modifications" aria-label="Permalink to "Initial environment modifications""></a></h3><p>Execute</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>touch /etc/cloud/cloud-init.disabled</span></span></code></pre></div><p>Turn off the automated overwrite of cloud-init first, and then to see what the local machine is using to manage the network, run</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>systemctl is-active systemd-networkd</span></span></code></pre></div><p>and</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>systemctl is-active networking</span></span></code></pre></div><p>See which case this falls into, if it's the former active and the latter inactive, you need to reinstall/DD a system that isn't configured this way, or switch the local machine to use ifupdown/ifupdown2 to manage network execution</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span># Judge for yourself whether you need to disable the original network management or not</span></span>
|
||||
<span class="line"><span># systemctl stop systemd-networkd</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as s,c as t,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const i="/assets/lxd1.CbGLa5s4.png",o="/assets/lxd2.C4eWfnaM.png",l="/assets/lxd3.tQBNiKQo.png",p="/assets/lxd4.CSfRHLxz.png",r="/assets/lxd5.WUJi0qzd.png",h="/assets/lxd6.Cnds779U.png",d="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",g="/assets/lxd10.BjQ0l1K7.png",k="/assets/lxd11.D6E5sVW2.png",m="/assets/lxd12.B9udKIzn.png",b="/assets/lxd13.Dwv7xBpz.png",f="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",v="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",S=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_custom.md","filePath":"en/guide/lxd/lxd_custom.md","lastUpdated":1771138580000}'),B={name:"en/guide/lxd/lxd_custom.md"};function I(q,e,T,V,A,O){return a(),t("div",null,e[0]||(e[0]=[n("",198)]))}const W=s(B,[["render",I]]);export{S as __pageData,W as default};
|
||||
import{_ as s,c as t,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const i="/assets/lxd1.CbGLa5s4.png",o="/assets/lxd2.C4eWfnaM.png",l="/assets/lxd3.tQBNiKQo.png",p="/assets/lxd4.CSfRHLxz.png",r="/assets/lxd5.WUJi0qzd.png",h="/assets/lxd6.Cnds779U.png",d="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",g="/assets/lxd10.BjQ0l1K7.png",k="/assets/lxd11.D6E5sVW2.png",m="/assets/lxd12.B9udKIzn.png",b="/assets/lxd13.Dwv7xBpz.png",f="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",v="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",S=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_custom.md","filePath":"en/guide/lxd/lxd_custom.md","lastUpdated":1772085361000}'),B={name:"en/guide/lxd/lxd_custom.md"};function I(q,e,T,V,A,O){return a(),t("div",null,e[0]||(e[0]=[n("",198)]))}const W=s(B,[["render",I]]);export{S as __pageData,W as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as t,ag as n}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"Custom Configuration","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_extra_config.md","filePath":"en/guide/lxd/lxd_extra_config.md","lastUpdated":1771138580000}'),e={name:"en/guide/lxd/lxd_extra_config.md"};function l(h,s,p,o,r,k){return t(),a("div",null,s[0]||(s[0]=[n("",33)]))}const F=i(e,[["render",l]]);export{c as __pageData,F as default};
|
||||
import{_ as i,c as a,o as t,ag as n}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"Custom Configuration","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_extra_config.md","filePath":"en/guide/lxd/lxd_extra_config.md","lastUpdated":1772085361000}'),e={name:"en/guide/lxd/lxd_extra_config.md"};function l(h,s,p,o,r,k){return t(),a("div",null,s[0]||(s[0]=[n("",33)]))}const F=i(e,[["render",l]]);export{c as __pageData,F as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as t,o as e,ag as i}from"./chunks/framework.CSeR4K32.js";const n="/assets/lxdd1.CVTAIewh.png",l="/assets/lxdd2.C_mYE7sL.png",o="/assets/lxdd3.DZ2Na5-t.png",h="/assets/lxdd4.CO1I1FPh.png",p="/assets/lxdd0.QoEngFSd.png",b=JSON.parse('{"title":"LXD","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_install.md","filePath":"en/guide/lxd/lxd_install.md","lastUpdated":1771138580000}'),r={name:"en/guide/lxd/lxd_install.md"};function d(c,s,k,u,g,m){return e(),t("div",null,s[0]||(s[0]=[i("",61)]))}const F=a(r,[["render",d]]);export{b as __pageData,F as default};
|
||||
import{_ as a,c as t,o as e,ag as i}from"./chunks/framework.CSeR4K32.js";const n="/assets/lxdd1.CVTAIewh.png",l="/assets/lxdd2.C_mYE7sL.png",o="/assets/lxdd3.DZ2Na5-t.png",h="/assets/lxdd4.CO1I1FPh.png",p="/assets/lxdd0.QoEngFSd.png",b=JSON.parse('{"title":"LXD","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_install.md","filePath":"en/guide/lxd/lxd_install.md","lastUpdated":1772085361000}'),r={name:"en/guide/lxd/lxd_install.md"};function d(c,s,k,u,g,m){return e(),t("div",null,s[0]||(s[0]=[i("",61)]))}const F=a(r,[["render",d]]);export{b as __pageData,F as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as t,ag as e}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"LXC virtualization","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_lxc.md","filePath":"en/guide/lxd/lxd_lxc.md","lastUpdated":1771138580000}'),n={name:"en/guide/lxd/lxd_lxc.md"};function h(l,s,p,o,r,k){return t(),a("div",null,s[0]||(s[0]=[e("",81)]))}const F=i(n,[["render",h]]);export{c as __pageData,F as default};
|
||||
import{_ as i,c as a,o as t,ag as e}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"LXC virtualization","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_lxc.md","filePath":"en/guide/lxd/lxd_lxc.md","lastUpdated":1772085361000}'),n={name:"en/guide/lxd/lxd_lxc.md"};function h(l,s,p,o,r,k){return t(),a("div",null,s[0]||(s[0]=[e("",81)]))}const F=i(n,[["render",h]]);export{c as __pageData,F as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as o,o as n,ag as r}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_precheck.md","filePath":"en/guide/lxd/lxd_precheck.md","lastUpdated":1771138580000}'),a={name:"en/guide/lxd/lxd_precheck.md"};function i(s,e,d,c,l,h){return n(),o("div",null,e[0]||(e[0]=[r('<h1 id="preface" tabindex="-1">Preface <a class="header-anchor" href="#preface" aria-label="Permalink to "Preface""></a></h1><p>The following is the introduction of the non-customized part, the customized part has its own corresponding introduction, do not get confused!</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><p>Feel free to give the project a <code>Star</code> for free support!--><a href="https://github.com/oneclickvirt/lxd" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/lxd</a></p><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to "Requirements""></a></h2><p>Hardware requirements.</p><ul><li>System: Ubuntu 18+ (recommended), Debian 8+ (Incus more recommended)</li><li>Virtualization: KVM, VMWARE recommended.</li><li>Memory: At least 512MB of RAM</li><li>Hard disk: hard disk (system disk) at least 10G</li><li>Network: Independent IPV4 address, IPV6 is optional, bandwidth can download scripts on the line, the network can connect to the public network.</li></ul><p>PS: If the hardware is very good and has a lot of resources, you can use PVE to batch open KVM virtualized VMs <a href="https://github.com/oneclickvirt/pve" target="_blank" rel="noreferrer">Jump</a></p><p>PS: If the hardware resources are even worse, virtualization is not supported, you can use the docker version, the adaption surface is wider <a href="https://github.com/oneclickvirt/docker" target="_blank" rel="noreferrer">Jump</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to "Project Features""></a></h2><ul><li><p>This set of script development using <strong>Ubuntu20</strong>, Ubuntu other long-term maintenance version should also be no problem, automatically switch to another storage type if btrfs not supported</p></li><li><p>Set up both TCP and UDP forwarding, in addition to SSH ports, other mapping intranet and extranet ports are the same.</p></li><li><p>Support for docker nested virtualization of open LXC containers has been set up, and the default normal version and pure probe version use the debian11 system.</p></li><li><p>lxcfs has been set to be enabled by default, so that querying resources within a container uses the configured view rather than the host's view</p></li><li><p>Have blocked the container may be used to abuse the toolkit and IPV4 network TCP/UDP protocol ports ( 3389 8888 54321 65432 ), to prevent the container is used for scanning and blasting, and can be external process checking for problems automatically shut down</p></li><li><p>Has supported one-click configuration of IPV6 addresses for LXC containers (provided that the mother hen has an IPV6 subnet, no IPV6 address is not configured), automatically adapted to the size of the subnet</p></li><li><p>Ensure that the disk you want to open is the default system disk (sda or sda1) and not the mounted disk (sdb and so on), if you are not sure, use <code>fdisk -l</code> and <code>df</code> to check.</p></li><li><p>See <a href="https://github.com/oneclickvirt/lxd/blob/main/README_other.md" target="_blank" rel="noreferrer">Other notes</a> for details on mounting other disks.</p></li><li><p>One-click scripts support custom restrictions on all content, the normal version supports multiple runs of the batch generation does not overwrite the previously generated configuration</p></li></ul><h2 id="detecting-the-environment" tabindex="-1">Detecting the environment <a class="header-anchor" href="#detecting-the-environment" aria-label="Permalink to "Detecting the environment""></a></h2><p><strong>Use the subsequent script must execute this command to detect the hen whether it meets the requirements</strong></p><p>Command:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>bash <(wget -qO- --no-check-certificate https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/pre_check.sh)</span></span></code></pre></div>',15)]))}const m=t(a,[["render",i]]);export{u as __pageData,m as default};
|
||||
import{_ as t,c as o,o as n,ag as r}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_precheck.md","filePath":"en/guide/lxd/lxd_precheck.md","lastUpdated":1772085361000}'),a={name:"en/guide/lxd/lxd_precheck.md"};function i(s,e,d,c,l,h){return n(),o("div",null,e[0]||(e[0]=[r('<h1 id="preface" tabindex="-1">Preface <a class="header-anchor" href="#preface" aria-label="Permalink to "Preface""></a></h1><p>The following is the introduction of the non-customized part, the customized part has its own corresponding introduction, do not get confused!</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><p>Feel free to give the project a <code>Star</code> for free support!--><a href="https://github.com/oneclickvirt/lxd" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/lxd</a></p><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to "Requirements""></a></h2><p>Hardware requirements.</p><ul><li>System: Ubuntu 18+ (recommended), Debian 8+ (Incus more recommended)</li><li>Virtualization: KVM, VMWARE recommended.</li><li>Memory: At least 512MB of RAM</li><li>Hard disk: hard disk (system disk) at least 10G</li><li>Network: Independent IPV4 address, IPV6 is optional, bandwidth can download scripts on the line, the network can connect to the public network.</li></ul><p>PS: If the hardware is very good and has a lot of resources, you can use PVE to batch open KVM virtualized VMs <a href="https://github.com/oneclickvirt/pve" target="_blank" rel="noreferrer">Jump</a></p><p>PS: If the hardware resources are even worse, virtualization is not supported, you can use the docker version, the adaption surface is wider <a href="https://github.com/oneclickvirt/docker" target="_blank" rel="noreferrer">Jump</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to "Project Features""></a></h2><ul><li><p>This set of script development using <strong>Ubuntu20</strong>, Ubuntu other long-term maintenance version should also be no problem, automatically switch to another storage type if btrfs not supported</p></li><li><p>Set up both TCP and UDP forwarding, in addition to SSH ports, other mapping intranet and extranet ports are the same.</p></li><li><p>Support for docker nested virtualization of open LXC containers has been set up, and the default normal version and pure probe version use the debian11 system.</p></li><li><p>lxcfs has been set to be enabled by default, so that querying resources within a container uses the configured view rather than the host's view</p></li><li><p>Have blocked the container may be used to abuse the toolkit and IPV4 network TCP/UDP protocol ports ( 3389 8888 54321 65432 ), to prevent the container is used for scanning and blasting, and can be external process checking for problems automatically shut down</p></li><li><p>Has supported one-click configuration of IPV6 addresses for LXC containers (provided that the mother hen has an IPV6 subnet, no IPV6 address is not configured), automatically adapted to the size of the subnet</p></li><li><p>Ensure that the disk you want to open is the default system disk (sda or sda1) and not the mounted disk (sdb and so on), if you are not sure, use <code>fdisk -l</code> and <code>df</code> to check.</p></li><li><p>See <a href="https://github.com/oneclickvirt/lxd/blob/main/README_other.md" target="_blank" rel="noreferrer">Other notes</a> for details on mounting other disks.</p></li><li><p>One-click scripts support custom restrictions on all content, the normal version supports multiple runs of the batch generation does not overwrite the previously generated configuration</p></li></ul><h2 id="detecting-the-environment" tabindex="-1">Detecting the environment <a class="header-anchor" href="#detecting-the-environment" aria-label="Permalink to "Detecting the environment""></a></h2><p><strong>Use the subsequent script must execute this command to detect the hen whether it meets the requirements</strong></p><p>Command:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>bash <(wget -qO- --no-check-certificate https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/pre_check.sh)</span></span></code></pre></div>',15)]))}const m=t(a,[["render",i]]);export{u as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as o,o as n,ag as r}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_precheck.md","filePath":"en/guide/lxd/lxd_precheck.md","lastUpdated":1771138580000}'),a={name:"en/guide/lxd/lxd_precheck.md"};function i(s,e,d,c,l,h){return n(),o("div",null,e[0]||(e[0]=[r("",15)]))}const m=t(a,[["render",i]]);export{u as __pageData,m as default};
|
||||
import{_ as t,c as o,o as n,ag as r}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_precheck.md","filePath":"en/guide/lxd/lxd_precheck.md","lastUpdated":1772085361000}'),a={name:"en/guide/lxd/lxd_precheck.md"};function i(s,e,d,c,l,h){return n(),o("div",null,e[0]||(e[0]=[r("",15)]))}const m=t(a,[["render",i]]);export{u as __pageData,m as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as t,o as s,ag as i}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_qa.md","filePath":"en/guide/lxd/lxd_qa.md","lastUpdated":1771138580000}'),n={name:"en/guide/lxd/lxd_qa.md"};function o(p,e,d,r,l,h){return s(),t("div",null,e[0]||(e[0]=[i("",22)]))}const k=a(n,[["render",o]]);export{u as __pageData,k as default};
|
||||
import{_ as a,c as t,o as s,ag as i}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_qa.md","filePath":"en/guide/lxd/lxd_qa.md","lastUpdated":1772085361000}'),n={name:"en/guide/lxd/lxd_qa.md"};function o(p,e,d,r,l,h){return s(),t("div",null,e[0]||(e[0]=[i("",22)]))}const k=a(n,[["render",o]]);export{u as __pageData,k as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as i,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"QEMU virtualization","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_qemu.md","filePath":"en/guide/lxd/lxd_qemu.md","lastUpdated":1771138580000}'),l={name:"en/guide/lxd/lxd_qemu.md"};function n(r,s,h,d,p,o){return a(),i("div",null,s[0]||(s[0]=[t("",31)]))}const g=e(l,[["render",n]]);export{c as __pageData,g as default};
|
||||
import{_ as e,c as i,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const c=JSON.parse('{"title":"QEMU virtualization","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_qemu.md","filePath":"en/guide/lxd/lxd_qemu.md","lastUpdated":1772085361000}'),l={name:"en/guide/lxd/lxd_qemu.md"};function n(r,s,h,d,p,o){return a(),i("div",null,s[0]||(s[0]=[t("",31)]))}const g=e(l,[["render",n]]);export{c as __pageData,g as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as r,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/lxd/lxd_thanks.md","filePath":"en/guide/lxd/lxd_thanks.md","lastUpdated":1771138580000}'),s={name:"en/guide/lxd/lxd_thanks.md"};function o(i,e,l,p,c,d){return a(),r("div",null,e[0]||(e[0]=[n('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://lxdware.com/" target="_blank" rel="noreferrer">https://lxdware.com/</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p><a href="https://images.opsmaru.dev/" target="_blank" rel="noreferrer">https://images.opsmaru.dev/</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> <a href="https://github.com/fscarmen" target="_blank" rel="noreferrer">@fscarmen</a> for providing guidance.</p>',12)]))}const g=t(s,[["render",o]]);export{u as __pageData,g as default};
|
||||
import{_ as t,c as r,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/lxd/lxd_thanks.md","filePath":"en/guide/lxd/lxd_thanks.md","lastUpdated":1772085361000}'),s={name:"en/guide/lxd/lxd_thanks.md"};function o(i,e,l,p,c,d){return a(),r("div",null,e[0]||(e[0]=[n('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://lxdware.com/" target="_blank" rel="noreferrer">https://lxdware.com/</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p><a href="https://images.opsmaru.dev/" target="_blank" rel="noreferrer">https://images.opsmaru.dev/</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> <a href="https://github.com/fscarmen" target="_blank" rel="noreferrer">@fscarmen</a> for providing guidance.</p>',12)]))}const g=t(s,[["render",o]]);export{u as __pageData,g as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as r,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/lxd/lxd_thanks.md","filePath":"en/guide/lxd/lxd_thanks.md","lastUpdated":1771138580000}'),s={name:"en/guide/lxd/lxd_thanks.md"};function o(i,e,l,p,c,d){return a(),r("div",null,e[0]||(e[0]=[n("",12)]))}const g=t(s,[["render",o]]);export{u as __pageData,g as default};
|
||||
import{_ as t,c as r,o as a,ag as n}from"./chunks/framework.CSeR4K32.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/lxd/lxd_thanks.md","filePath":"en/guide/lxd/lxd_thanks.md","lastUpdated":1772085361000}'),s={name:"en/guide/lxd/lxd_thanks.md"};function o(i,e,l,p,c,d){return a(),r("div",null,e[0]||(e[0]=[n("",12)]))}const g=t(s,[["render",o]]);export{u as __pageData,g as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/win1.CJKAoRm5.png",l="/assets/win2.BNn7RQzT.jpg",h="/assets/win3.BgsODJcQ.jpg",p="/assets/wintj.tP8uDOfH.jpg",o="/assets/wincf.B_Jc2M1G.jpg",r="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.C8qmMo1u.jpg",k="/assets/win7.CI43Ul0V.jpg",c="/assets/win6.Cx0KdzQb.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in LXD","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/lxd/lxd_windows.md","filePath":"en/guide/lxd/lxd_windows.md","lastUpdated":1771138580000}'),F={name:"en/guide/lxd/lxd_windows.md"};function g(u,s,m,y,C,w){return a(),e("div",null,s[0]||(s[0]=[t(`<h1 id="running-windows-virtual-machines-in-lxd" tabindex="-1">Running Windows Virtual Machines in LXD <a class="header-anchor" href="#running-windows-virtual-machines-in-lxd" aria-label="Permalink to "Running Windows Virtual Machines in LXD""></a></h1><h2 id="verify-the-lxd-driver" tabindex="-1">Verify the LXD Driver <a class="header-anchor" href="#verify-the-lxd-driver" aria-label="Permalink to "Verify the LXD Driver""></a></h2><p>Ensure that <code>lxc info</code> output contains <code>qemu</code>, otherwise you cannot create VMs:</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">lxc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> info</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> grep</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -i</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> driver:</span></span></code></pre></div><p>If it only shows <code>lxc</code>, no need to read the subsequent tutorials, lxd drivers don't support opening a VM.</p><h2 id="prepare-the-environment-and-patch-the-image" tabindex="-1">Prepare the Environment and Patch the Image <a class="header-anchor" href="#prepare-the-environment-and-patch-the-image" aria-label="Permalink to "Prepare the Environment and Patch the Image""></a></h2><p>Execute the following commands in sequence in the <code>/root</code> directory:</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span></span>
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/win1.CJKAoRm5.png",l="/assets/win2.BNn7RQzT.jpg",h="/assets/win3.BgsODJcQ.jpg",p="/assets/wintj.tP8uDOfH.jpg",o="/assets/wincf.B_Jc2M1G.jpg",r="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.C8qmMo1u.jpg",k="/assets/win7.CI43Ul0V.jpg",c="/assets/win6.Cx0KdzQb.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in LXD","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/lxd/lxd_windows.md","filePath":"en/guide/lxd/lxd_windows.md","lastUpdated":1772085361000}'),F={name:"en/guide/lxd/lxd_windows.md"};function g(u,s,m,y,C,w){return a(),e("div",null,s[0]||(s[0]=[t(`<h1 id="running-windows-virtual-machines-in-lxd" tabindex="-1">Running Windows Virtual Machines in LXD <a class="header-anchor" href="#running-windows-virtual-machines-in-lxd" aria-label="Permalink to "Running Windows Virtual Machines in LXD""></a></h1><h2 id="verify-the-lxd-driver" tabindex="-1">Verify the LXD Driver <a class="header-anchor" href="#verify-the-lxd-driver" aria-label="Permalink to "Verify the LXD Driver""></a></h2><p>Ensure that <code>lxc info</code> output contains <code>qemu</code>, otherwise you cannot create VMs:</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">lxc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> info</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> grep</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -i</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> driver:</span></span></code></pre></div><p>If it only shows <code>lxc</code>, no need to read the subsequent tutorials, lxd drivers don't support opening a VM.</p><h2 id="prepare-the-environment-and-patch-the-image" tabindex="-1">Prepare the Environment and Patch the Image <a class="header-anchor" href="#prepare-the-environment-and-patch-the-image" aria-label="Permalink to "Prepare the Environment and Patch the Image""></a></h2><p>Execute the following commands in sequence in the <code>/root</code> directory:</p><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> snapd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> libguestfs-tools</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> wimtools</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rsync</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> libhivex-bin</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> libwin-hivex-perl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> genisoimage</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ||</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mkisofs</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">snap</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> lxd-imagebuilder</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --classic</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --edge</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># reboot to load some config</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/win1.CJKAoRm5.png",l="/assets/win2.BNn7RQzT.jpg",h="/assets/win3.BgsODJcQ.jpg",p="/assets/wintj.tP8uDOfH.jpg",o="/assets/wincf.B_Jc2M1G.jpg",r="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.C8qmMo1u.jpg",k="/assets/win7.CI43Ul0V.jpg",c="/assets/win6.Cx0KdzQb.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in LXD","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/lxd/lxd_windows.md","filePath":"en/guide/lxd/lxd_windows.md","lastUpdated":1771138580000}'),F={name:"en/guide/lxd/lxd_windows.md"};function g(u,s,m,y,C,w){return a(),e("div",null,s[0]||(s[0]=[t("",63)]))}const b=i(F,[["render",g]]);export{v as __pageData,b as default};
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/win1.CJKAoRm5.png",l="/assets/win2.BNn7RQzT.jpg",h="/assets/win3.BgsODJcQ.jpg",p="/assets/wintj.tP8uDOfH.jpg",o="/assets/wincf.B_Jc2M1G.jpg",r="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.C8qmMo1u.jpg",k="/assets/win7.CI43Ul0V.jpg",c="/assets/win6.Cx0KdzQb.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in LXD","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/lxd/lxd_windows.md","filePath":"en/guide/lxd/lxd_windows.md","lastUpdated":1772085361000}'),F={name:"en/guide/lxd/lxd_windows.md"};function g(u,s,m,y,C,w){return a(),e("div",null,s[0]||(s[0]=[t("",63)]))}const b=i(F,[["render",g]]);export{v as __pageData,b as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/proxy.Dm-mUL3T.png",l="/assets/init.CCPKl32d.png",p="/assets/init_success.DAbHwjWK.png",h="/assets/home.BlmfOIEU.png",y=JSON.parse('{"title":"OneClickVirt","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_install.md","filePath":"en/guide/oneclickvirt/oneclickvirt_install.md","lastUpdated":1771138580000}'),o={name:"en/guide/oneclickvirt/oneclickvirt_install.md"};function r(d,s,k,c,g,F){return e(),a("div",null,s[0]||(s[0]=[t("",155)]))}const m=i(o,[["render",r]]);export{y as __pageData,m as default};
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/proxy.Dm-mUL3T.png",l="/assets/init.CCPKl32d.png",p="/assets/init_success.DAbHwjWK.png",h="/assets/home.BlmfOIEU.png",y=JSON.parse('{"title":"OneClickVirt","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_install.md","filePath":"en/guide/oneclickvirt/oneclickvirt_install.md","lastUpdated":1772085361000}'),o={name:"en/guide/oneclickvirt/oneclickvirt_install.md"};function r(d,s,k,c,g,F){return e(),a("div",null,s[0]||(s[0]=[t("",155)]))}const m=i(o,[["render",r]]);export{y as __pageData,m as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as t,c as a,o as i,ag as n}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_precheck.md","filePath":"en/guide/oneclickvirt/oneclickvirt_precheck.md","lastUpdated":1771138580000}'),o={name:"en/guide/oneclickvirt/oneclickvirt_precheck.md"};function r(s,e,p,l,c,d){return i(),a("div",null,e[0]||(e[0]=[n(`<h1 id="preface" tabindex="-1">Preface <a class="header-anchor" href="#preface" aria-label="Permalink to "Preface""></a></h1><p>This is a control panel for interfacing with mainstream virtualization technologies, supplementing features not natively supported by virtualization platforms such as user management, traffic monitoring, NAT port mapping, and custom system images.</p><p>Welcome to support the project with a <code>Star</code> for free --> <a href="https://github.com/oneclickvirt/oneclickvirt" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/oneclickvirt</a></p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>This is a project in early development and may have various bugs and instabilities. Please assess the risks before use. Updates will be relatively frequent.</p></div><h2 id="environment-requirements" tabindex="-1">Environment Requirements <a class="header-anchor" href="#environment-requirements" aria-label="Permalink to "Environment Requirements""></a></h2><p>Supported architectures: amd64 or arm64</p><p>Supported systems: Linux, Windows, or any self-compiled system architecture</p><p>Only requires public network access. The deployed machine does not need an independent public IP address. This is just a virtualization control panel that only needs port display for the frontend. In fact, one important reason for development is that I need to manage multiple virtualization environments without a public IPv4 address.</p><p>This control panel has no special environmental dependency requirements. For one-click deployment, you can use the all-in-one Docker image with database included or docker-compose deployment with separated containers.</p><p>Frontend static files are deployed through <code>nginx</code> or <code>caddy</code> or <code>OpenResty</code>. For non-source code deployment and non-Docker deployment, API path reverse proxy to the backend port is required.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Managed nodes require the host machine's network interface to be directly bound to the IP address to be mapped, such as a public IP. Host machines providing the IP to be mapped via methods like port mapping (e.g., Alibaba Cloud VPC) or NAT forwarding are not supported. Host machines providing the IP to be mapped using full-port NAT or port forwarding cannot serve as node machines. (Simply put, if a cloud server has a public IP address, this IP must be directly bound to the network interface card. It cannot be a scenario where the NIC only has an internal IP without a public IP, with traffic routing through the internal IP and then being forwarded to the public IP.)</p></div><h2 id="platform-features" tabindex="-1">Platform Features <a class="header-anchor" href="#platform-features" aria-label="Permalink to "Platform Features""></a></h2><ul><li><p>Language internationalization: Frontend supports bilingual display in Chinese and English, defaults to Chinese display, with switchable default system language</p></li><li><p>Provider Integration: Supports ProxmoxVE, Incus, Docker, LXD - four major mainstream virtualization platforms, with more platforms coming soon</p></li><li><p>Flexible Instance Types: Supports automatic creation of virtual machines (VM) and containers (Container), providing a unified virtualization resource management experience through abstraction design</p></li><li><p>Built-in Image Seed Data: No need to search for platform-specific images yourself. All platforms come with self-compiled image loading, supporting unified management or custom image download URLs</p></li><li><p>Automatic NAT Port Mapping: Supports automatic port mapping for IPv4/IPv6, with mapped IPs supporting non-public IPs. Supports multiple network types:</p></li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>NAT IPv4</span></span>
|
||||
import{_ as t,c as a,o as i,ag as n}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_precheck.md","filePath":"en/guide/oneclickvirt/oneclickvirt_precheck.md","lastUpdated":1772085361000}'),o={name:"en/guide/oneclickvirt/oneclickvirt_precheck.md"};function r(s,e,p,l,c,d){return i(),a("div",null,e[0]||(e[0]=[n(`<h1 id="preface" tabindex="-1">Preface <a class="header-anchor" href="#preface" aria-label="Permalink to "Preface""></a></h1><p>This is a control panel for interfacing with mainstream virtualization technologies, supplementing features not natively supported by virtualization platforms such as user management, traffic monitoring, NAT port mapping, and custom system images.</p><p>Welcome to support the project with a <code>Star</code> for free --> <a href="https://github.com/oneclickvirt/oneclickvirt" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/oneclickvirt</a></p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>This is a project in early development and may have various bugs and instabilities. Please assess the risks before use. Updates will be relatively frequent.</p></div><h2 id="environment-requirements" tabindex="-1">Environment Requirements <a class="header-anchor" href="#environment-requirements" aria-label="Permalink to "Environment Requirements""></a></h2><p>Supported architectures: amd64 or arm64</p><p>Supported systems: Linux, Windows, or any self-compiled system architecture</p><p>Only requires public network access. The deployed machine does not need an independent public IP address. This is just a virtualization control panel that only needs port display for the frontend. In fact, one important reason for development is that I need to manage multiple virtualization environments without a public IPv4 address.</p><p>This control panel has no special environmental dependency requirements. For one-click deployment, you can use the all-in-one Docker image with database included or docker-compose deployment with separated containers.</p><p>Frontend static files are deployed through <code>nginx</code> or <code>caddy</code> or <code>OpenResty</code>. For non-source code deployment and non-Docker deployment, API path reverse proxy to the backend port is required.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Managed nodes require the host machine's network interface to be directly bound to the IP address to be mapped, such as a public IP. Host machines providing the IP to be mapped via methods like port mapping (e.g., Alibaba Cloud VPC) or NAT forwarding are not supported. Host machines providing the IP to be mapped using full-port NAT or port forwarding cannot serve as node machines. (Simply put, if a cloud server has a public IP address, this IP must be directly bound to the network interface card. It cannot be a scenario where the NIC only has an internal IP without a public IP, with traffic routing through the internal IP and then being forwarded to the public IP.)</p></div><h2 id="platform-features" tabindex="-1">Platform Features <a class="header-anchor" href="#platform-features" aria-label="Permalink to "Platform Features""></a></h2><ul><li><p>Language internationalization: Frontend supports bilingual display in Chinese and English, defaults to Chinese display, with switchable default system language</p></li><li><p>Provider Integration: Supports ProxmoxVE, Incus, Docker, LXD - four major mainstream virtualization platforms, with more platforms coming soon</p></li><li><p>Flexible Instance Types: Supports automatic creation of virtual machines (VM) and containers (Container), providing a unified virtualization resource management experience through abstraction design</p></li><li><p>Built-in Image Seed Data: No need to search for platform-specific images yourself. All platforms come with self-compiled image loading, supporting unified management or custom image download URLs</p></li><li><p>Automatic NAT Port Mapping: Supports automatic port mapping for IPv4/IPv6, with mapped IPs supporting non-public IPs. Supports multiple network types:</p></li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>NAT IPv4</span></span>
|
||||
<span class="line"><span>NAT IPv4 + Independent IPv6</span></span>
|
||||
<span class="line"><span>Independent IPv4</span></span>
|
||||
<span class="line"><span>Independent IPv4 + IPv6</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as a,o as i,ag as n}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_precheck.md","filePath":"en/guide/oneclickvirt/oneclickvirt_precheck.md","lastUpdated":1771138580000}'),o={name:"en/guide/oneclickvirt/oneclickvirt_precheck.md"};function r(s,e,p,l,c,d){return i(),a("div",null,e[0]||(e[0]=[n("",15)]))}const h=t(o,[["render",r]]);export{m as __pageData,h as default};
|
||||
import{_ as t,c as a,o as i,ag as n}from"./chunks/framework.CSeR4K32.js";const m=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_precheck.md","filePath":"en/guide/oneclickvirt/oneclickvirt_precheck.md","lastUpdated":1772085361000}'),o={name:"en/guide/oneclickvirt/oneclickvirt_precheck.md"};function r(s,e,p,l,c,d){return i(),a("div",null,e[0]||(e[0]=[n("",15)]))}const h=t(o,[["render",r]]);export{m as __pageData,h as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/iofailed.BIGD2fYy.png",g=JSON.parse('{"title":"Please Report Issues to the Corresponding Repository","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_qa.md","filePath":"en/guide/oneclickvirt/oneclickvirt_qa.md","lastUpdated":1771138580000}'),l={name:"en/guide/oneclickvirt/oneclickvirt_qa.md"};function p(h,s,o,r,k,d){return e(),a("div",null,s[0]||(s[0]=[t(`<h1 id="please-report-issues-to-the-corresponding-repository" tabindex="-1">Please Report Issues to the Corresponding Repository <a class="header-anchor" href="#please-report-issues-to-the-corresponding-repository" aria-label="Permalink to "Please Report Issues to the Corresponding Repository""></a></h1><h2 id="what-to-do-if-you-forgot-the-administrator-password" tabindex="-1">What to Do If You Forgot the Administrator Password <a class="header-anchor" href="#what-to-do-if-you-forgot-the-administrator-password" aria-label="Permalink to "What to Do If You Forgot the Administrator Password""></a></h2><p>You need to forcibly change the password through database operations</p><ol><li>Generate Password Hash</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Generate using Python (replace NewPassword123! with your new password)</span></span>
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/iofailed.BIGD2fYy.png",g=JSON.parse('{"title":"Please Report Issues to the Corresponding Repository","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_qa.md","filePath":"en/guide/oneclickvirt/oneclickvirt_qa.md","lastUpdated":1772085361000}'),l={name:"en/guide/oneclickvirt/oneclickvirt_qa.md"};function p(h,s,o,r,k,d){return e(),a("div",null,s[0]||(s[0]=[t(`<h1 id="please-report-issues-to-the-corresponding-repository" tabindex="-1">Please Report Issues to the Corresponding Repository <a class="header-anchor" href="#please-report-issues-to-the-corresponding-repository" aria-label="Permalink to "Please Report Issues to the Corresponding Repository""></a></h1><h2 id="what-to-do-if-you-forgot-the-administrator-password" tabindex="-1">What to Do If You Forgot the Administrator Password <a class="header-anchor" href="#what-to-do-if-you-forgot-the-administrator-password" aria-label="Permalink to "What to Do If You Forgot the Administrator Password""></a></h2><p>You need to forcibly change the password through database operations</p><ol><li>Generate Password Hash</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Generate using Python (replace NewPassword123! with your new password)</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">python3</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -c</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "import bcrypt; print(bcrypt.hashpw(b'NewPassword123!', bcrypt.gensalt()).decode('utf-8'))"</span></span></code></pre></div><p>Example output: <code>$2b$12$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</code></p><ol start="2"><li>Enter the Database</li></ol><p><strong>Docker Deployment (All-in-One Version):</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> exec</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -it</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> oneclickvirt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mysql</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -u</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> root</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> oneclickvirt</span></span></code></pre></div><p><strong>Standalone Database Deployment:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">mysql</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -h</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 127.0.0.1</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -P</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 3306</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -u</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> root</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> oneclickvirt</span></span></code></pre></div><ol start="3"><li>Update Password</li></ol><div class="language-sql vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">sql</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">-- View administrator account</span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">SELECT</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> id, username, user_type </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">FROM</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> users </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">WHERE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> user_type </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'admin'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/iofailed.BIGD2fYy.png",g=JSON.parse('{"title":"Please Report Issues to the Corresponding Repository","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_qa.md","filePath":"en/guide/oneclickvirt/oneclickvirt_qa.md","lastUpdated":1771138580000}'),l={name:"en/guide/oneclickvirt/oneclickvirt_qa.md"};function p(h,s,o,r,k,d){return e(),a("div",null,s[0]||(s[0]=[t("",54)]))}const F=i(l,[["render",p]]);export{g as __pageData,F as default};
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.CSeR4K32.js";const n="/assets/iofailed.BIGD2fYy.png",g=JSON.parse('{"title":"Please Report Issues to the Corresponding Repository","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_qa.md","filePath":"en/guide/oneclickvirt/oneclickvirt_qa.md","lastUpdated":1772085361000}'),l={name:"en/guide/oneclickvirt/oneclickvirt_qa.md"};function p(h,s,o,r,k,d){return e(),a("div",null,s[0]||(s[0]=[t("",54)]))}const F=i(l,[["render",p]]);export{g as __pageData,F as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as r,o,ag as a}from"./chunks/framework.CSeR4K32.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_thanks.md","filePath":"en/guide/oneclickvirt/oneclickvirt_thanks.md","lastUpdated":1771138580000}'),s={name:"en/guide/oneclickvirt/oneclickvirt_thanks.md"};function n(c,e,i,l,m,p){return o(),r("div",null,e[0]||(e[0]=[a('<h2 id="acknowledgments" tabindex="-1">Acknowledgments <a class="header-anchor" href="#acknowledgments" aria-label="Permalink to "Acknowledgments""></a></h2><p>We extend our gratitude to the following platforms for providing servers available for testing.</p><p><a href="https://console.zmto.com/?affid=1524" target="_blank" rel="noreferrer">https://console.zmto.com/</a></p><p><a href="https://fossvps.org/" target="_blank" rel="noreferrer">https://fossvps.org/</a></p><p><a href="https://community.ibm.com/zsystems/form/l1cc-oss-vm-request/" target="_blank" rel="noreferrer">https://community.ibm.com/zsystems/form/l1cc-oss-vm-request/</a></p>',5)]))}const f=t(s,[["render",n]]);export{_ as __pageData,f as default};
|
||||
import{_ as t,c as r,o,ag as a}from"./chunks/framework.CSeR4K32.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/oneclickvirt/oneclickvirt_thanks.md","filePath":"en/guide/oneclickvirt/oneclickvirt_thanks.md","lastUpdated":1772085361000}'),s={name:"en/guide/oneclickvirt/oneclickvirt_thanks.md"};function n(c,e,i,l,m,p){return o(),r("div",null,e[0]||(e[0]=[a('<h2 id="acknowledgments" tabindex="-1">Acknowledgments <a class="header-anchor" href="#acknowledgments" aria-label="Permalink to "Acknowledgments""></a></h2><p>We extend our gratitude to the following platforms for providing servers available for testing.</p><p><a href="https://console.zmto.com/?affid=1524" target="_blank" rel="noreferrer">https://console.zmto.com/</a></p><p><a href="https://fossvps.org/" target="_blank" rel="noreferrer">https://fossvps.org/</a></p><p><a href="https://community.ibm.com/zsystems/form/l1cc-oss-vm-request/" target="_blank" rel="noreferrer">https://community.ibm.com/zsystems/form/l1cc-oss-vm-request/</a></p>',5)]))}const f=t(s,[["render",n]]);export{_ as __pageData,f as default};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user