Skip to content

Commit 1ae82e8

Browse files
authored
Document (#266)
1 parent 56b0ba0 commit 1ae82e8

29 files changed

+1084
-238
lines changed

.github/workflows/deploy.yml

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -44,23 +44,6 @@ jobs:
4444
node-version: 21
4545
cache: pnpm # 或 pnpm / yarn
4646

47-
# - name: Clone EasyTier
48-
# uses: GuillaumeFalourd/clone-github-repo-action@v2.3
49-
# with:
50-
# depth: 1
51-
# branch: 'main'
52-
# owner: 'EasyTier'
53-
# repository: 'EasyTier'
54-
# - name: Build EasyTier Web
55-
# run: |
56-
# cd EasyTier
57-
# pnpm -r install
58-
# WEB_BASE_URL=/web pnpm -r build
59-
# cd ..
60-
# mkdir -p public/web
61-
# cp -r EasyTier/easytier-web/frontend/dist/* public/web/
62-
# rm -rf EasyTier
63-
6447
- name: Setup Pages
6548
uses: actions/configure-pages@v4
6649
- name: Install dependencies

.vitepress/config/cn.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export const cn = defineConfig({
1212
text: '开始',
1313
items: [
1414
{ text: '功能简介', link: '/guide/introduction' },
15+
{ text: '下载', link: '/guide/download' },
1516
{ text: '安装 CLI', link: '/guide/installation' },
1617
{ text: '安装 GUI', link: '/guide/installation_gui' },
1718
{ text: '常见问题', link: '/guide/faq' },
@@ -21,6 +22,7 @@ export const cn = defineConfig({
2122
text: '命令行工具组网',
2223
link: '/guide/networking',
2324
items: [
25+
{ text: '快速组网', link: '/guide/network/quick-networking' },
2426
{ text: '去中心组网', link: '/guide/network/decentralized-networking' },
2527
{ text: '使用 Web 控制台组网', link: '/guide/network/web-console' },
2628
{ text: '使用 WireGuard 客户端接入', link: '/guide/network/use-easytier-with-wireguard-client' },
@@ -49,6 +51,7 @@ export const cn = defineConfig({
4951
text: '图形界面 GUI 组网',
5052
link: 'guide/gui/index',
5153
items: [
54+
{ text: '共享节点组网', link: '/guide/gui/basic' },
5255
{ text: '手动组网', link: '/guide/gui/manual' },
5356
{ text: 'WireGuard 接入', link: '/guide/gui/vpn_portal' },
5457
{ text: '子网代理', link: '/guide/gui/subnet_proxy' },
@@ -73,6 +76,14 @@ export const cn = defineConfig({
7376
},
7477
],
7578
nav: [
79+
{
80+
text: '<iconify-icon icon="fa6-solid:bug" style="margin-right:0.25rem;color:#FF4500;" alt="bug"></iconify-icon>提交反馈',
81+
link: 'https://github.com/EasyTier/EasyTier/issues',
82+
},
83+
{
84+
text: '<iconify-icon icon="fa6-solid:clipboard-list" style="margin-right:0.25rem;color:#FF6347;" alt="clipboard"></iconify-icon>变更日志',
85+
link: 'https://github.com/EasyTier/EasyTier/releases',
86+
},
7687
],
7788
footer: {
7889
message: '基于 Apache License 2.0 许可发布',

.vitepress/config/en.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export const en = defineConfig({
1212
text: 'Getting Started',
1313
items: [
1414
{ text: 'Introduction', link: '/en/guide/introduction' },
15+
{ text: 'Download', link: '/en/guide/download' },
1516
{ text: 'Installation CLI', link: '/en/guide/installation' },
1617
{ text: 'Installation GUI', link: '/en/guide/installation_gui' },
1718
{ text: 'FAQ', link: '/en/guide/faq' },
@@ -21,6 +22,7 @@ export const en = defineConfig({
2122
text: 'Command Line Networking',
2223
link: '/en/guide/networking',
2324
items: [
25+
{ text: 'Quick Networking', link: '/en/guide/network/quick-networking' },
2426
{ text: 'Decentralized Networking', link: '/en/guide/network/decentralized-networking' },
2527
{ text: 'Networking with Web Console', link: '/en/guide/network/web-console' },
2628
{ text: 'Using WireGuard Client', link: '/en/guide/network/use-easytier-with-wireguard-client' },
@@ -49,6 +51,7 @@ export const en = defineConfig({
4951
text: 'GUI Networking',
5052
link: '/en/guide/gui/index',
5153
items: [
54+
{ text: 'Shared Node Networking', link: '/en/guide/gui/basic' },
5255
{ text: 'Manual Networking', link: '/en/guide/gui/manual' },
5356
{ text: 'WireGuard Access', link: '/en/guide/gui/vpn_portal' },
5457
{ text: 'Subnet Proxy', link: '/en/guide/gui/subnet_proxy' },
@@ -70,6 +73,14 @@ export const en = defineConfig({
7073
},
7174
],
7275
nav: [
76+
{
77+
text: '<iconify-icon icon="fa6-solid:bug" style="margin-right:0.25rem;color:#FF4500;" alt="bug"></iconify-icon>Submit Feedback',
78+
link: 'https://github.com/EasyTier/EasyTier/issues',
79+
},
80+
{
81+
text: '<iconify-icon icon="fa6-solid:clipboard-list" style="margin-right:0.25rem;color:#FF6347;" alt="clipboard"></iconify-icon>Changelog',
82+
link: 'https://github.com/EasyTier/EasyTier/releases',
83+
},
7384
],
7485
footer: {
7586
message: 'Released under the Apache License 2.0',

.vitepress/config/index.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,27 @@ export default withMermaid({
3232
},
3333
},
3434
socialLinks: [
35+
{
36+
icon: 'github',
37+
link: 'https://github.com/EasyTier/Easytier',
38+
ariaLabel: 'Github',
39+
},
3540
{
3641
icon: 'gmail',
37-
link: 'mailto:sunsijie@buaa.edu.cn',
42+
link: 'mailto:443152178@qq.com',
3843
ariaLabel: 'Email',
3944
},
4045
{
4146
icon: 'qq',
4247
link: 'https://qm.qq.com/q/wFoTUChqZW',
4348
ariaLabel: 'qq',
4449
},
50+
{
51+
icon: {
52+
svg: '<iconify-icon icon="twemoji:red-heart" style="font-size:1.2em" alt="Github Sponsors"></iconify-icon>',
53+
},
54+
link: '/#sponsor',
55+
},
4556
],
4657
},
4758
locales: {

.vitepress/data/Twikoo.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

.vitepress/theme/layout.vue

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<script setup lang="ts">
2-
import { ShareButton, Twikoo } from '@theojs/lumen'
2+
import { ShareButton } from '@theojs/lumen'
33
import { useData } from 'vitepress'
44
import DefaultTheme from 'vitepress/theme'
55
66
import { h, nextTick, provide } from 'vue'
77
8-
import { Twikoo_Data } from '../data/Twikoo'
8+
99
1010
const { isDark } = useData()
1111
@@ -45,7 +45,6 @@ provide('toggle-appearance', async ({ clientX: x, clientY: y }: MouseEvent) => {
4545
4646
const Layout = h(DefaultTheme.Layout, null, {
4747
'aside-outline-before': () => h(ShareButton),
48-
'doc-after': () => h(Twikoo, { Twikoo_Data }),
4948
})
5049
</script>
5150

en/guide/download.md

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
---
2+
home: hello
3+
---
4+
5+
<script setup lang="ts">
6+
import { ref } from 'vue'
7+
import { data } from '../../metadata.data.js'
8+
9+
interface Package {
10+
os: string
11+
arch: string
12+
gui_pkg_tmpl: record<string, string>
13+
cli_pkg_tmpl: record<string, string> // key: format, value: url
14+
comment?: string
15+
}
16+
17+
function gen_pkg_without_gui(os: string, archs: string[]): Package[] {
18+
return archs.map(arch => {
19+
return {
20+
os,
21+
arch,
22+
gui_pkg_tmpl: {},
23+
cli_pkg_tmpl: {
24+
"zip": `https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-linux-${arch}-v{}.zip`,
25+
},
26+
}
27+
})
28+
}
29+
30+
const packages = ref<Package[]>([
31+
{
32+
os: 'Windows',
33+
arch: 'x86_64',
34+
gui_pkg_tmpl: {
35+
"exe": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-gui_{}_x64-setup.exe'
36+
},
37+
cli_pkg_tmpl: {
38+
"zip": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-windows-x86_64-v{}.zip'
39+
},
40+
comment: "Windows 7 needs to be SP1 and above, and you need to install the two patches KB3063858 and KB4474419, and disable QUIC input."
41+
},
42+
{
43+
os: "Windows",
44+
arch: "arm64",
45+
gui_pkg_tmpl: {
46+
"exe": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-gui_{}_arm64-setup.exe'
47+
},
48+
cli_pkg_tmpl: {
49+
"zip": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-windows-arm64-v{}.zip'
50+
},
51+
},
52+
{
53+
os: "Linux",
54+
arch: "x86_64",
55+
gui_pkg_tmpl: {
56+
"deb": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-gui_{}_amd64.deb',
57+
"AppImage": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-gui_{}_amd64.AppImage',
58+
},
59+
cli_pkg_tmpl: {
60+
"zip": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-linux-x86_64-v{}.zip',
61+
},
62+
},
63+
{
64+
os: "Linux",
65+
arch: "aarch64",
66+
gui_pkg_tmpl: {
67+
"deb": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-gui_{}_arm64.deb',
68+
},
69+
cli_pkg_tmpl: {
70+
"zip": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-linux-aarch64-v{}.zip',
71+
},
72+
},
73+
...gen_pkg_without_gui("Linux", ["arm", "armhf", "armv7", "armv7hf", "mips", "mipsel"]),
74+
{
75+
os: "MacOS",
76+
arch: "x86_64",
77+
gui_pkg_tmpl: {
78+
"dmg": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-gui_{}_x64.dmg',
79+
},
80+
cli_pkg_tmpl: {
81+
"zip": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-macos-x86_64-v{}.zip',
82+
},
83+
comment: "After installing the GUI, you need to manually execute xattr -c /Applications/easytier-gui.app, otherwise it will prompt that the file is damaged"
84+
},
85+
{
86+
os: "MacOS",
87+
arch: "aarch64",
88+
gui_pkg_tmpl: {
89+
"dmg": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-gui_{}_aarch64.dmg',
90+
},
91+
cli_pkg_tmpl: {
92+
"zip": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-macos-aarch64-v{}.zip',
93+
},
94+
comment: "After installing the GUI, you need to manually execute xattr -c /Applications/easytier-gui.app, otherwise it will prompt that the file is damaged"
95+
},
96+
{
97+
os: "Android",
98+
arch: "universal",
99+
gui_pkg_tmpl: {
100+
"apk": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/app-universal-release.apk',
101+
},
102+
cli_pkg_tmpl: {},
103+
comment: "If you encounter abnormal display issues, please try upgrading WebView"
104+
},
105+
{
106+
os: "Android Magisk Module",
107+
arch: "aarch64",
108+
gui_pkg_tmpl: {},
109+
cli_pkg_tmpl: {
110+
"zip": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/Easytier-Magisk-v{}.zip'
111+
},
112+
comment: "Supports Magisk/KernelSU/Apatch. Will start an easytier-core instance on boot. Config located at /data/adb/modules/easytier_magisk/config/"
113+
},
114+
{
115+
os: "FreeBSD 13.2",
116+
arch: "x86_64",
117+
gui_pkg_tmpl: {},
118+
cli_pkg_tmpl: {
119+
"zip": 'https://github.com/EasyTier/EasyTier/releases/download/v{}/easytier-freebsd-13.2-x86_64-v{}.zip',
120+
},
121+
}
122+
])
123+
124+
const all_archs = new Set(packages.value.map(pkg => pkg.arch))
125+
const all_os = new Set(packages.value.map(pkg => pkg.os))
126+
const all_proxy = new Set(data.github_accels)
127+
128+
const channel = ref('easytier_latest_version')
129+
130+
const url = 'https://github.com/EasyTier/EasyTier/releases/tag/v'
131+
const filter_os = ref('')
132+
const filter_arch = ref('')
133+
const accel_proxy = ref('')
134+
135+
function renderUrlTmpl(url_tmpl: string): string {
136+
return accel_proxy.value + url_tmpl.replace(/\{\}/g, data[channel.value])
137+
}
138+
139+
</script>
140+
141+
# Download { #download }
142+
143+
You can directly go to the [GitHub Release page](https://github.com/EasyTier/EasyTier/releases) to view the download links for all versions, or use the table below to find the version that suits you.
144+
145+
The command line program package includes four executables:
146+
147+
- `easytier-core`: The core program of EasyTier
148+
- `easytier-cli`: EasyTier management program, after starting easytier-core, you can use easytier-cli to view virtual network information
149+
- `easytier-web`: Used for self-hosting the EasyTier Web console backend, generally no need to self-host, you can use the official Web console
150+
- `easytier-web-embed`: Same functionality as `easytier-web`, but includes the Web frontend.
151+
152+
## Switch Download Channel { #channel }
153+
154+
<div>
155+
<select name="channel-select" id="channel-select" v-model="channel" class="filter-select">
156+
<option value="easytier_latest_version"> Stable Version(v{{ data.easytier_latest_version }}) </option>
157+
<option value="easytier_pre_release_version"> Pre-release Version(v{{ data.easytier_pre_release_version }}) </option>
158+
</select>
159+
</div>
160+
161+
## <a :href="url + data[channel]">EasyTier v{{ data[channel] }}</a> { #latest }
162+
163+
- GitHub Acceleration
164+
<div>
165+
<select name="gh-accel-select" id="gh-accel-select" v-model="accel_proxy" class="filter-select">
166+
<option value=""> Direct </option>
167+
<option v-for="p in all_proxy" :value="p"> {{ p }} </option>
168+
</select>
169+
</div>
170+
171+
- Filter by Operating System
172+
<div>
173+
<select name="os-select" id="os-select" v-model="filter_os" class="filter-select">
174+
<option value=""> All </option>
175+
<option v-for="os in all_os" :value="os"> {{ os }} </option>
176+
</select>
177+
</div>
178+
179+
- Filter by Hardware Architecture
180+
<div>
181+
<select name="arch-select" id="arch-select" v-model="filter_arch" class="filter-select">
182+
<option value=""> All </option>
183+
<option v-for="arch in all_archs" :value="arch"> {{ arch }} </option>
184+
</select>
185+
</div>
186+
187+
<table>
188+
189+
<thead>
190+
<tr>
191+
<th> Operating System </th>
192+
<th> Hardware Architecture </th>
193+
<th> GUI Program </th>
194+
<th> CLI Program </th>
195+
<th> Notes </th>
196+
</tr>
197+
</thead>
198+
199+
<tr v-for="pkg in packages" v-show="(!filter_os || pkg.os === filter_os) && (!filter_arch || pkg.arch === filter_arch)">
200+
201+
<td> {{ pkg.os }} </td>
202+
<td> {{ pkg.arch }} </td>
203+
204+
<td>
205+
<a v-for="(url_tmpl, format) in pkg.gui_pkg_tmpl" class="download-link-span" :href="renderUrlTmpl(url_tmpl)">
206+
{{format}}
207+
</a>
208+
</td>
209+
210+
<td>
211+
<a v-for="(url_tmpl, format) in pkg.cli_pkg_tmpl" class="download-link-span" :href="renderUrlTmpl(url_tmpl)">
212+
{{format}}
213+
</a>
214+
</td>
215+
216+
<td>
217+
{{ pkg.comment }}
218+
</td>
219+
220+
</tr>
221+
222+
</table>

en/guide/gui/basic.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Public Server Networking
2+
3+
The GUI defaults to using official shared nodes for networking, which is convenient for friends without public IPs. In most cases, P2P tunneling can be successful. If P2P tunneling fails, the bandwidth between nodes may be relatively low.
4+
5+
The configuration method is shown in the figure.
6+
7+
![Configuration Interface](/assets/cn/config.png)
8+
9+
After the configuration is complete, click the Run Network button. The interface after the network runs successfully is shown in the figure.
10+
11+
![Running](/assets/cn/running.png)

0 commit comments

Comments
 (0)