diff options
Diffstat (limited to 'makefu/2configs/home/rhasspy')
-rw-r--r-- | makefu/2configs/home/rhasspy/default.nix | 40 | ||||
-rw-r--r-- | makefu/2configs/home/rhasspy/led-control.nix | 23 |
2 files changed, 63 insertions, 0 deletions
diff --git a/makefu/2configs/home/rhasspy/default.nix b/makefu/2configs/home/rhasspy/default.nix new file mode 100644 index 000000000..e3a0bcd28 --- /dev/null +++ b/makefu/2configs/home/rhasspy/default.nix @@ -0,0 +1,40 @@ +{ lib,config, ... }: +# uses alsa instead of pulseaduio server +let + profiles = "/var/lib/rhasspy"; +in +{ + systemd.services.docker-rhasspy.after = [ "network-online.target" ]; + + virtualisation.oci-containers.containers.rhasspy = { + image = "rhasspy/rhasspy:latest"; + + environment = { + TZ = "Europe/Berlin"; + PULSE_SERVER = "tcp:${ config.krebs.build.host.name }:4713"; + }; + + ports = [ + "12101:12101" + ]; + + volumes = [ + "/etc/localtime:/etc/localtime:ro" + "${profiles}:/profiles" + ]; + + cmd = [ "--user-profiles" "/profiles" "--profile" "de" ]; + extraOptions = [ + "--device=/dev/snd:/dev/snd" + "--group-add=audio" + ]; + }; + systemd.tmpfiles.rules = [ + "d ${profiles} 0770 root root - -" + ]; + + # required to allow rhasspy to connect to pulse server + # hardware.pulseaudio.enable = lib.mkForce false; + networking.firewall.allowedTCPPorts = [ 4713 ]; + +} diff --git a/makefu/2configs/home/rhasspy/led-control.nix b/makefu/2configs/home/rhasspy/led-control.nix new file mode 100644 index 000000000..b4efe028a --- /dev/null +++ b/makefu/2configs/home/rhasspy/led-control.nix @@ -0,0 +1,23 @@ +{ pkgs, ... }: +let + cfg = pkgs.writeText "hcl-config.json" (builtins.toJSON { + engine = "rhasspy"; + pathToConfig = "/var/lib/rhasspy/de/profile.json"; + hardware = "respeaker4MicArray"; + pattern = "fake-name"; + enableDoA = false; + }); +in { + systemd.services.HermesLedControl = { + description = "Led Server for ReSpeaker 4-array"; + after = [ "network-online.target" "docker-rhasspy.service" ] ; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + # User = "nobody"; # need a user with permissions to run nix-shell + ExecStart = "${pkgs.HermesLedControl}/bin/HermesLedControl --hermesLedControlConfig=${toString cfg}"; + Restart = "always"; + RestartSec = 10; + PrivateTmp = true; + }; + }; +} |