diff --git a/linker.doc.web/docs/2、首次运行/2.1、安装.md b/linker.doc.web/docs/2、首次运行/2.1、安装.md index 927392fa..90e22781 100644 --- a/linker.doc.web/docs/2、首次运行/2.1、安装.md +++ b/linker.doc.web/docs/2、首次运行/2.1、安装.md @@ -49,11 +49,29 @@ systemctl enable linker 1. 服务端端口 `1802` TCP+UDP 2. 客户端端口 `1804`、`1803` TCP 3. 配置文件夹 `./configs` -4. 插件文件夹 `./plugins` -5. 网页文件夹 `./web` -6. 日志文件夹 `./logs` +4. 日志文件夹 `./logs` +5. x64 `snltty/linker-debian-x64` +6. arm64 `snltty/linker-debian-arm64` +#### 客户端 ``` -snltty/linker-musl-x64 -snltty/linker-musl-arm64 +docker run -it -d --name linker \ +-p 1804:1804/tcp -p 1803:1803/tcp \ +-v /usr/local/linker-docker/configs:/app/configs \ +-v /usr/local/linker-docker/logs:/app/logs \ +--device /dev/net/tun \ +--restart=always \ +--privileged=true \ +snltty/linker-debian-x64 +``` + +#### 服务端 +``` +docker run -it -d --name linker \ +-p 1802:1802/tcp -p 1802:1802/udp \ +-v /usr/local/linker-docker/configs:/app/configs \ +-v /usr/local/linker-docker/logs:/app/logs \ +--restart=always \ +--privileged=true \ +snltty/linker-debian-x64 ``` \ No newline at end of file diff --git a/linker.web/src/apis/updater.js b/linker.web/src/apis/updater.js index 6cf82789..da9cab92 100644 --- a/linker.web/src/apis/updater.js +++ b/linker.web/src/apis/updater.js @@ -4,8 +4,8 @@ import { sendWebsocketMsg } from './request' export const getUpdater = () => { return sendWebsocketMsg('updaterclient/get'); } -export const confirm = (machineId, version) => { - return sendWebsocketMsg('updaterclient/confirm', { machineId, version }); +export const confirm = (data) => { + return sendWebsocketMsg('updaterclient/confirm', data); } export const exit = (machineId) => { return sendWebsocketMsg('updaterclient/exit', machineId); diff --git a/linker.web/src/views/devices/Device.vue b/linker.web/src/views/devices/Device.vue index 15232b3b..5e9dfcfb 100644 --- a/linker.web/src/views/devices/Device.vue +++ b/linker.web/src/views/devices/Device.vue @@ -130,9 +130,13 @@ export default { if(updateInfo.Status == 2){ const selectedValue = ref(updaterVersion.value); - const selectOptions = [h(ElOption, { label: `${updaterVersion.value} - 最新版本`, value: updaterVersion.value })]; + const selectOptions = [ + h(ElOption, { label: `仅[${row.MachineName}] -> ${updaterVersion.value}(最新版本)`, value: updaterVersion.value }), + h(ElOption, { label: `[所有] -> ${updaterVersion.value}(最新版本)`, value: `all->${updaterVersion.value}` }), + ]; if(row.Version != serverVersion.value && updaterVersion.value != serverVersion.value){ - selectOptions.push(h(ElOption, { label: `${serverVersion.value} - 服务器版本`, value: serverVersion.value })); + selectOptions.push(h(ElOption, { label: `仅[${row.MachineName}] -> ${serverVersion.value}(服务器版本)`, value: serverVersion.value })); + selectOptions.push(h(ElOption, { label: `[所有] -> ${serverVersion.value}(服务器版本)`, value: `all->${serverVersion.value}` })); } ElMessageBox({ @@ -148,7 +152,15 @@ export default { confirmButtonText: '确定', cancelButtonText: '取消' }).then(() => { - confirm(row.MachineId,selectedValue.value); + const data = { + MachineId:row.MachineId, + Version:selectedValue.value.replace('all->',''), + All:selectedValue.value.indexOf('all->') >= 0 + }; + if(data.All){ + data.MachineId = ''; + } + confirm(data); }).catch(() => {}); } } diff --git a/linker.web/src/views/devices/updater.js b/linker.web/src/views/devices/updater.js index c68a745c..84e9020f 100644 --- a/linker.web/src/views/devices/updater.js +++ b/linker.web/src/views/devices/updater.js @@ -14,7 +14,6 @@ export const provideUpdater = () => { const _getUpdater = () => { if (globalData.value.api.connected) { getUpdater().then((res) => { - console.log(res); const self = Object.values(res).filter(c => !!c.Version)[0]; if (self) { updater.value.current.DateTime = self.DateTime; diff --git a/linker.web/src/views/settings/RelayServers.vue b/linker.web/src/views/settings/RelayServers.vue index de2bbfde..30628f62 100644 --- a/linker.web/src/views/settings/RelayServers.vue +++ b/linker.web/src/views/settings/RelayServers.vue @@ -1,5 +1,12 @@