Szolgáltatásként: Windows, Linux, macOS
A szolgáltatások telepítése a rendszer szolgáltatásaként, hogy bejelentkezés nélkül induljanak: Windows, Linux (systemd), macOS (LaunchDaemon, LaunchAgent).
A napi indító a szolgáltatásokat a saját ablakukban, a bejelentkezett felhasználó nevén indítja. Egy kiszolgáló szerepű gépen ennél jobb, ha a szolgáltatások a rendszer szolgáltatásaként futnak: a géppel együtt indulnak, bejelentkezés nélkül, hiba után a rendszer újraindítja őket, és a naplójukat a saját mappájukba írják. Ez a fejezet a telepítést írja le Windowson, Linuxon és macOS-en.
Mikor érdemes
- Szolgáltatásként: ha a gép kiszolgáló – más gépek LiveCaptionje használja, és akkor is futnia kell, ha senki nincs bejelentkezve.
- A napi indítóval: ha ugyanazon a gépen dolgozik, amelyen a szolgáltatások futnak, és elég, ha munka közben futnak (lásd Napi indítás és leállítás).
A két mód egy gépen egy szolgáltatásra nem keveredik: a napi indító egy telepített szolgáltatás mellé nem indít konzolos ikerpéldányt, és nem is állítja le, hanem kiírja a vezérlő parancsát.
A közös szabályok
- A telepítő a szolgáltatás indítója, a
-InstallServicekapcsolóval. Ugyanaz a parancs frissít is: egy újabb változat telepítése után futtassa újra. Az eltávolítás a-UninstallService; az adatgyökeret (benne a naplót) csak a-RemoveDatakapcsoló törli. - Szolgáltatásonként és gépenként egy példány telepíthető.
- A sorrend itt is kötött: előbb a fiókszolgáltatás, utána a fordító és a beszédszolgáltatás, végül a feliratozó. A feliratozó a gépen bejegyzett fordítót és beszédszolgáltatást megvárja, mielőtt a videómemóriát felméri.
- A fiókszolgáltatás címe kötelező (
-AccountUrl), és a szolgáltatásnak peer token kell (magyarul társkulcs: a szolgáltatás titka, amellyel a jogosultsági képet lekéri). A telepítő a peer tokent a telepítést futtató felhasználó környezeti változójából veszi át, és a szolgáltatás védett titokmappájába teszi. Ezért a telepítés előtt futtassa azAccountServer\setup-account-peerseszközt a-Tokenskapcsolóval (lásd Kulcsok és jogosultságok a klienseknek). - Titok nem kerül a szolgáltatás bejegyzésébe: a bejegyzés csak a titokfájl útját tartalmazza, a fájlt csak a szolgáltatás fiókja és a rendszergazda olvashatja.
- Kezdő rendszergazda szolgáltatásként nem jön létre – lásd lent.
A szolgáltatáskezelő a kilépés módja szerint dönt:
| Kilépés | Mit tesz a rendszer |
|---|---|
| rendes leállás (0-s kód) | nem indítja újra |
| használati hiba, például rossz kapcsoló (1-es kód) | nem indítja újra – a hibát javítani kell |
| futási hiba (4-es kód) vagy összeomlás | 60 másodperc múlva újraindítja |
Windows
Emelt jogú (rendszergazdai) PowerShell-ablakból. A telepítő nem publikál: ha a szolgáltatás csomagja elavult, előbb egy nem emelt ablakban frissítse (-Rebuild).
.\AccountServer\start-accountserver.ps1 -InstallService -CreateAdmin admin
.\TranslatorServer\start-translatorserver.ps1 -InstallService -AccountUrl http://127.0.0.1:8100
.\VoiceServer\start-voiceserver.ps1 -InstallService -AccountUrl http://127.0.0.1:8100 -AcceptXttsLicense
.\CaptionServer\start-captionserver.ps1 -InstallService -Gpu cuda13 -GpuReserve 6144 -AccountUrl http://127.0.0.1:8100
- A szolgáltatások neve
LiveCaptionPro.<Szolgáltatás>(példáulLiveCaptionPro.CaptionServer), mindegyik saját virtuális fiókkal fut. A program a%ProgramFiles%\LiveCaptionPro\<szolgáltatás>, az adatgyökér és a napló a%ProgramData%\LiveCaptionPro\<szolgáltatás>mappában él. - A modellek közös mappába kerülnek (
%ProgramData%\LiveCaptionPro\models,hf,tts): a telepítő a gépen meglévő modelleket odamásolja (-ModelsFrom). - A szolgáltatások a Windows Szolgáltatások konzoljában (
services.msc) is láthatók, indíthatók és leállíthatók.
Linux
A systemd kell hozzá, és root jog:
sudo pwsh AccountServer/start-accountserver.ps1 -InstallService
sudo pwsh TranslatorServer/start-translatorserver.ps1 -InstallService -AccountUrl http://127.0.0.1:8100
sudo pwsh VoiceServer/start-voiceserver.ps1 -InstallService -AccountUrl http://127.0.0.1:8100
sudo pwsh CaptionServer/start-captionserver.ps1 -InstallService -Gpu cuda13 -GpuReserve 6144 -AccountUrl http://127.0.0.1:8100
- Az egységek neve
live-caption-pro-<szolgáltatás>.service, a felhasználólive-caption-pro. A program a/opt/live-caption-pro/<szolgáltatás>, az adatgyökér a/var/lib/live-caption-pro/<szolgáltatás>alatt él; a titkokat a systemd adja át a/etc/live-caption-pro/credentials/mappából, amit csak a root olvas. - Kezelés a szokásos paranccsal:
sudo systemctl status|start|stop live-caption-pro-captionserver. A napló a journalban is látszik:journalctl -u live-caption-pro-captionserver. - A
systemctl startmegvárja, amíg a szolgáltatás valóban kiszolgál – a feliratozónál ez a videómemória felmérése miatt egy-két perc is lehet.
macOS: LaunchDaemon, a géppel induló változat
A LaunchDaemon a macOS rendszerszintű háttérfeladata: a géppel indul, bejelentkezés nélkül. Root jog kell hozzá, a sudo -H kapcsolóval (a -H nélkül a root a saját felhasználói mappájába írna):
sudo -H pwsh AccountServer/start-accountserver.ps1 -InstallService -DbEnv LCP_DB_<NÉV>
sudo -H pwsh TranslatorServer/start-translatorserver.ps1 -InstallService -AccountUrl http://127.0.0.1:8100
sudo -H pwsh VoiceServer/start-voiceserver.ps1 -InstallService -AccountUrl http://127.0.0.1:8100
sudo -H pwsh CaptionServer/start-captionserver.ps1 -InstallService -GpuReserve 6144 -AccountUrl http://127.0.0.1:8100
- A feladatok címkéje
pro.livecaption.<szolgáltatás>, a leírójuk a/Library/LaunchDaemonsmappában áll. Mindegyik a saját rendszerfelhasználójával fut (például_lcp_captionserver), így egyik szolgáltatás sem olvashatja a másik titkát. - A program a
/Library/LiveCaptionPro/<szolgáltatás>, az adatgyökér a/Library/Application Support/LiveCaptionPro/<szolgáltatás>, a napló a/Library/Logs/LiveCaptionPro/<szolgáltatás>mappában él. - Leállítás:
sudo launchctl bootout system/pro.livecaption.captionserver; indítás:sudo launchctl bootstrap system /Library/LaunchDaemons/pro.livecaption.captionserver.plist; állapot:launchctl print system/pro.livecaption.captionserver. Egy kívülről leállított (példáulkillparanccsal megszakított) feladatot a rendszer újraindít – tartós leállításra abootoutvaló. - A telepítő a macOS alkalmazás-tűzfalában engedélyezi a programot, ha a tűzfal be van kapcsolva, és figyelmeztet, ha a gép alvásra van állítva.
- A fiókszolgáltatás adatbázisa: a bejelentkezés nélküli induláshoz a gépen kívül (a hálózaton) futó, vagy rendszerszintű PostgreSQL kell; a Docker Desktopban vagy a felhasználói
brew servicesalatt futó adatbázis csak bejelentkezés után él.
macOS: LaunchAgent, a felhasználói változat
A LaunchAgent a bejelentkezett felhasználó háttérfeladata: a bejelentkezéskor indul, kijelentkezéskor leáll. Root jog nélkül, a saját terminálablakából telepíthető, a -ServiceScope User kapcsolóval. A -Port kötelező, és nem lehet egyik szolgáltatás alapportja sem; az ajánlott az alapport + 10000:
pwsh AccountServer/start-accountserver.ps1 -InstallService -ServiceScope User -Port 18100 -DbEnv LCP_DB_<NÉV>
pwsh TranslatorServer/start-translatorserver.ps1 -InstallService -ServiceScope User -Port 18080 -AccountUrl http://127.0.0.1:18100
pwsh VoiceServer/start-voiceserver.ps1 -InstallService -ServiceScope User -Port 18090 -AccountUrl http://127.0.0.1:18100
pwsh CaptionServer/start-captionserver.ps1 -InstallService -ServiceScope User -Port 15111 -GpuReserve 6144 -AccountUrl http://127.0.0.1:18100
- A leíró a
~/Library/LaunchAgents/pro.livecaption.<szolgáltatás>.plist, a program a~/Library/LiveCaptionPro/<szolgáltatás>, az adatgyökér a~/Library/Application Support/LiveCaptionPro-Service/<szolgáltatás>, a napló a~/Library/Logs/LiveCaptionPro/<szolgáltatás>mappában él. - A webes felület portja a megadott port + 1 (a példában a fiókszolgáltatásé 18101).
- A modelleket a felhasználó saját modellmappáiból olvassa, másolás nélkül.
- Vezérlés
sudonélkül:launchctl bootout gui/$(id -u)/pro.livecaption.captionserverállítja le (a következő bejelentkezés újraindítja; tartósan alaunchctl disabletiltja le), alaunchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/pro.livecaption.captionserver.plistindítja. - A tűzfalhoz root kell, ezért bekapcsolt tűzfal mellett a telepítő csak kiírja a kézi parancsot (
sudo …/socketfilterfw), amit a hálózati eléréshez le kell futtatni. Eltávolítás után a bejegyzést ugyanígy, kézzel kell levenni.
Melyik macOS-változatot válassza
| Szempont | LaunchDaemon | LaunchAgent |
|---|---|---|
| mikor indul | a géppel, bejelentkezés nélkül | a felhasználó bejelentkezésekor |
| root jog | kell (sudo -H) |
nem szabad |
| ki futtatja | szolgáltatásonként saját rendszerfiók | a telepítő felhasználó |
| portok | az alapportok | kötelező, eltérő -Port |
| tűzfal | a telepítő engedélyezi | kézi parancs |
| kinek való | kiszolgáló szerepű gép | aki a saját munkamenetében, root nélkül akar felügyelt szolgáltatásokat |
Ugyanaz a szolgáltatás nem lehet egyszerre démon és ügynök: a másik változat előtt az egyiket el kell távolítani. macOS 15 óta egy program a helyi hálózat más gépeit csak a Helyi hálózat engedéllyel éri el (Rendszerbeállítások → Adatvédelem és biztonság → Helyi hálózat); ha egy szolgáltatás nem éri el a hálózati adatbázist vagy a másik gépet, először ezt nézze meg.
Szolgáltatásonként eltér
| Szolgáltatás | Ami csak rá áll |
|---|---|
| fiókszolgáltatás | az adatbázis bindingjét (a connection stringet tartó környezeti változó nevét) a -DbEnv adja, hiányában az alapértelmezett binding; a PostgreSQL-től nincs függőségi bejegyzés: ha az adatbázis 60 másodpercig nem érhető el, a szolgáltatás kilép, és a rendszer egy perc múlva újrapróbálja |
| fordító | a telepítő a gép teljes Hugging Face-gyorsítótárát a közös mappába másolja – ez akár több száz GB is lehet; a másolás előtt kiírja a méretet, és ha kevés a hely, megáll. Szűkített forrás: -ModelsFrom <mappa>, kihagyás: -ModelsFrom none |
| beszédszolgáltatás | gépszintű Python 3.10–3.12 kell (a felhasználói profilban telepítettet a szolgáltatás fiókja nem éri el); a modellt csak a -AcceptXttsLicense kapcsolóval tölti le |
| feliratozó | a -GpuReserve kötelező (MiB-ben vagy %-kal): ennyi videómemóriát hagy szabadon a többi szolgáltatásnak |
A kezdő rendszergazda szolgáltatásmódban
Szolgáltatásként a fiókszolgáltatás nem hoz létre kezdő rendszergazdát, mert a jelszót nem volna hova kiírnia. Ha az adatbázisban még nincs belépni képes rendszergazda:
- Windowson a
-CreateAdmin <név>kapcsoló a telepítés végén felveszi, és a jelszót a billentyűzetről kéri be; - Linuxon és macOS-en a telepítő a végén kiírja a három karbantartási parancsot (felhasználó felvétele, Administrator szerepkör, jelszó); ezeket a telepítés után a saját, nem
sudo-s ablakából futtassa.
Ha a szolgáltatások már konzolról futottak ugyanazzal az adatbázissal, a meglévő rendszergazda marad, nincs teendő.