From 44c7b520fe4efe07ee948ae08398fd84e4c0a890 Mon Sep 17 00:00:00 2001 From: Astro Date: Thu, 10 Dec 2020 15:24:45 +0100 Subject: [PATCH] pulsebert: update to nixos-20.09 + working octoprint --- hosts/pulsebert/configuration.nix | 54 +++++++++++++++++++++++-------- krops.nix | 2 +- 2 files changed, 41 insertions(+), 15 deletions(-) diff --git a/hosts/pulsebert/configuration.nix b/hosts/pulsebert/configuration.nix index 78b6b6d0..cf01abcf 100644 --- a/hosts/pulsebert/configuration.nix +++ b/hosts/pulsebert/configuration.nix @@ -6,7 +6,7 @@ { imports = [ # Include the results of the hardware scan. - ./hardware-configuration.nix + ]; boot.loader.grub.enable = false; @@ -119,27 +119,53 @@ services.avahi = { enable = true; publish.enable = true; + publish.addresses = true; publish.userServices = true; }; - # Enable the X11 windowing system. - # services.xserver.enable = true; - # services.xserver.layout = "us"; - # services.xserver.xkbOptions = "eurosign:e"; + services.octoprint = rec { + enable = true; + port = 80; + # extraConfig.webcam = { + # snapshot = "http://localhost:5050?action=snapshot"; + # stream = "http://octoprint.local:5050?action=stream"; + # }; + # plugins = let + # python = pkgs.octoprint.python; - # Enable touchpad support. - # services.xserver.libinput.enable = true; + # octoprint-filament-sensor-universal = python.pkgs.buildPythonPackage rec { + # pname = "OctoPrint-Filament-Sensor-Universal"; + # version = "1.0.0"; - # Enable the KDE Desktop Environment. - # services.xserver.displayManager.sddm.enable = true; - # services.xserver.desktopManager.plasma5.enable = true; + # src = pkgs.fetchFromGitHub { + # owner = "lopsided98"; + # repo = pname; + # rev = "8a72696867a9a008c5a79b49a9b029a4fc426720"; + # sha256 = "1a7lzmjbwx47qhrkjp3hggiwnx172x4axcz0labm9by17zxlsimr"; + # }; - # Define a user account. Don't forget to set a password with ‘passwd’. - # users.users.jane = { - # isNormalUser = true; - # extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. + # propagatedBuildInputs = [ pkgs.octoprint python.pkgs.libgpiod ]; + # }; + # #in p: [ octoprint-filament-sensor-universal ]; + # in p: []; + }; + # Allow binding to port 80 + systemd.services.octoprint.serviceConfig.AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; + + # Allow access to printer serial port and GPIO + users.users.${config.services.octoprint.user}.extraGroups = [ "dialout" "gpio" ]; + + # services.mjpg-streamer = { + # enable = true; + # inputPlugin = "input_uvc.so -r 1280x720"; # }; + # Allow gpio group to access GPIO devices + users.groups.gpio = { }; + services.udev.extraRules = '' + KERNEL=="gpiochip*", GROUP="gpio", MODE="0660" + ''; + # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave diff --git a/krops.nix b/krops.nix index 124ee6d4..2b7c132b 100644 --- a/krops.nix +++ b/krops.nix @@ -40,7 +40,7 @@ in { }; }; pulsebert = pkgs.krops.writeDeploy "pulsebert" { - source = hostSource "pulsebert" "nixos-unstable"; + source = hostSource "pulsebert" "nixos-20.09"; target = lib.mkTarget "k-ot@pulsebert.hq.c3d2.de" // { sudo = true; };