mirror of
https://mirror.suhoan.cn/https://github.com/EasyTier/EasyTier.git
synced 2025-12-12 20:57:26 +08:00
version 2.1.0 (#482)
This commit is contained in:
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -21,7 +21,7 @@ on:
|
|||||||
version:
|
version:
|
||||||
description: 'Version for this release'
|
description: 'Version for this release'
|
||||||
type: string
|
type: string
|
||||||
default: 'v2.0.3'
|
default: 'v2.1.0'
|
||||||
required: true
|
required: true
|
||||||
make_latest:
|
make_latest:
|
||||||
description: 'Mark this release as latest'
|
description: 'Mark this release as latest'
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -33,3 +33,5 @@ easytier-panic.log
|
|||||||
|
|
||||||
# web
|
# web
|
||||||
node_modules
|
node_modules
|
||||||
|
|
||||||
|
.vite
|
||||||
|
|||||||
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -1830,7 +1830,7 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "easytier"
|
name = "easytier"
|
||||||
version = "2.0.3"
|
version = "2.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aes-gcm",
|
"aes-gcm",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
@@ -1926,7 +1926,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "easytier-gui"
|
name = "easytier-gui"
|
||||||
version = "2.0.3"
|
version = "2.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "easytier-gui",
|
"name": "easytier-gui",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "2.0.3",
|
"version": "2.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"packageManager": "pnpm@9.12.1+sha512.e5a7e52a4183a02d5931057f7a0dbff9d5e9ce3161e33fa68ae392125b79282a8a8a470a51dfc8a0ed86221442eb2fb57019b0990ed24fab519bf0e1bc5ccfc4",
|
"packageManager": "pnpm@9.12.1+sha512.e5a7e52a4183a02d5931057f7a0dbff9d5e9ce3161e33fa68ae392125b79282a8a8a470a51dfc8a0ed86221442eb2fb57019b0990ed24fab519bf0e1bc5ccfc4",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "easytier-gui"
|
name = "easytier-gui"
|
||||||
version = "2.0.3"
|
version = "2.1.0"
|
||||||
description = "EasyTier GUI"
|
description = "EasyTier GUI"
|
||||||
authors = ["you"]
|
authors = ["you"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"createUpdaterArtifacts": false
|
"createUpdaterArtifacts": false
|
||||||
},
|
},
|
||||||
"productName": "easytier-gui",
|
"productName": "easytier-gui",
|
||||||
"version": "2.0.3",
|
"version": "2.1.0",
|
||||||
"identifier": "com.kkrainbow.easytier",
|
"identifier": "com.kkrainbow.easytier",
|
||||||
"plugins": {},
|
"plugins": {},
|
||||||
"app": {
|
"app": {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
"primeicons": "^7.0.0",
|
"primeicons": "^7.0.0",
|
||||||
"primevue": "^4.2.1",
|
"primevue": "^4.2.1",
|
||||||
"tailwindcss-primeui": "^0.3.4",
|
"tailwindcss-primeui": "^0.3.4",
|
||||||
|
"ts-md5": "^1.3.1",
|
||||||
"uuid": "^11.0.2",
|
"uuid": "^11.0.2",
|
||||||
"vue": "^3.5.12",
|
"vue": "^3.5.12",
|
||||||
"vue-i18n": "^10.0.4"
|
"vue-i18n": "^10.0.4"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import axios, { AxiosError, AxiosInstance, AxiosResponse, InternalAxiosRequestConfig } from 'axios';
|
import axios, { AxiosError, AxiosInstance, AxiosResponse, InternalAxiosRequestConfig } from 'axios';
|
||||||
|
import { Md5 } from 'ts-md5'
|
||||||
|
|
||||||
export interface ValidateConfigResponse {
|
export interface ValidateConfigResponse {
|
||||||
toml_config: string;
|
toml_config: string;
|
||||||
@@ -79,6 +80,7 @@ export class ApiClient {
|
|||||||
// 注册
|
// 注册
|
||||||
public async register(data: RegisterData): Promise<RegisterResponse> {
|
public async register(data: RegisterData): Promise<RegisterResponse> {
|
||||||
try {
|
try {
|
||||||
|
data.credentials.password = Md5.hashStr(data.credentials.password);
|
||||||
const response = await this.client.post<RegisterResponse>('/auth/register', data);
|
const response = await this.client.post<RegisterResponse>('/auth/register', data);
|
||||||
console.log("register response:", response);
|
console.log("register response:", response);
|
||||||
return { success: true, message: 'Register success', };
|
return { success: true, message: 'Register success', };
|
||||||
@@ -93,6 +95,7 @@ export class ApiClient {
|
|||||||
// 登录
|
// 登录
|
||||||
public async login(data: Credential): Promise<LoginResponse> {
|
public async login(data: Credential): Promise<LoginResponse> {
|
||||||
try {
|
try {
|
||||||
|
data.password = Md5.hashStr(data.password);
|
||||||
const response = await this.client.post<any>('/auth/login', data);
|
const response = await this.client.post<any>('/auth/login', data);
|
||||||
console.log("login response:", response);
|
console.log("login response:", response);
|
||||||
return { success: true, message: 'Login success', };
|
return { success: true, message: 'Login success', };
|
||||||
@@ -116,7 +119,7 @@ export class ApiClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async change_password(new_password: string) {
|
public async change_password(new_password: string) {
|
||||||
await this.client.put('/auth/password', { new_password: new_password });
|
await this.client.put('/auth/password', { new_password: Md5.hashStr(new_password) });
|
||||||
}
|
}
|
||||||
|
|
||||||
public async check_login_status() {
|
public async check_login_status() {
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ const onRegister = async () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const defaultApiHost = 'http://10.147.223.128:11211'
|
const defaultApiHost = 'http://47.115.208.211:11211'
|
||||||
const apiHost = ref<string>(defaultApiHost)
|
const apiHost = ref<string>(defaultApiHost)
|
||||||
const apiHostSuggestions = ref<Array<string>>([])
|
const apiHostSuggestions = ref<Array<string>>([])
|
||||||
const apiHostSearch = async (event: { query: string }) => {
|
const apiHostSearch = async (event: { query: string }) => {
|
||||||
|
|||||||
@@ -4,5 +4,6 @@ import { viteSingleFile } from "vite-plugin-singlefile"
|
|||||||
|
|
||||||
// https://vite.dev/config/
|
// https://vite.dev/config/
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
base: '',
|
||||||
plugins: [vue(), viteSingleFile()],
|
plugins: [vue(), viteSingleFile()],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -230,7 +230,7 @@ impl MigrationTrait for Migration {
|
|||||||
.columns(vec![Users::Username, Users::Password])
|
.columns(vec![Users::Username, Users::Password])
|
||||||
.values_panic(vec![
|
.values_panic(vec![
|
||||||
"user".into(),
|
"user".into(),
|
||||||
"$argon2i$v=19$m=16,t=2,p=1$dHJ5dXZkYmZkYXM$UkrNqWz0BbSVBq4ykLSuJw".into(),
|
"$argon2i$v=19$m=16,t=2,p=1$aGVyRDBrcnRycnlaMDhkbw$449SEcv/qXf+0fnI9+fYVQ".into(), // user (md5summed)
|
||||||
])
|
])
|
||||||
.to_owned();
|
.to_owned();
|
||||||
manager.exec_stmt(user).await?;
|
manager.exec_stmt(user).await?;
|
||||||
@@ -240,7 +240,7 @@ impl MigrationTrait for Migration {
|
|||||||
.columns(vec![Users::Username, Users::Password])
|
.columns(vec![Users::Username, Users::Password])
|
||||||
.values_panic(vec![
|
.values_panic(vec![
|
||||||
"admin".into(),
|
"admin".into(),
|
||||||
"$argon2i$v=19$m=16,t=2,p=1$Ymd1Y2FlcnQ$x0q4oZinW9S1ZB9BcaHEpQ".into(),
|
"$argon2i$v=19$m=16,t=2,p=1$bW5idXl0cmY$61n+JxL4r3dwLPAEDlDdtg".into(), // admin (md5summed)
|
||||||
])
|
])
|
||||||
.to_owned();
|
.to_owned();
|
||||||
manager.exec_stmt(admin).await?;
|
manager.exec_stmt(admin).await?;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name = "easytier"
|
|||||||
description = "A full meshed p2p VPN, connecting all your devices in one network with one command."
|
description = "A full meshed p2p VPN, connecting all your devices in one network with one command."
|
||||||
homepage = "https://github.com/EasyTier/EasyTier"
|
homepage = "https://github.com/EasyTier/EasyTier"
|
||||||
repository = "https://github.com/EasyTier/EasyTier"
|
repository = "https://github.com/EasyTier/EasyTier"
|
||||||
version = "2.0.3"
|
version = "2.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["kkrainbow"]
|
authors = ["kkrainbow"]
|
||||||
keywords = ["vpn", "p2p", "network", "easytier"]
|
keywords = ["vpn", "p2p", "network", "easytier"]
|
||||||
|
|||||||
45
pnpm-lock.yaml
generated
45
pnpm-lock.yaml
generated
@@ -220,6 +220,9 @@ importers:
|
|||||||
tailwindcss-primeui:
|
tailwindcss-primeui:
|
||||||
specifier: ^0.3.4
|
specifier: ^0.3.4
|
||||||
version: 0.3.4(tailwindcss@3.4.14)
|
version: 0.3.4(tailwindcss@3.4.14)
|
||||||
|
ts-md5:
|
||||||
|
specifier: ^1.3.1
|
||||||
|
version: 1.3.1
|
||||||
uuid:
|
uuid:
|
||||||
specifier: ^11.0.2
|
specifier: ^11.0.2
|
||||||
version: 11.0.2
|
version: 11.0.2
|
||||||
@@ -898,22 +901,22 @@ packages:
|
|||||||
resolution: {integrity: sha512-GG428DkrrWCMhxRMRQZjuS7zmSUzarYcaHJqG9VB8dXAxw4iQDoKVQ7ChJRB6ZtsCsX3Jse1PEUlHrJiyQrOTg==}
|
resolution: {integrity: sha512-GG428DkrrWCMhxRMRQZjuS7zmSUzarYcaHJqG9VB8dXAxw4iQDoKVQ7ChJRB6ZtsCsX3Jse1PEUlHrJiyQrOTg==}
|
||||||
engines: {node: '>= 16'}
|
engines: {node: '>= 16'}
|
||||||
|
|
||||||
'@intlify/message-compiler@10.0.0':
|
|
||||||
resolution: {integrity: sha512-OcaWc63NC/9p1cMdgoNKBj4d61BH8sUW1Hfs6YijTd9656ZR4rNqXAlRnBrfS5ABq0vjQjpa8VnyvH9hK49yBw==}
|
|
||||||
engines: {node: '>= 16'}
|
|
||||||
|
|
||||||
'@intlify/message-compiler@10.0.4':
|
'@intlify/message-compiler@10.0.4':
|
||||||
resolution: {integrity: sha512-AFbhEo10DP095/45EauinQJ5hJ3rJUmuuqltGguvc3WsvezZN+g8qNHLGWKu60FHQVizMrQY7VJ+zVlBXlQQkQ==}
|
resolution: {integrity: sha512-AFbhEo10DP095/45EauinQJ5hJ3rJUmuuqltGguvc3WsvezZN+g8qNHLGWKu60FHQVizMrQY7VJ+zVlBXlQQkQ==}
|
||||||
engines: {node: '>= 16'}
|
engines: {node: '>= 16'}
|
||||||
|
|
||||||
'@intlify/shared@10.0.0':
|
'@intlify/message-compiler@11.0.0-beta.1':
|
||||||
resolution: {integrity: sha512-6ngLfI7DOTew2dcF9WMJx+NnMWghMBhIiHbGg+wRvngpzD5KZJZiJVuzMsUQE1a5YebEmtpTEfUrDp/NqVGdiw==}
|
resolution: {integrity: sha512-yMXfN4hg/EeSdtWfmoMrwB9X4TXwkBoZlTIpNydQaW9y0tSJHGnUPRoahtkbsyACCm9leSJINLY4jQ0rK6BK0Q==}
|
||||||
engines: {node: '>= 16'}
|
engines: {node: '>= 16'}
|
||||||
|
|
||||||
'@intlify/shared@10.0.4':
|
'@intlify/shared@10.0.4':
|
||||||
resolution: {integrity: sha512-ukFn0I01HsSgr3VYhYcvkTCLS7rGa0gw4A4AMpcy/A9xx/zRJy7PS2BElMXLwUazVFMAr5zuiTk3MQeoeGXaJg==}
|
resolution: {integrity: sha512-ukFn0I01HsSgr3VYhYcvkTCLS7rGa0gw4A4AMpcy/A9xx/zRJy7PS2BElMXLwUazVFMAr5zuiTk3MQeoeGXaJg==}
|
||||||
engines: {node: '>= 16'}
|
engines: {node: '>= 16'}
|
||||||
|
|
||||||
|
'@intlify/shared@11.0.0-beta.1':
|
||||||
|
resolution: {integrity: sha512-Md/4T/QOx7wZ7zqVzSsMx2M/9Mx/1nsgsjXS5SFIowFKydqUhMz7K+y7pMFh781aNYz+rGXYwad8E9/+InK9SA==}
|
||||||
|
engines: {node: '>= 16'}
|
||||||
|
|
||||||
'@intlify/unplugin-vue-i18n@5.2.0':
|
'@intlify/unplugin-vue-i18n@5.2.0':
|
||||||
resolution: {integrity: sha512-pmRiPY2Nj9mmSrixT69aO45XxGUr5fDBy/IIw4ajLlDTJm5TSmQKA5YNdsH0uxVDCPWy5tlQrF18hkDwI7UJvg==}
|
resolution: {integrity: sha512-pmRiPY2Nj9mmSrixT69aO45XxGUr5fDBy/IIw4ajLlDTJm5TSmQKA5YNdsH0uxVDCPWy5tlQrF18hkDwI7UJvg==}
|
||||||
engines: {node: '>= 18'}
|
engines: {node: '>= 18'}
|
||||||
@@ -3529,6 +3532,10 @@ packages:
|
|||||||
ts-interface-checker@0.1.13:
|
ts-interface-checker@0.1.13:
|
||||||
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
|
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
|
||||||
|
|
||||||
|
ts-md5@1.3.1:
|
||||||
|
resolution: {integrity: sha512-DiwiXfwvcTeZ5wCE0z+2A9EseZsztaiZtGrtSaY5JOD7ekPnR/GoIVD5gXZAlK9Na9Kvpo9Waz5rW64WKAWApg==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
tslib@2.8.1:
|
tslib@2.8.1:
|
||||||
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
|
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
|
||||||
|
|
||||||
@@ -4413,8 +4420,8 @@ snapshots:
|
|||||||
|
|
||||||
'@intlify/bundle-utils@9.0.0(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))':
|
'@intlify/bundle-utils@9.0.0(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/message-compiler': 10.0.0
|
'@intlify/message-compiler': 11.0.0-beta.1
|
||||||
'@intlify/shared': 10.0.0
|
'@intlify/shared': 11.0.0-beta.1
|
||||||
acorn: 8.14.0
|
acorn: 8.14.0
|
||||||
escodegen: 2.1.0
|
escodegen: 2.1.0
|
||||||
estree-walker: 2.0.2
|
estree-walker: 2.0.2
|
||||||
@@ -4430,26 +4437,26 @@ snapshots:
|
|||||||
'@intlify/message-compiler': 10.0.4
|
'@intlify/message-compiler': 10.0.4
|
||||||
'@intlify/shared': 10.0.4
|
'@intlify/shared': 10.0.4
|
||||||
|
|
||||||
'@intlify/message-compiler@10.0.0':
|
|
||||||
dependencies:
|
|
||||||
'@intlify/shared': 10.0.0
|
|
||||||
source-map-js: 1.2.1
|
|
||||||
|
|
||||||
'@intlify/message-compiler@10.0.4':
|
'@intlify/message-compiler@10.0.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/shared': 10.0.4
|
'@intlify/shared': 10.0.4
|
||||||
source-map-js: 1.2.1
|
source-map-js: 1.2.1
|
||||||
|
|
||||||
'@intlify/shared@10.0.0': {}
|
'@intlify/message-compiler@11.0.0-beta.1':
|
||||||
|
dependencies:
|
||||||
|
'@intlify/shared': 11.0.0-beta.1
|
||||||
|
source-map-js: 1.2.1
|
||||||
|
|
||||||
'@intlify/shared@10.0.4': {}
|
'@intlify/shared@10.0.4': {}
|
||||||
|
|
||||||
|
'@intlify/shared@11.0.0-beta.1': {}
|
||||||
|
|
||||||
'@intlify/unplugin-vue-i18n@5.2.0(@vue/compiler-dom@3.5.12)(eslint@9.14.0(jiti@2.4.0))(rollup@4.24.3)(typescript@5.6.3)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))':
|
'@intlify/unplugin-vue-i18n@5.2.0(@vue/compiler-dom@3.5.12)(eslint@9.14.0(jiti@2.4.0))(rollup@4.24.3)(typescript@5.6.3)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.4.0))
|
'@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.4.0))
|
||||||
'@intlify/bundle-utils': 9.0.0(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))
|
'@intlify/bundle-utils': 9.0.0(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))
|
||||||
'@intlify/shared': 10.0.0
|
'@intlify/shared': 11.0.0-beta.1
|
||||||
'@intlify/vue-i18n-extensions': 7.0.0(@intlify/shared@10.0.0)(@vue/compiler-dom@3.5.12)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))
|
'@intlify/vue-i18n-extensions': 7.0.0(@intlify/shared@11.0.0-beta.1)(@vue/compiler-dom@3.5.12)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))
|
||||||
'@rollup/pluginutils': 5.1.3(rollup@4.24.3)
|
'@rollup/pluginutils': 5.1.3(rollup@4.24.3)
|
||||||
'@typescript-eslint/scope-manager': 7.18.0
|
'@typescript-eslint/scope-manager': 7.18.0
|
||||||
'@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3)
|
'@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3)
|
||||||
@@ -4472,11 +4479,11 @@ snapshots:
|
|||||||
- typescript
|
- typescript
|
||||||
- webpack-sources
|
- webpack-sources
|
||||||
|
|
||||||
'@intlify/vue-i18n-extensions@7.0.0(@intlify/shared@10.0.0)(@vue/compiler-dom@3.5.12)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))':
|
'@intlify/vue-i18n-extensions@7.0.0(@intlify/shared@11.0.0-beta.1)(@vue/compiler-dom@3.5.12)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.26.2
|
'@babel/parser': 7.26.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@intlify/shared': 10.0.0
|
'@intlify/shared': 11.0.0-beta.1
|
||||||
'@vue/compiler-dom': 3.5.12
|
'@vue/compiler-dom': 3.5.12
|
||||||
vue: 3.5.12(typescript@5.6.3)
|
vue: 3.5.12(typescript@5.6.3)
|
||||||
vue-i18n: 10.0.4(vue@3.5.12(typescript@5.6.3))
|
vue-i18n: 10.0.4(vue@3.5.12(typescript@5.6.3))
|
||||||
@@ -7469,6 +7476,8 @@ snapshots:
|
|||||||
|
|
||||||
ts-interface-checker@0.1.13: {}
|
ts-interface-checker@0.1.13: {}
|
||||||
|
|
||||||
|
ts-md5@1.3.1: {}
|
||||||
|
|
||||||
tslib@2.8.1: {}
|
tslib@2.8.1: {}
|
||||||
|
|
||||||
tsx@4.19.2:
|
tsx@4.19.2:
|
||||||
|
|||||||
Reference in New Issue
Block a user