diff --git a/hosts/heather/tuwunel-admin.nix b/hosts/heather/tuwunel-admin.nix index 8a6b5f6..e0a6f9b 100644 --- a/hosts/heather/tuwunel-admin.nix +++ b/hosts/heather/tuwunel-admin.nix @@ -8,46 +8,14 @@ # Слушает 127.0.0.1:8009 → Caddy admin.iscg.dev терминирует TLS (см. caddy.nix). # Конфиг: /var/lib/tuwunel-admin/config.toml (вне git, root:root 0644). # -# Бинарь: публичного docker-образа НЕТ, но есть prebuilt static musl бинарник -# в GitHub releases (v0.1.0, x86_64-unknown-linux-musl). Тащим через fetchurl + -# оборачиваем в nix-деривацию — воспроизводимо, переживает пересоздание VM. -# heather = x86_64-linux, поэтому берём x86_64-musl asset. При появлении aarch64 -# хоста — добавить второй fetchurl или собирать из исходников (Cargo.toml + lock). +# Бинарь: публичного docker-образа НЕТ. Это статический x86_64 бинарник v0.0.0 +# (скопирован с iscg-dev-jul11 2026-07-13), лежит ВНЕ nix-store: +# /var/lib/tuwunel-admin/tuwunel-admin +# При пересоздании heather с нуля — перескопировать с jul11 или скачать релиз +# https://github.com/knadh/tuwunel-admin/releases (v0.1.0+). { config, pkgs, lib, ... }: - -let - tuwunel-admin = pkgs.stdenv.mkDerivation rec { - pname = "tuwunel-admin"; - version = "0.1.0"; - - # Prebuilt static musl binary (x86_64 only). sha256 из checksums.txt релиза. - src = pkgs.fetchurl { - url = "https://github.com/knadh/tuwunel-admin/releases/download/v${version}/tuwunel-admin_${version}_x86_64-unknown-linux-musl.tar.gz"; - sha256 = "a22c345f414f9af34d28f7b9166922b736e8774737f67038252d5422f47a2201"; - }; - - # tar.gz с tuwunel-admin (бинарь) + LICENSE + README. Просто копируем бинарь. - dontBuild = true; - dontConfigure = true; - - installPhase = '' - runHook preInstall - install -Dm555 tuwunel-admin $out/bin/tuwunel-admin - install -Dm444 LICENSE $out/share/licenses/tuwunel-admin/LICENSE - install -Dm444 README.md $out/share/doc/tuwunel-admin/README.md - runHook postInstall - ''; - - meta = with lib; { - description = "Web admin UI for tuwunel Matrix homeserver"; - homepage = "https://github.com/knadh/tuwunel-admin"; - license = licenses.asl20; - mainProgram = "tuwunel-admin"; - platforms = [ "x86_64-linux" ]; - }; - }; -in { +{ systemd.services.tuwunel-admin = { description = "tuwunel-admin (Matrix admin web UI)"; after = [ "network-online.target" ]; @@ -55,12 +23,11 @@ in { wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "simple"; - # Бинарь из nix-store (деривация выше), конфиг вне git на хосте. - ExecStart = "${tuwunel-admin}/bin/tuwunel-admin --config /var/lib/tuwunel-admin/config.toml"; + ExecStart = "/var/lib/tuwunel-admin/tuwunel-admin --config /var/lib/tuwunel-admin/config.toml"; WorkingDirectory = "/var/lib/tuwunel-admin"; Restart = "on-failure"; RestartSec = 5; - # Статический бинарь, рут-запуск (биндит 127.0.0.1:8009, читает config.toml). + # Бинарь статический, рут-запуск ок (биндит 127.0.0.1:8009). User = "root"; Environment = [ "HOME=/var/lib/tuwunel-admin" ]; };