Merge remote-tracking branch 'gum/master'
This commit is contained in:
commit
c89f76a0bd
@ -74,6 +74,11 @@ in {
|
||||
retiolum.ip4.addr = "10.243.12.12";
|
||||
};
|
||||
};
|
||||
snake = {
|
||||
nets = {
|
||||
retiolum.ip4.addr = "10.243.12.13";
|
||||
};
|
||||
};
|
||||
|
||||
studio = rec {
|
||||
ci = false;
|
||||
@ -145,6 +150,7 @@ in {
|
||||
telex.nets.wiregrill = {
|
||||
aliases = ["telex.w"];
|
||||
ip6.addr = (krebs.genipv6 "wiregrill" "makefu" { hostName = "telex"; }).address;
|
||||
ip4.addr = "10.244.245.4";
|
||||
};
|
||||
|
||||
latte = rec {
|
||||
|
13
kartei/makefu/retiolum/snake.pub
Normal file
13
kartei/makefu/retiolum/snake.pub
Normal file
@ -0,0 +1,13 @@
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIICCgKCAgEApRUsm8oiTCx5kqFqCUaDyI3iesCajS76lzCGa1HdeBVLvejyit4s
|
||||
Vx848/Gr2Axbtqx8Fm3RUj29CEUTCUKQdEEOVE58bQ+euSRL/V7g+v+1NSGYSEwp
|
||||
Xvojczppjm0e56kI0yngZh++6AM4/6eMWEQl3u45ZRFXH11ZfoZb+Z3jRAUk1FXt
|
||||
rWyrNQ5kGOwNaTk0+mXB8irtYrjyehfZuzyE2z1GelKrSMM03jCFFzVqPu5irYIm
|
||||
TghRhFMXIG9bm+gM+bj/GNHs2RHL633PUqI/I5Hj6trNBfqbcu7gpB9F6Edtqgtb
|
||||
lQm0Qei/l4AQIxfA3LqNuTHaXp4LBG9IH2qvXSxsqWlgDnjg3CEJ8ZwpOzT7xFG2
|
||||
0NSRcAl+4i55j24ZxwWgS9H0Al3LMLzwVsToUfH9fGm1vtJ8ku8sx0AALVzVyabR
|
||||
M5ywyi5oRhan/JZywFsACLDUFMiFqI/MIj6ao0pSZYaUXfKMtMCgJJ03NqWak8lc
|
||||
yInBgIlEQgxljKW0LHeHoToBzuXhy70gtNswS61iKpuMDxbBYtyK1HuN8PS+vzS8
|
||||
svtbV3lvqJA2KcVlqwwgDwvzPX+T0kbI4UL3EjFIU2nepGNaRA1AWmTMrpdEPNdx
|
||||
4RPg5EZDVp+Jeihjxpa8aOb3yjkE5i6K00TyjsSIJqWy296PfJC4VBsCAwEAAQ==
|
||||
-----END RSA PUBLIC KEY-----
|
1
kartei/makefu/retiolum/snake_ed25519.pub
Normal file
1
kartei/makefu/retiolum/snake_ed25519.pub
Normal file
@ -0,0 +1 @@
|
||||
Ed25519PublicKey = lKMWnuEVjcSoSEUWrj+51pwDQrQj2TqloL3aBKVWBbO
|
1
kartei/makefu/sshd/snake.pub
Normal file
1
kartei/makefu/sshd/snake.pub
Normal file
@ -0,0 +1 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBfIivSIxnkH212vtHiWPiUJcjSRrv3d4eVfkIahJA7S makefu@x
|
26
makefu/1systems/snake/config.nix
Normal file
26
makefu/1systems/snake/config.nix
Normal file
@ -0,0 +1,26 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
primaryInterface = "eth0";
|
||||
in {
|
||||
imports = [
|
||||
<stockholm/makefu>
|
||||
./hardware-config.nix
|
||||
<stockholm/makefu/2configs/home-manager>
|
||||
<stockholm/makefu/2configs/tools/core.nix>
|
||||
<stockholm/makefu/2configs/binary-cache/nixos.nix>
|
||||
|
||||
<stockholm/makefu/2configs/home/rhasspy>
|
||||
<stockholm/makefu/2configs/home/rhasspy/led-control.nix>
|
||||
];
|
||||
krebs = {
|
||||
enable = true;
|
||||
tinc.retiolum.enable = true;
|
||||
build.host = config.krebs.hosts.snake;
|
||||
};
|
||||
# ensure disk usage is limited
|
||||
services.journald.extraConfig = "Storage=volatile";
|
||||
networking.firewall.trustedInterfaces = [ primaryInterface ];
|
||||
documentation.info.enable = false;
|
||||
documentation.man.enable = false;
|
||||
documentation.nixos.enable = false;
|
||||
}
|
64
makefu/1systems/snake/disk.nix
Normal file
64
makefu/1systems/snake/disk.nix
Normal file
@ -0,0 +1,64 @@
|
||||
{ disks ? [ "/dev/sda" ], ... }: {
|
||||
disk = {
|
||||
x = {
|
||||
type = "disk";
|
||||
device = "/dev/sda";
|
||||
content = {
|
||||
type = "table";
|
||||
format = "gpt";
|
||||
partitions = [
|
||||
{
|
||||
name = "boot";
|
||||
type = "partition";
|
||||
start = "0";
|
||||
end = "1M";
|
||||
part-type = "primary";
|
||||
flags = ["bios_grub"];
|
||||
}
|
||||
{
|
||||
type = "partition";
|
||||
name = "ESP";
|
||||
start = "1M";
|
||||
end = "512MiB";
|
||||
fs-type = "fat32";
|
||||
bootable = true;
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "partition";
|
||||
name = "zfs";
|
||||
start = "512MiB";
|
||||
end = "100%";
|
||||
content = {
|
||||
type = "zfs";
|
||||
pool = "zroot";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
zpool = {
|
||||
zroot = {
|
||||
type = "zpool";
|
||||
rootFsOptions.compression = "lz4";
|
||||
mountpoint = "/";
|
||||
|
||||
datasets = {
|
||||
home = {
|
||||
zfs_type = "filesystem";
|
||||
mountpoint = "/home";
|
||||
options.mountpoint = "legacy";
|
||||
};
|
||||
reserved = {
|
||||
zfs_type = "filesystem";
|
||||
options.refreservation = "1G";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
21
makefu/1systems/snake/hardware-config.nix
Normal file
21
makefu/1systems/snake/hardware-config.nix
Normal file
@ -0,0 +1,21 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
<nixpkgs/nixos/modules/installer/scan/not-detected.nix>
|
||||
];
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.version = 2;
|
||||
boot.loader.grub.efiSupport = true;
|
||||
boot.loader.grub.device = "/dev/sda";
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "sd_mod" ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
disko.devices = import ./disk.nix;
|
||||
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
hardware.cpu.amd.updateMicrocode = true;
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
|
||||
|
||||
boot.kernelParams = [ "net.ifnames=0" ];
|
||||
networking.hostId = "0123AABB";
|
||||
}
|
7
makefu/1systems/snake/source.nix
Normal file
7
makefu/1systems/snake/source.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
name="cake";
|
||||
full = true;
|
||||
home-manager = true;
|
||||
hw = true;
|
||||
disko = true;
|
||||
}
|
@ -22,6 +22,7 @@ in {
|
||||
# <stockholm/makefu/2configs/virtualisation/virtualbox.nix>
|
||||
<stockholm/makefu/2configs/tinc/retiolum.nix>
|
||||
<stockholm/makefu/2configs/gui/wbob-kiosk.nix>
|
||||
{ environment.systemPackages = [ pkgs.kodi pkgs.nano ]; }
|
||||
|
||||
# <stockholm/makefu/2configs/gui/studio-virtual.nix>
|
||||
# <stockholm/makefu/2configs/audio/jack-on-pulse.nix>
|
||||
|
@ -10,6 +10,7 @@ in {
|
||||
# ./puppy-proxy.nix
|
||||
|
||||
./zigbee2mqtt
|
||||
./rhasspy.nix
|
||||
|
||||
# hass config
|
||||
## complex configs
|
||||
@ -64,6 +65,7 @@ in {
|
||||
extraOptions = ["--net=host" ];
|
||||
volumes = [
|
||||
"${confdir}:/config"
|
||||
"/data/music:/config/media"
|
||||
#"${confdir}/docker-run:/etc/services.d/home-assistant/run:"
|
||||
];
|
||||
};
|
||||
|
41
makefu/2configs/bureautomation/rhasspy.nix
Normal file
41
makefu/2configs/bureautomation/rhasspy.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{ config, ... }:
|
||||
let
|
||||
profiles = "/var/lib/rhasspy";
|
||||
kiosk_id = toString config.users.users.kiosk.uid;
|
||||
in
|
||||
{
|
||||
virtualisation.oci-containers.containers.rhasspy = {
|
||||
image = "rhasspy/rhasspy:latest";
|
||||
|
||||
environment = {
|
||||
TZ = "Europe/Berlin";
|
||||
#PULSE_SERVER = "unix:/run/user/0/pulse/native";
|
||||
PULSE_SERVER = "tcp:${ config.krebs.build.host.name }:4713";
|
||||
|
||||
};
|
||||
|
||||
ports = [
|
||||
"12101:12101"
|
||||
# "12183:12183"
|
||||
];
|
||||
#user = kiosk_id;
|
||||
|
||||
volumes = [
|
||||
"/etc/localtime:/etc/localtime:ro"
|
||||
"${profiles}:/profiles"
|
||||
# TODO pulseaudio
|
||||
#"/run/user/${kiosk_id}/pulse/native:/run/user/0/pulse/native"
|
||||
#"${config.users.users.kiosk.home}/.config/pulse/cookie:/root/.config/pulse/cookie:ro"
|
||||
];
|
||||
|
||||
cmd = [ "--user-profiles" "/profiles" "--profile" "de" ];
|
||||
extraOptions = [
|
||||
"--device=/dev/snd:/dev/snd" "--group-add=audio"
|
||||
"--net=host"
|
||||
];
|
||||
};
|
||||
systemd.tmpfiles.rules = [
|
||||
"d ${profiles} 0770 root root - -"
|
||||
];
|
||||
systemd.services.docker-rhasspy.after = [ "desktop-manager.service" ];
|
||||
}
|
@ -16,6 +16,7 @@ in
|
||||
permit_join = true;
|
||||
serial.port = "/dev/cc2531";
|
||||
homeassistant = true;
|
||||
frontend.port = 8521;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -68,7 +68,7 @@ with import <stockholm/lib>;
|
||||
};
|
||||
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
nano = pkgs.runCommand "empty" {} "mkdir -p $out";
|
||||
#nano = pkgs.runCommand "empty" {} "mkdir -p $out";
|
||||
tinc = pkgs.tinc_pre;
|
||||
};
|
||||
|
||||
|
@ -11,7 +11,8 @@
|
||||
"YouCompleteMe"
|
||||
#"UltiSnips"
|
||||
# vim-nix handles indentation better but does not perform sanity
|
||||
"vim-addon-nix"
|
||||
"vim-nix"
|
||||
# "vim-addon-nix"
|
||||
"vim-better-whitespace"
|
||||
];
|
||||
};
|
||||
|
@ -7,7 +7,7 @@ set listchars=tab:▸\
|
||||
filetype off
|
||||
filetype plugin indent on
|
||||
|
||||
colorscheme darkblue
|
||||
colorscheme desert
|
||||
set background=dark
|
||||
|
||||
set number
|
||||
@ -49,6 +49,10 @@ set matchtime=3
|
||||
set hlsearch
|
||||
|
||||
autocmd ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red
|
||||
hi MatchParen cterm=none ctermbg=green ctermfg=blue
|
||||
|
||||
let g:better_whitespace_enabled=1
|
||||
let g:strip_whitespace_on_save=1
|
||||
|
||||
|
||||
" save on focus lost
|
||||
|
@ -26,5 +26,19 @@
|
||||
{
|
||||
platform = "met";
|
||||
}
|
||||
{
|
||||
platform = "openweathermap";
|
||||
api_key = "!secret openweathermap";
|
||||
language = "de";
|
||||
mode = "hourly";
|
||||
}
|
||||
{
|
||||
platform = "tomorrowio";
|
||||
api_key = "!secret tomorrowio";
|
||||
}
|
||||
{ platform = "octoprint"; }
|
||||
{ platform = "accuweather";
|
||||
api_key = "!secret accuweather";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
54
makefu/5pkgs/HermesLedControl/default.nix
Normal file
54
makefu/5pkgs/HermesLedControl/default.nix
Normal file
@ -0,0 +1,54 @@
|
||||
{ lib, pkgs, python3Packages, makeWrapper, ... }:
|
||||
|
||||
# How to use:
|
||||
# create configuration .config/HermesLedControl/configuration.yml:
|
||||
# engine: "rhasspy"
|
||||
# pathToConfig: "/var/lib/rhasspy/de/profile.json"
|
||||
# hardware: "respeaker4MicArray"
|
||||
# pattern: "fake-name"
|
||||
# enableDoA: false
|
||||
|
||||
|
||||
with python3Packages; buildPythonApplication rec {
|
||||
name = "HermesLedControl-${version}";
|
||||
format = "other";
|
||||
version = "3.0.4";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "project-alice-assistant";
|
||||
repo = "HermesLedControl";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-fVbTQPSo3fNjLb8PDDDqhMC9Hez01rTH46cKz/mfwoU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./remove-logger.patch
|
||||
];
|
||||
|
||||
execWrapper = ''
|
||||
#!/bin/sh
|
||||
cd $out/lib/HermesLedControl && \
|
||||
PYTHONPATH="${makePythonPath propagatedBuildInputs}" exec \
|
||||
${python}/bin/python "$out/lib/HermesLedControl/main.py" "$@"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -d "$out/lib/"
|
||||
install -d "$out/bin"
|
||||
cp -r . $out/lib/HermesLedControl
|
||||
|
||||
echo "${execWrapper}" > HermesLedControl
|
||||
install -Dm755 HermesLedControl $out/bin/HermesLedControl
|
||||
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
spidev gpiozero rpi-gpio pyyaml paho-mqtt types-pyyaml makeWrapper
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/project-alice-assistant/HermesLedControl";
|
||||
description = "Provides an easy way to control your leds in an Hermes environment";
|
||||
license = lib.licenses.gpl3;
|
||||
};
|
||||
}
|
31
makefu/5pkgs/HermesLedControl/remove-logger.patch
Normal file
31
makefu/5pkgs/HermesLedControl/remove-logger.patch
Normal file
@ -0,0 +1,31 @@
|
||||
diff --git a/main.py b/main.py
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index 9b5a269..350d443
|
||||
--- a/main.py
|
||||
+++ b/main.py
|
||||
@@ -1,3 +1,4 @@
|
||||
+#!/usr/bin/env python3
|
||||
from logging import handlers
|
||||
|
||||
import logging
|
||||
@@ -17,18 +18,6 @@ _logger.setLevel(logging.DEBUG)
|
||||
|
||||
date = int(datetime.now().strftime('%Y%m%d'))
|
||||
|
||||
-handler = logging.FileHandler(filename='logs.log', mode='w')
|
||||
-rotatingHandler = handlers.RotatingFileHandler(filename=f'./logs/{date}-logs.log', mode='a', maxBytes=100000, backupCount=5)
|
||||
-streamHandler = logging.StreamHandler()
|
||||
-
|
||||
-handler.setFormatter(formatter)
|
||||
-rotatingHandler.setFormatter(formatter)
|
||||
-streamHandler.setFormatter(formatter)
|
||||
-
|
||||
-_logger.addHandler(handler)
|
||||
-_logger.addHandler(rotatingHandler)
|
||||
-_logger.addHandler(streamHandler)
|
||||
-
|
||||
|
||||
def stopHandler(_signum, frame):
|
||||
onStop()
|
||||
|
@ -1,86 +0,0 @@
|
||||
{ lib, stdenv
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, gd
|
||||
, libusb1
|
||||
, cups
|
||||
, libpng
|
||||
, perl
|
||||
, perlPackages
|
||||
, libxml2
|
||||
, ghostscript
|
||||
, a2ps
|
||||
, wget
|
||||
, file
|
||||
, foomatic-filters
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "foomatic-db-engine";
|
||||
version = "2020-01-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenPrinting";
|
||||
repo = "foomatic-db-engine-4";
|
||||
rev = "bd265b77a9f66f672bf1e3f0803145f2eccabf06";
|
||||
sha256 = "1f53kd3b0sxgx7hg2dvw2624bpwdfcx0zh4dn0h89l84mirgw1bs";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
perl
|
||||
makeWrapper
|
||||
];
|
||||
postConfigure = ''
|
||||
sed -i "s#$ENV{BINDIR}#${placeholder "out"}/bin#" makeDefaults
|
||||
'';
|
||||
configureFlags = [
|
||||
#"PERL_INSTALLDIRS=vendor"
|
||||
"PERL_INSTALLDIRS=site"
|
||||
"--prefix=/"
|
||||
"PERLPREFIX=/"
|
||||
#"DESTDIR=$(out)"
|
||||
#"sysconfdir=/etc"
|
||||
"LIBDIR=/lib"
|
||||
#"PERL_INSTALLDIRS=site"
|
||||
#"PERL_INSTALLDIRS=perl"
|
||||
#PERL_INSTALLDIRS=perl"
|
||||
"PERL=${perl}/bin/perl"
|
||||
"FILEUTIL=${file}/bin/file"
|
||||
"SBINDIR=/bin"
|
||||
];
|
||||
makeFlags = [
|
||||
"DESTDIR=${placeholder "out"}"
|
||||
"PERLLIB=$(out)/${perlPackages.perl.libPrefix}"
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cups
|
||||
ghostscript
|
||||
a2ps
|
||||
wget
|
||||
perl
|
||||
libxml2
|
||||
file
|
||||
foomatic-filters
|
||||
];
|
||||
postFixup = ''
|
||||
echo cups > "$out"/etc/foomatic/defaultspooler
|
||||
|
||||
for file in $out/bin/foomatic-*;do
|
||||
wrapProgram "$file" \
|
||||
--set PERL5LIB "$out/${perlPackages.perl.libPrefix}" \
|
||||
--prefix PATH : "$out/bin"
|
||||
done
|
||||
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Command line tool to print labels on Brother P-Touch printers on Linux";
|
||||
license = licenses.gpl3Plus;
|
||||
homepage = "https://mockmoon-cybernetics.ch/computer/p-touch2430pc/";
|
||||
maintainers = with maintainers; [ shamilton ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user