49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
import { useKey } from '@kevisual/context';
|
|
import { app } from '../../app.ts';
|
|
import z from 'zod';
|
|
|
|
app.route({
|
|
path: 'cnb',
|
|
key: 'get-assistant-url',
|
|
description: '获取cnb工作空间中部署的各个助手的访问地址',
|
|
middleware: ['auth'],
|
|
metadata: {
|
|
args: {
|
|
more: z.boolean().describe('需要更多信息')
|
|
}
|
|
}
|
|
}).define(async (ctx) => {
|
|
const uri = useKey('CNB_VSCODE_PROXY_URI') as string || '';
|
|
const base = {
|
|
base: uri,
|
|
link: uri.replace('{{port}}', '51515'),
|
|
kevisual: uri.replace('{{port}}', '51515'),
|
|
openclaw: uri.replace('{{port}}', '80'),
|
|
opencode: uri.replace('{{port}}', '100'),
|
|
openwebui: uri.replace('{{port}}', '200'),
|
|
note: uri.replace('{{port}}', '3000'),
|
|
uptime: uri.replace('{{port}}', '3001'),
|
|
immich: uri.replace('{{port}}', '2283'),
|
|
nocodb: uri.replace('{{port}}', '4000'),
|
|
openlist: uri.replace('{{port}}', '5244'),
|
|
xiaoyao: uri.replace('{{port}}', '5678'),
|
|
meilisearch: uri.replace('{{port}}', '7700'),
|
|
bark: uri.replace('{{port}}', '9111'),
|
|
vaultwarden: uri.replace('{{port}}', '8180'),
|
|
music: uri.replace('{{port}}', '8096'),
|
|
jellyfin: uri.replace('{{port}}', '8096'),
|
|
homeassistant: uri.replace('{{port}}', '8123'),
|
|
cloudreve: uri.replace('{{port}}', '5212'),
|
|
filebrowser: uri.replace('{{port}}', '8081'),
|
|
// newapi: uri.replace('{{port}}', '8080'),
|
|
vscode: useKey('CNB_VSCODE_WEB_URL') as string || '',
|
|
codeServer: uri.replace('{{port}}', '10000'),
|
|
gitea: uri.replace('{{port}}', '3000'),
|
|
calibre: uri.replace('{{port}}', '8083'),
|
|
searXNG: uri.replace('{{port}}', '8888'),
|
|
}
|
|
ctx.body = {
|
|
...base,
|
|
}
|
|
}).addTo(app);
|