Commit graph

185 commits

Author SHA1 Message Date
a293f1f999 remove kaneo 2026-09-10 13:59:05 +03:00
fd339edcdc remove pi-web 2026-09-10 13:54:33 +03:00
4109a9d3ec heather: provide sh to paseo tool runner 2026-09-09 21:44:24 +03:00
77a55756cd heather: add procps to paseo PATH 2026-09-09 21:12:01 +03:00
381ac43f75 heather: fix paseo PATH directories 2026-09-09 21:05:46 +03:00
c4c1a485bf heather: add git to paseo service PATH 2026-09-09 21:04:40 +03:00
656bce449c heather: expose paseo as password-only daemon endpoint 2026-09-09 20:58:28 +03:00
heather
70e95226d4 heather: pinchtab browser control plane (chromium + user service) + pay x86_64 build 2026-09-09 17:19:03 +00:00
fc27c08fa8 heather: add paseo daemon (systemd + caddy vhost paseo.iscg.dev, dual auth) 2026-09-09 20:15:28 +03:00
d015be0c4f heather: expose only pi in user PATH 2026-08-03 09:09:29 +03:00
917b28ec4b heather: add npm global bin to user PATH 2026-08-03 09:08:18 +03:00
252d082c37 fix(mesh): refresh egress DNS with getent and route clients 2026-08-03 08:55:11 +03:00
ab718ac336 heather: remove mistaken hemo Kaneo alias 2026-08-03 08:51:53 +03:00
56bb3d7f7c feat(mesh): add selected Telegram and OpenRouter egress policy 2026-08-03 08:41:57 +03:00
6e88f2c833 heather: fix Kaneo dashboard icon 2026-08-03 08:38:51 +03:00
724948de7e feat(mesh): add Sol-style lilac client pool 2026-08-03 08:30:35 +03:00
cf25eb4f35 heather: add hemo.iscg.dev alias for Kaneo 2026-08-03 00:55:36 +03:00
9abae8d2f5 fix(mesh): create heather identity interface with systemd 2026-08-03 00:36:52 +03:00
55bb222eb5 fix(mesh): rotate hyacinth peer key 2026-08-03 00:34:10 +03:00
69bdc051f6 feat(mesh): add heather WireGuard backbone peer 2026-08-03 00:17:36 +03:00
d1bfecc2e1 heather: add Kaneo with PostgreSQL 2026-08-02 22:08:50 +03:00
heather
7cfa5c31f8 robots.txt modified 2026-07-30 16:14:27 +00:00
2deae7db13 heather/caddy: rename nix.iscg.dev → files.iscg.dev
Опечатка. DNS и директория /var/www/nix → /var/www/pub переименованы.
2026-07-28 13:27:12 +03:00
67d6c1b6e6 heather/caddy: revert /files rewrite, add nix.iscg.dev file explorer
- /files/* back to plain file_server (v2RayTun.zip stays at iscg.dev/files/)
- nix.iscg.dev: file_server browse (directory listing) from /var/www/nix
- DNS nix.iscg.dev A → 51.250.45.111 added via yc dns
2026-07-28 13:20:04 +03:00
3d2f4172a5 heather/caddy: add /files/* static file_server on iscg.dev
Для раздачи временных файлов (например v2RayTun.zip) прямой https-ссылкой.
handle_path stripает /files/ prefix, file_server раздаёт из /var/www/files/.
Не конфликтует с matrix (использует /_matrix/*, /.well-known/matrix).
2026-07-28 13:08:14 +03:00
c8f6ee04e8 poppy/cli: add matrix-commander-rs (Matrix CLI client for agent) 2026-07-26 21:20:33 +03:00
ebfdb3e186 poppy: add android-tools (adb for Pixel) 2026-07-25 14:41:49 +03:00
0fe7665072 poppy: add weekly nix GC launchd agent (delete-older-than 14d)
nix.gc.automatic requires nix.enable=true, but poppy uses the
Determinate nix installer (nix.enable=false). Define a launchd
user agent directly that runs nix-collect-garbage --delete-older-than 14d
weekly at Sun 03:00.
2026-07-16 13:16:50 +03:00
fcb6f67cab feat(home): add lem CLI via flake input (ssh-fetched private repo) 2026-07-16 02:15:02 +03:00
37b1ac80db feat(home): add lem CLI via flake input 2026-07-16 02:13:40 +03:00
64b4274d9b poppy: add python313 and uv to home/cli.nix
System python is 3.9 (macOS), too old for telegram-mcp (needs >=3.10).
Added python313 and uv via home-manager. Also staged home/pay.nix
which was untracked and blocked nix builds.
2026-07-15 21:35:38 +03:00
2aac5b7731 poppy/cli: add transmission_4, yt-dlp, himalaya, pay CLI tools
- transmission_4: BitTorrent daemon + -remote/-create/-show/-edit/-cli
  (transmission alias was removed in nixpkgs in favour of transmission_4)
- yt-dlp: download from YouTube and 1000+ sites
- himalaya: IMAP/SMTP/JMAP mail CLI (JSON output for agent)
- pay: x402/MPP agentic payments CLI via callPackage ./pay.nix
2026-07-15 14:16:26 +03:00
a30aea52bf heather/jitsi: drop jvb 127.0.0.1:8080 publish (conflicts with cinny, not needed — colibri-ws proxied via jitsi-web nginx on alias jvb:9090) 2026-07-13 22:37:51 +03:00
5db2900db2 heather: drop 'systemd, not container' from homepage descriptions 2026-07-13 16:09:19 +03:00
06e1232185 heather: add pi-web to homepage dashboard 2026-07-13 16:03:18 +03:00
355f5eb9f1
poppy: add pi -> 127.0.0.1 alias for local pi-web
Декларативное правило в /etc/hosts через extraActivation,
чтобы работала короткая ссылка http://pi:30141 на локальный
pi-web (@agegr/pi-web, порт 30141). Идемпотентно.
2026-07-13 15:40:07 +03:00
9d1f451d5f heather/server: git credential.helper=store for https forgejo auth
Токены для https://git.iscg.dev хранятся в ~/.git-credentials (plaintext,
chmod 600, вне git/nix). Нужен для clone приватных репо (memory, pass) с heather,
где ssh deploy key только на nix-config.
2026-07-13 15:18:38 +03:00
87faa84104 heather: add pi-web service + Caddy vhost pi.iscg.dev with basicauth
pi-web (agegr/pi-web, npm @agegr/pi-web) — web UI для pi coding agent.
systemd service на 127.0.0.1:30141, Caddy pi.iscg.dev терминирует TLS +
basicauth (bcrypt, пароль в pass iscg.dev/pi-web/auth).
nodejs в systemPackages; pi и pi-web ставятся в ~/.npm-global вручную.
2026-07-13 13:21:34 +03:00
78c39d6f5d heather: homepage teable icon -> local /images/teable.png (420px GH avatar)
teable has no dashboard-icons entry and favicon is 16x16 .ico. Use the
teableio GitHub avatar (420x420 png) placed in /var/lib/homepage-images/.
Next.js caches static file list at container start, so adding images
requires docker restart homepage.
2026-07-13 03:44:26 +03:00
fca00e1368 heather: homepage live container status via docker-socket-proxy
tecnativa/docker-socket-proxy (read-only, CONTAINERS=1, POST=0) exposes
docker API to homepage over compose network. Per-service server/container
in services.yaml → green dot status. statusStyle: dot. Syncthing and
tuwunel-admin are systemd, no container status.
2026-07-13 03:34:58 +03:00
c070b2a972 heather: homepage fixes - bookmark href format, jitsi-meet icon, teable favicon
bookmarks.yaml needs href: key (was bare URL → new URL() crash).
jitsi.png -> jitsi-meet.png (proper brand icon in dashboard-icons).
teable has no dashboard-icons entry -> use teable.iscg.dev/favicon.ico.
2026-07-13 03:32:32 +03:00
1ccc59dd8d heather: homepage background image + frosted cardBlur
Background photo (mounted ro from /var/lib/homepage-images into
/app/public/images). cardBlur: md for matte semi-transparent service
cards. opacity 70 to soften the photo.
2026-07-13 03:20:29 +03:00
190c93156e heather: xray - override command to -config (image default is -confdir) 2026-07-13 03:15:26 +03:00
d3d132e225 heather: set HOMEPAGE_ALLOWED_HOSTS for host validation 2026-07-13 03:09:18 +03:00
6e84e26d2d heather: xray VLESS+Reality proxy on :8443
Add xray-core container (ghcr.io/xtls/xray-core) to arion compose.
VLESS + Reality + xtls-rprx-vision, masquerades as www.microsoft.com.
Config (UUID + Reality privateKey) at /var/lib/xray-secrets/config.json
(outside git, root:docker 0640). Public port 8443, not behind Caddy.
Secrets in pass iscg.dev/xray/. Client: v2RayTun / v2rayN.
2026-07-13 03:05:48 +03:00
fe5c01062e heather: add homepage dashboard (home.iscg.dev)
gethomepage/homepage container with all heather services listed:
forgejo, syncthing, tuwunel-admin, tuwunel, cinny, jitsi,
silverbullet, teable. Configs baked via pkgs.writeText (ro bind mount).
Caddy vhost home.iscg.dev -> 127.0.0.1:3002.
2026-07-13 03:04:42 +03:00
4830425107 heather: revert tuwunel-admin to manual binary (outside nix-store)
Revert the fetchurl nix derivation. Keep the static binary at
/var/lib/tuwunel-admin/tuwunel-admin (copied from jul11, v0.0.0).
Service already runs this version on heather (nix derivation was pushed
but never deployed).
2026-07-13 02:52:19 +03:00
6c4f7daf42 heather: tuwunel-admin via nix derivation (fetchurl prebuilt binary)
Replace manually-copied /var/lib/tuwunel-admin/tuwunel-admin binary with a
nix derivation: fetchurl of GitHub release v0.1.0 x86_64-musl static binary
(sha256 verified against checksums.txt). Binary now lives in nix-store,
survives VM recreation. Config stays at /var/lib/tuwunel-admin/config.toml
(outside git, root:root 0644).
2026-07-13 02:49:00 +03:00
741a404ba8 heather: matrix tuwunel (homeserver) + cinny + tuwunel-admin
- tuwunel arion container: ghcr.io/matrix-construct/tuwunel:v1.7.1,
  server_name=iscg.dev, allow_federation, registration via token.
  Media on Yandex Object Storage (S3) bucket iscg-tuwunel-media.
  Config (tuwunel.toml w/ s3 secret + reg token) bind-mounted from
  /var/lib/tuwunel-secrets/ (outside git, root:docker 0640).
- cinny arion container: ajbura/cinny:latest, config from
  /var/lib/tuwunel-secrets/cinny-config.json, default homeserver iscg.dev.
- tuwunel-admin systemd service: static x86_64 binary (no public docker
  image) at /var/lib/tuwunel-admin/tuwunel-admin, binds 127.0.0.1:8009.
  Caddy admin.iscg.dev terminates TLS.

Fresh install — no users/media migrated from old jul11.
2026-07-13 02:01:59 +03:00
61e71b3ee4 heather: enable jitsi guest access (lobby) + patch prosody guest websocket
- ENABLE_GUESTS=1 in web/prosody/jicofo: unauthenticated users join via
  guest.meet.jitsi domain, wait in lobby until moderator (mikl) admits
- Patched prosody template mounted at /defaults/conf.d/jitsi-meet.cfg.lua:
  adds 'websocket' module to guest VirtualHost (upstream bug — guest domain
  only had 'smacks', no 'websocket' → wss disconnect loop)
- Template at /var/lib/jitsi-secrets/jitsi-meet.cfg.lua.template (root:root 0644)
- Fixes: mobile/anonymous users couldn't join, got disconnect loop
2026-07-13 01:37:20 +03:00