feat(pinokio): clean one-click launcher for multi-tts-server
- install: clone app source, create venv, install deps + torch + models - start: daemon uvicorn on 127.0.0.1 with auto-captured URL - reset: remove venv/cache/models but keep source - update: pull both launcher and app, then re-install - sanitized: no local env details, no TODO/DONE - icon.png included
This commit is contained in:
+94
@@ -0,0 +1,94 @@
|
||||
// Multi-TTS-Server Pinokio launcher
|
||||
// One-click install/start for hermes/multi-tts-server
|
||||
module.exports = {
|
||||
version: "1.0.0",
|
||||
title: "Multi-TTS-Server",
|
||||
description: "XTTS + F5-TTS server with OpenAI-compatible API, Gradio Web UI, and MultiTTS Android export.",
|
||||
icon: "icon.png",
|
||||
menu: async (kernel, info) => {
|
||||
// Marker: app/venv exists after install
|
||||
let installed = info.exists("app/venv/Scripts/python.exe") ||
|
||||
info.exists("app/venv/bin/python")
|
||||
|
||||
let running = {
|
||||
install: info.running("install.js"),
|
||||
start: info.running("start.js"),
|
||||
update: info.running("update.js"),
|
||||
reset: info.running("reset.js"),
|
||||
}
|
||||
|
||||
if (running.install) {
|
||||
return [{
|
||||
default: true,
|
||||
icon: "fa-solid fa-plug",
|
||||
text: "Installing",
|
||||
href: "install.js",
|
||||
}]
|
||||
}
|
||||
|
||||
if (running.start) {
|
||||
let local = info.local("start.js")
|
||||
if (local && local.url) {
|
||||
return [{
|
||||
default: true,
|
||||
icon: "fa-solid fa-rocket",
|
||||
text: "Open Web UI",
|
||||
href: local.url,
|
||||
}, {
|
||||
icon: "fa-solid fa-terminal",
|
||||
text: "Terminal",
|
||||
href: "start.js",
|
||||
}]
|
||||
}
|
||||
return [{
|
||||
default: true,
|
||||
icon: "fa-solid fa-terminal",
|
||||
text: "Starting",
|
||||
href: "start.js",
|
||||
}]
|
||||
}
|
||||
|
||||
if (running.update) {
|
||||
return [{
|
||||
default: true,
|
||||
icon: "fa-solid fa-terminal",
|
||||
text: "Updating",
|
||||
href: "update.js",
|
||||
}]
|
||||
}
|
||||
|
||||
if (running.reset) {
|
||||
return [{
|
||||
default: true,
|
||||
icon: "fa-solid fa-terminal",
|
||||
text: "Resetting",
|
||||
href: "reset.js",
|
||||
}]
|
||||
}
|
||||
|
||||
if (installed) {
|
||||
return [{
|
||||
default: true,
|
||||
icon: "fa-solid fa-power-off",
|
||||
text: "Start",
|
||||
href: "start.js",
|
||||
}, {
|
||||
icon: "fa-solid fa-plug",
|
||||
text: "Update",
|
||||
href: "update.js",
|
||||
}, {
|
||||
icon: "fa-regular fa-circle-xmark",
|
||||
text: "<div><strong>Reset</strong><div>Revert to pre-install state</div></div>",
|
||||
href: "reset.js",
|
||||
confirm: "Are you sure you wish to reset the app? This deletes the venv and any downloaded models.",
|
||||
}]
|
||||
}
|
||||
|
||||
return [{
|
||||
default: true,
|
||||
icon: "fa-solid fa-plug",
|
||||
text: "Install",
|
||||
href: "install.js",
|
||||
}]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user