1
0
mirror of https://github.com/kmein/niveum synced 2026-03-21 20:31:07 +01:00

11 Commits

27 changed files with 120 additions and 140 deletions

3
.gitmodules vendored
View File

@@ -4,3 +4,6 @@
[submodule "submodules/menstruation-backend"]
path = submodules/menstruation-backend
url = https://github.com/kmein/menstruation.rs
[submodule "submodules/nur-packages"]
path = submodules/nur-packages
url = git@github.com:kmein/nur-packages.git

View File

@@ -1,9 +1,9 @@
{
"url": "https://github.com/nix-community/home-manager.git",
"rev": "7efd99ef876c220848553ae10218685d5e5d79cb",
"date": "2021-11-26T10:11:34+01:00",
"path": "/nix/store/20lhgax63asihn0vjg47bw5dawbpxl29-home-manager",
"sha256": "1y2nzxjwvk58jib1asm1awmzz5ccwwxdzf3ibjwm4nwfmy734fcv",
"rev": "3e93c4e8b2b479c712b7c20a428993b459118842",
"date": "2021-11-30T11:10:06+01:00",
"path": "/nix/store/nsfhkc6gkg3wf0b87z15zd0izp8j52av-home-manager",
"sha256": "0wgx47fyypbzpm2sbxj8xs846wvdkw1f76a8g3lbkxpla075vrl5",
"fetchSubmodules": false,
"deepClone": false,
"leaveDotGit": false

View File

@@ -1,9 +1,9 @@
{
"url": "https://github.com/NixOS/nixpkgs.git",
"rev": "1a5052b796aa8fda51be1dc4d6ac2f3054782d8a",
"date": "2021-11-29T10:58:51+00:00",
"path": "/nix/store/za8d8qsbkf3dq0w7p7nf761ca4glaj15-nixpkgs",
"sha256": "0vnlpljyzqdxj1f186zg9y8bqiv4y2jjslgi8nmrislhzd8x31ki",
"rev": "5d056884fbf7e5c693e17a1dbaf426e49f739b6a",
"date": "2021-12-01T07:35:38+01:00",
"path": "/nix/store/iqhw5vmfqqrmnwbbz247pjycvchnvsv0-nixpkgs",
"sha256": "1kcllypk4xl9kkzqi5ylmq0hnrs200a8wyk3wlh3g4g3zma2ams8",
"fetchSubmodules": false,
"deepClone": false,
"leaveDotGit": false

View File

@@ -1,9 +1,9 @@
{
"url": "https://github.com/NixOS/nixpkgs.git",
"rev": "4f37689c8a219a9d756c5ff38525ad09349f422f",
"date": "2021-11-26T19:36:35-05:00",
"path": "/nix/store/b717z4n0xindfadas8vdylxfy135iywm-nixpkgs",
"sha256": "1w8d2q2n0s8b3wjwvysrxcx3yr3dyna8144p64490a77r61d17y2",
"rev": "96b4157790fc96e70d6e6c115e3f34bba7be490f",
"date": "2021-11-30T21:39:06+08:00",
"path": "/nix/store/lcn20w73v7gcd121kr5kmmncrqkh5bw7-nixpkgs",
"sha256": "05m0gn1dy0cdlamwyiq276s770bm2pw8qx6s0mfrv3khpcvv186l",
"fetchSubmodules": false,
"deepClone": false,
"leaveDotGit": false

View File

@@ -1,10 +0,0 @@
{
"url": "https://github.com/nix-community/NUR",
"rev": "1dfa0d2680bcafcd29ce1a4c644dea88f758f207",
"date": "2021-11-29T08:55:09+00:00",
"path": "/nix/store/n12f49s6gznq7ikcplv95494b14dq6hd-NUR",
"sha256": "01906w1a6c9fpb13mkkrbpx2mjwhnxww0jpq0v7bmxzv594fbijg",
"fetchSubmodules": false,
"deepClone": false,
"leaveDotGit": false
}

View File

@@ -1,9 +1,9 @@
{
"url": "https://github.com/krebs/retiolum",
"rev": "f332d6f179806f63ffc8e1085c2fc344a104e340",
"date": "2021-11-28T00:02:56+01:00",
"path": "/nix/store/ahmrz3f5pdicc3w82py256zmxhrcfkn2-retiolum",
"sha256": "1qp3ma3m8apasa5nxf16jkhhgla26a86n95c3h23164drhxz11sr",
"rev": "aa6ff5e73bc6127676b79d5d9166279a135d667c",
"date": "2021-11-30T23:32:16+01:00",
"path": "/nix/store/7p7aa7ik2jc5csgvalw397lhpzvzgjg4-retiolum",
"sha256": "0rn113kxx1nk9zcjx0rfjjy002zvqrnk0lki6wlnlimqx8wjdb59",
"fetchSubmodules": false,
"deepClone": false,
"leaveDotGit": false

View File

@@ -1,9 +1,10 @@
{
"url": "https://cgit.krebsco.de/stockholm",
"rev": "09256b0e4f7ecc9259921839ef4a7a725785fb89",
"date": "2021-11-27T15:57:02+01:00",
"path": "/nix/store/ri3v4bywp5i1am0v8lnc8ixqi6ycy6dn-stockholm",
"sha256": "1y73m7hmhp6scx250aa9v2wg6gspgsnr2ldlwlf73bdhpizmbj6d",
"url": "https://cgit.lassul.us/stockholm",
"rev": "b79f5ab97db8115c4b2e66e57bb84587a31ce1e0",
"date": "2021-11-30T23:09:27+01:00",
"path": "/nix/store/ng83hpfszfnm3d80i5kv50qgqqsqgkrj-stockholm",
"sha256": "0g70jzya62nw3w6vwjdddn2i9hlm8r1d1f1wnl2bzibwx6p97bp6",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
"leaveDotGit": false

View File

@@ -44,21 +44,19 @@
openDefaultPorts = true;
configDir = "/home/kfm/.config/syncthing";
dataDir = "/home/kfm/.config/syncthing";
declarative = rec {
cert = toString <system-secrets/syncthing/cert.pem>;
key = toString <system-secrets/syncthing/key.pem>;
inherit ((import <niveum/lib>).syncthing) devices;
folders =
let cloud-dir = "${config.users.users.me.home}/cloud";
in {
"${cloud-dir}/syncthing/common".devices = [ "kabsa" "manakish" ];
"${cloud-dir}/syncthing/library".devices = [ "kabsa" "manakish" "heym" ];
"${cloud-dir}/syncthing/mundoiu".devices = [ "kabsa" "manakish" "heym" ];
"${cloud-dir}/syncthing/music" = {
devices = [ "kabsa" "manakish" "heym" "zaatar" ];
id = "music";
};
cert = toString <system-secrets/syncthing/cert.pem>;
key = toString <system-secrets/syncthing/key.pem>;
inherit ((import <niveum/lib>).syncthing) devices;
folders =
let cloud-dir = "${config.users.users.me.home}/cloud";
in {
"${cloud-dir}/syncthing/common".devices = [ "kabsa" "manakish" ];
"${cloud-dir}/syncthing/library".devices = [ "kabsa" "manakish" "heym" ];
"${cloud-dir}/syncthing/mundoiu".devices = [ "kabsa" "manakish" "heym" ];
"${cloud-dir}/syncthing/music" = {
devices = [ "kabsa" "manakish" "heym" "zaatar" ];
id = "music";
};
};
};
};
}

View File

@@ -15,13 +15,11 @@ in {
"nixpkgs-overlays=${toString ../overlays}"
];
}
{ services.dbus.packages = [ pkgs.gnome3.dconf ]; }
{
nixpkgs = {
config = {
allowUnfree = true;
packageOverrides = pkgs: {
nur = import <nur> { inherit pkgs; };
writeDashBin = pkgs.writers.writeDashBin;
writeDash = pkgs.writers.writeDash;
gfs-fonts = pkgs.callPackage <niveum/packages/gfs-fonts.nix> {};
@@ -67,6 +65,7 @@ in {
};
home-manager.users.me.xdg.enable = true;
home-manager.users.me.dconf.enable = false;
}
{
sound.enable = true;
@@ -161,8 +160,16 @@ in {
}
{
security.wrappers = {
pmount.source = "${pkgs.pmount}/bin/pmount";
pumount.source = "${pkgs.pmount}/bin/pumount";
pmount = {
owner = config.users.users.me.name;
group = "users";
source = "${pkgs.pmount}/bin/pmount";
};
pumount = {
owner = config.users.users.me.name;
group = "users";
source = "${pkgs.pmount}/bin/pumount";
};
};
}
{ programs.command-not-found.enable = true; }

View File

@@ -51,7 +51,7 @@ in {
isSystemUser = true;
createHome = true;
home = cacheLocation;
extraGroups = [ flixGroup ];
group = flixGroup;
};
environment.systemPackages = [

View File

@@ -4,8 +4,8 @@ let
geogen = (pkgs.fetchFromGitHub {
owner = "kmein";
repo = "scripts";
rev = "c553c212efb04c300edf675c39a87fffd32d4def";
sha256 = "0b5xjr7qqgvwc76pqr84p81svzk6nqr5pdvc6daw94rcgdy02mva";
rev = "8945430f27a8c6fd632dd35382cb094abe3543ff";
sha256 = "1djyxkynypxsrmdf6idgjszqpcgqyq607rrsvl58p2bpymmwibzb";
}) + "/onomastics";
inherit (pkgs.callPackage geogen {}) dependencyEnv;
in

View File

@@ -96,9 +96,5 @@ in
};
};
networking.networkmanager.dispatcherScripts = [
{ source = "${pkgs.nur.repos.makefu.prison-break}/bin/prison-break"; }
];
environment.systemPackages = [ pkgs.speedtest-cli ];
}

View File

@@ -1,5 +1,6 @@
{ pkgs, lib, ... }:
let
passwordFile = path: toString (pkgs.writeText "password" (lib.strings.fileContents path));
inherit (import <niveum/lib>) localAddresses;
in
{
@@ -23,8 +24,8 @@ in
dbuser = "nextcloud";
dbhost = "/run/postgresql"; # nextcloud will add /.s.PGSQL.5432 by itself
dbname = "nextcloud";
dbpass = lib.strings.fileContents <system-secrets/nextcloud/database>;
adminpass = lib.strings.fileContents <system-secrets/nextcloud/admin>;
dbpassFile = passwordFile <system-secrets/nextcloud/database>;
adminpassFile = passwordFile <system-secrets/nextcloud/admin>;
adminuser = "admin";
# extraTrustedDomains = [ "toum.r" ];
};

View File

@@ -52,7 +52,6 @@ in {
wget
whois
ix
nur.repos.kmein.python3Packages.instaloader
dnsutils
# mtr # my traceroute
# FILE MANAGERS
@@ -133,10 +132,9 @@ in {
scripts.devanagari
scripts.betacode # ancient greek betacode to unicode converter
scripts.meteo
nur.repos.kmein.mahlzeit
scripts.mahlzeit
recht
# nur.repos.kmein.slide
nur.repos.kmein.vimv
scripts.vimv
scripts.swallow # window swallowing
scripts.genius
scripts.instaget

View File

@@ -2,10 +2,10 @@
environment.systemPackages = [
(pkgs.python3.withPackages (py: [
py.black
py.python-language-server
py.pyls-mypy
py.pyls-black
py.pyls-isort
# py.python-language-server
# py.pyls-mypy
# py.pyls-black
# py.pyls-isort
py.flake8
py.pygments
py.schema

View File

@@ -63,7 +63,7 @@ in {
latexrun
(aspellWithDicts (dict: [ dict.de dict.en dict.en-computers ]))
# haskellPackages.pandoc-citeproc
nur.repos.kmein.text2pdf
scripts.text2pdf
lowdown
glow # markdown to term
libreoffice

View File

@@ -63,7 +63,11 @@ in
})
];
users.extraUsers.radio.isSystemUser = true;
users.extraUsers.radio = {
isSystemUser = true;
group = "radio";
};
users.groups.radio = {};
krebs.htgen.radio = {
port = htgenPort;

View File

@@ -1,18 +1,17 @@
{ pkgs, ... }:
{ config, pkgs, lib, ... }:
let
network = "retiolum";
stateDirectory = "retiolum-map";
geo-ip-database = pkgs.fetchurl {
url = "http://c.krebsco.de/GeoLite2-City.mmdb";
sha256 = "01lcmphcw4lgy02v9sa5xly991nsk0x0w6vm0dcr1mq6zg4b15v5";
};
geo-ip-database = "${lib.head config.services.geoipupdate.settings.EditionIDs}.mmdb";
geo-ip-database-path = "${config.services.geoipupdate.settings.DatabaseDirectory}/${geo-ip-database}";
tinc-graph-source = pkgs.fetchFromGitHub {
owner = "kmein";
repo = "tinc-graph";
rev = "cd563ce69f221f297ec3836aa97425c06306827f";
sha256 = "0as1mqbrlsjvylfvdn7f5574fq84w4xbm7gm38vm1fligwa2a3sq";
rev = "50593204faa663422f95d7df2931382e7301f8d6";
sha256 = "16cqsnyz6iyw8p395bmam4zvnmzvfz9lhxviscai9sa0imd7rwz2";
};
tinc-graph = pkgs.callPackage tinc-graph-source {};
in
@@ -21,7 +20,7 @@ in
description = "Retiolum indexing service";
wants = [ "tinc.${network}.service" ];
script = ''
${tinc-graph}/bin/tinc-graph --geoip-file ${geo-ip-database} --network ${network} \
${tinc-graph}/bin/tinc-graph --geoip-file ${geo-ip-database-path} --network ${network} \
| ${pkgs.coreutils}/bin/tee network.json \
| ${tinc-graph}/bin/tinc-statistics > statistics.json
@@ -38,6 +37,15 @@ in
};
};
services.geoipupdate = {
enable = true;
settings = {
AccountID = 608777;
LicenseKey = toString <system-secrets/maxmind/license.key>;
EditionIDs = [ "GeoLite2-City" ];
};
};
services.nginx = {
enable = true;
recommendedGzipSettings = true;
@@ -46,4 +54,15 @@ in
recommendedTlsSettings = true;
virtualHosts."graph.r".locations."/".root = "/var/lib/${stateDirectory}";
};
systemd.services.geoip-share = {
after = [ "geoipupdate.service" ];
script = let
cyberlocker-tools = pkgs.callPackage <stockholm/krebs/5pkgs/simple/cyberlocker-tools> {};
in "${cyberlocker-tools}/bin/cput ${geo-ip-database} < ${geo-ip-database-path}";
serviceConfig = {
Type = "oneshot";
DynamicUser = true;
};
};
}

View File

@@ -4,46 +4,6 @@ let
in{
home-manager.users.me.programs.rofi = {
enable = true;
separator = "solid";
scrollbar = false;
borderWidth = 0;
lines = 5;
font = "Monospace 10";
colors = rec {
window = rec {
background = colours.foreground;
border = background;
separator = colours.black.bright;
};
rows = {
normal = {
background = window.background;
backgroundAlt = window.background;
foreground = colours.background;
highlight = {
foreground = colours.cyan.dark;
inherit (window) background;
};
};
active = {
background = window.background;
backgroundAlt = window.background;
foreground = colours.yellow.dark;
highlight = {
foreground = colours.green.dark;
inherit (window) background;
};
};
urgent = {
background = window.background;
backgroundAlt = window.background;
foreground = colours.red.dark;
highlight = {
foreground = colours.magenta.dark;
inherit (window) background;
};
};
};
};
};
}

View File

@@ -19,17 +19,15 @@ in
openDefaultPorts = true;
configDir = "${mpd-directory}/.config/syncthing";
dataDir = "${mpd-directory}/.config/syncthing";
declarative = rec {
cert = toString <system-secrets/syncthing/cert.pem>;
key = toString <system-secrets/syncthing/key.pem>;
devices = {
inherit ((import <niveum/lib>).syncthing.devices) kabsa manakish heym;
};
folders.${config.services.mpd.musicDirectory} = {
devices = [ "heym" "kabsa" "manakish" ];
id = "music";
type = "receiveonly";
};
cert = toString <system-secrets/syncthing/cert.pem>;
key = toString <system-secrets/syncthing/key.pem>;
devices = {
inherit ((import <niveum/lib>).syncthing.devices) kabsa manakish heym;
};
folders.${config.services.mpd.musicDirectory} = {
devices = [ "heym" "kabsa" "manakish" ];
id = "music";
type = "receiveonly";
};
};

View File

@@ -128,8 +128,11 @@ in
home = urlwatchDir;
createHome = true;
isSystemUser = true;
group = "urlwatch";
};
users.groups.urlwatch = {};
systemd.services.urlwatch = {
enable = true;
startAt = "*-*-* 05:00:00";
@@ -140,6 +143,7 @@ in
'';
serviceConfig = {
User = config.users.extraUsers.urlwatch.name;
Group = config.users.groups.urlwatch.name;
WorkingDirectory = config.users.extraUsers.urlwatch.home;
PermissionsStartOnly = "true";
PrivateTmp = "true";

View File

@@ -23,7 +23,6 @@ let
home-manager.git = gitFromJson .versions/home-manager.json;
stockholm.git = gitFromJson .versions/stockholm.json;
retiolum.git = gitFromJson .versions/retiolum.json;
nur.git = gitFromJson .versions/nur.json;
nixpkgs-mozilla.git = gitFromJson .versions/nixpkgs-mozilla.json;
system-secrets.pass = {
dir = toString ~/.password-store;

View File

@@ -56,6 +56,7 @@ in {
users.users.moodle-dl = {
isSystemUser = true;
home = cfg.directory;
group = "moodle-dl";
};
users.groups.moodle-dl = {};

View File

@@ -76,7 +76,11 @@ in {
};
config = mkIf cfg.enable {
users.extraUsers.tuna.isSystemUser = true;
users.users.tuna = {
isSystemUser = true;
group = "tuna";
};
users.groups.tuna = {};
# ref https://github.com/florianheinemann/MPD.FM/blob/9d037cf87597b26ae2f10ba9feea48946ad6cc68/service/MPD.FM.service
systemd.services.tuna = {
wantedBy = [ "multi-user.target" ];

View File

@@ -1,5 +1,6 @@
{ pkgs, lib, ... }:
let
nur = import <niveum/submodules/nur-packages> {};
kpaste = pkgs.callPackage <stockholm/krebs/5pkgs/simple/kpaste> { };
wrapScript = { packages ? [ ], name, script }:
pkgs.writers.writeDashBin name ''
@@ -95,7 +96,7 @@ in rec {
'';
tag = wrapScript {
packages = [ pkgs.vorbisTools pkgs.python3Packages.eyeD3 pkgs.nur.repos.kmein.opustags ];
packages = [ pkgs.vorbisTools pkgs.python3Packages.eyeD3 nur.opustags ];
script = "${voidrice}/.local/bin/tag";
name = "tag";
};
@@ -293,7 +294,7 @@ in rec {
'';
betacode = pkgs.writers.writePython3Bin "betacode" {
libraries = [ pkgs.nur.repos.kmein.python3Packages.betacode ];
libraries = [ nur.python3Packages.betacode ];
} ''
import betacode.conv
import sys
@@ -402,4 +403,4 @@ in rec {
curl -L "https://github.com/Mic92/nix-index-database/releases/download/$tag/files" -o $XDG_RUNTIME_DIR/files-$tag
mv $XDG_RUNTIME_DIR/files-$tag $HOME/.cache/nix-index/files
'';
}
} // nur

View File

@@ -1,5 +1,5 @@
{ pkgs ? import <nixpkgs> { }
, release ? "21.05"
, release ? "21.11"
}:
let
inherit (pkgs) lib;
@@ -27,7 +27,7 @@ let
};
stockholm = {
ref = "refs/heads/master";
url = "https://cgit.krebsco.de/stockholm";
url = "https://cgit.lassul.us/stockholm";
path = toString .versions/stockholm.json;
};
retiolum = {
@@ -35,11 +35,6 @@ let
url = "https://github.com/krebs/retiolum";
path = toString .versions/retiolum.json;
};
nur = {
ref = "refs/heads/master";
url = "https://github.com/nix-community/NUR";
path = toString .versions/nur.json;
};
nixpkgs-mozilla = {
ref = "refs/heads/master";
url = "https://github.com/mozilla/nixpkgs-mozilla";