summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/home/rhasspy
diff options
context:
space:
mode:
Diffstat (limited to 'makefu/2configs/home/rhasspy')
-rw-r--r--makefu/2configs/home/rhasspy/default.nix40
-rw-r--r--makefu/2configs/home/rhasspy/led-control.nix23
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 00000000..e3a0bcd2
--- /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 00000000..b4efe028
--- /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;
+ };
+ };
+}