heather: expose paseo as password-only daemon endpoint
This commit is contained in:
parent
70e95226d4
commit
656bce449c
2 changed files with 14 additions and 22 deletions
|
|
@ -33,15 +33,6 @@ let
|
|||
}
|
||||
'';
|
||||
|
||||
# paseo basicauth — внешний слой. Внутренний: парольная auth самого демона
|
||||
# (PASEO_PASSWORD, /var/lib/paseo-secrets/paseo.env). Пароли в pass:
|
||||
# iscg.dev/paseo/basicauth (caddy) и iscg.dev/paseo/daemon (paseo daemon).
|
||||
paseoBasicAuth = ''
|
||||
basicauth {
|
||||
mikl $2a$14$4ZfTWjquFPOoKyq9NA.IJeX9y3lxQO1l0J7iXSnr/.8oqJoblM8jy
|
||||
}
|
||||
'';
|
||||
|
||||
in {
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
|
|
@ -134,9 +125,10 @@ Allow: /" 200
|
|||
reverse_proxy 127.0.0.1:30141
|
||||
'';
|
||||
|
||||
# paseo (self-hosted web UI для CLI-агентов, systemd paseo.service)
|
||||
# Два слоя auth: basicauth (здесь) + парольная auth демона (PASEO_PASSWORD).
|
||||
"paseo.iscg.dev".extraConfig = paseoBasicAuth + ''
|
||||
# paseo daemon endpoint для desktop/mobile-клиентов.
|
||||
# Basic Auth здесь намеренно нет: мобильный клиент Paseo его не умеет.
|
||||
# Доступ защищён встроенным PASEO_PASSWORD самого демона.
|
||||
"paseo.iscg.dev".extraConfig = ''
|
||||
reverse_proxy 127.0.0.1:6767
|
||||
'';
|
||||
|
||||
|
|
|
|||
|
|
@ -3,18 +3,18 @@
|
|||
# https://github.com/getpaseo/paseo, npm-пакет @getpaseo/cli
|
||||
# Daemon управляет агентами как дочерними процессами (provider = CLI на хосте,
|
||||
# со своими кредами). Слушает 127.0.0.1:6767 → Caddy paseo.iscg.dev терминирует
|
||||
# TLS + basicauth (внешний слой, см. caddy.nix paseoBasicAuth).
|
||||
# TLS. Этот hostname предназначен для desktop/mobile-клиентов: bundled web UI
|
||||
# выключен, а Caddy Basic Auth намеренно не используется — мобильный клиент не
|
||||
# умеет проходить дополнительный Basic Auth слой.
|
||||
#
|
||||
# Auth два слоя:
|
||||
# 1) встроенная парольная auth демона (bcrypt, Bearer header + WS subprotocol,
|
||||
# Auth: встроенная парольная auth демона (bcrypt, Bearer header + WS subprotocol,
|
||||
# без пароля — 401). Пароль: PASEO_PASSWORD из EnvironmentFile
|
||||
# /var/lib/paseo-secrets/paseo.env (mikl:users 600), plaintext в
|
||||
# pass iscg.dev/paseo/daemon.
|
||||
# 2) Caddy basicauth, пароль в pass iscg.dev/paseo/basicauth.
|
||||
#
|
||||
# Конфиг демона: ~/.paseo/config.json (hostnames: paseo.iscg.dev — DNS rebinding
|
||||
# protection, webUi enabled, relay off, dictation/voice off — не качать
|
||||
# speech-модели). Хост-allowlist проверен: чужой Host → 403.
|
||||
# protection, webUi disabled, relay off, dictation/voice off). Хост-allowlist
|
||||
# проверен: чужой Host → 403.
|
||||
#
|
||||
# Установка @getpaseo/cli — ручная (npm global в ~/.npm-global, как pi-web):
|
||||
# npm i -g @getpaseo/cli # node-pty собирается без тулчейна (prebuilds)
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
Type = "simple";
|
||||
User = "mikl";
|
||||
Group = "users";
|
||||
ExecStart = "/home/mikl/.npm-global/bin/paseo daemon start --foreground --web-ui --no-relay";
|
||||
ExecStart = "/home/mikl/.npm-global/bin/paseo daemon start --foreground --no-web-ui --no-relay";
|
||||
EnvironmentFile = "/var/lib/paseo-secrets/paseo.env";
|
||||
WorkingDirectory = "/home/mikl";
|
||||
Restart = "on-failure";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue