mirror of
https://github.com/kmein/niveum
synced 2026-03-20 12:01:06 +01:00
Compare commits
19 Commits
aac1053e1d
...
e6ac020fd2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e6ac020fd2 | ||
| 9a3499ab6c | |||
| 92442db877 | |||
| d2f85ab972 | |||
| b593f45ec2 | |||
| e9b09a3e67 | |||
| 8c9a44d404 | |||
| 45fdbad259 | |||
| 93b8d31a33 | |||
| abb7924fca | |||
| 0c872352e3 | |||
| 31e765da41 | |||
| d655faef3e | |||
| 2f5b177158 | |||
| 4bc176ea42 | |||
| 4b63d1b671 | |||
| dd86c24506 | |||
| 88c73b23a1 | |||
| 3675ab8161 |
@@ -30,6 +30,7 @@ in {
|
||||
tocharian-font = pkgs.callPackage <niveum/packages/tocharian-font.nix> {};
|
||||
iolanguage = pkgs.callPackage <niveum/packages/iolanguage.nix> {};
|
||||
ix = pkgs.callPackage <niveum/packages/ix.nix> {};
|
||||
unstable = import <nixpkgs-unstable> {inherit (config.nixpkgs) config;};
|
||||
};
|
||||
};
|
||||
overlays = [
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{pkgs, ...}: let
|
||||
nixpkgs-unstable = import <nixpkgs-unstable> {};
|
||||
in {
|
||||
{pkgs, ...}: {
|
||||
nixpkgs.config.joypixels.acceptLicense = true;
|
||||
fonts = {
|
||||
enableDefaultFonts = true;
|
||||
@@ -9,17 +7,17 @@ in {
|
||||
alegreya
|
||||
alegreya-sans
|
||||
amiri
|
||||
nixpkgs-unstable.annapurna-sil
|
||||
unstable.annapurna-sil
|
||||
cantarell-fonts
|
||||
charis-sil
|
||||
corefonts
|
||||
crimson
|
||||
eb-garamond
|
||||
etBook
|
||||
nixpkgs-unstable.ezra-sil
|
||||
unstable.ezra-sil
|
||||
fira
|
||||
font-awesome-ttf
|
||||
nixpkgs-unstable.galatia-sil
|
||||
unstable.galatia-sil
|
||||
gentium
|
||||
gfs-fonts
|
||||
gyre-fonts
|
||||
|
||||
@@ -5,6 +5,17 @@
|
||||
}: {
|
||||
imports = [<niveum/modules/hledger.nix>];
|
||||
|
||||
environment.systemPackages = let
|
||||
timeLedger = "$HOME/projects/ledger/time.timeclock";
|
||||
in [
|
||||
(pkgs.writers.writeDashBin "hora-edit" ''
|
||||
$EDITOR + "${timeLedger}" && ${pkgs.git}/bin/git -C "$(${pkgs.coreutils}/bin/dirname ${timeLedger})" commit --all --message "$(${pkgs.coreutils}/bin/date -Im)"
|
||||
'')
|
||||
(pkgs.writers.writeDashBin "hora" ''
|
||||
${pkgs.hledger}/bin/hledger -f "${timeLedger}" "$@"
|
||||
'')
|
||||
];
|
||||
|
||||
niveum.hledger = {
|
||||
enable = true;
|
||||
ledgerFile = "$HOME/projects/ledger/all.journal";
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
"devanagari" = pkgs.writers.writeDash "devanagari" ''
|
||||
${pkgs.scripts.devanagari}/bin/devanagari
|
||||
'';
|
||||
"avesta" = pkgs.writeScript "avesta" (builtins.readFile <niveum/packages/scripts/avesta.sed>);
|
||||
"curl" = pkgs.writers.writeDash "curl" ''
|
||||
${pkgs.curl}/bin/curl -fSs "$(${pkgs.coreutils}/bin/cat)"
|
||||
'';
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
menstruation = pkgs.callPackage <menstruation-backend> {};
|
||||
pandoc-doc = pkgs.callPackage <niveum/packages/man/pandoc.nix> {};
|
||||
|
||||
nixpkgs-unstable = import <nixpkgs-unstable> {config.allowUnfree = true;};
|
||||
|
||||
zoteroStyle = {
|
||||
name,
|
||||
sha256,
|
||||
@@ -35,7 +33,7 @@
|
||||
})
|
||||
];
|
||||
|
||||
astrolog = nixpkgs-unstable.astrolog.overrideAttrs (old:
|
||||
astrolog = pkgs.unstable.astrolog.overrideAttrs (old:
|
||||
old
|
||||
// {
|
||||
installPhase = ''
|
||||
@@ -124,10 +122,10 @@ in {
|
||||
electrum
|
||||
inkscape
|
||||
astrolog
|
||||
nixpkgs-unstable.anki # flashcards
|
||||
unstable.anki # flashcards
|
||||
jbofihe # lojbanic software
|
||||
nixpkgs-unstable.zoom-us # video conferencing
|
||||
nixpkgs-unstable.alejandra # nix formatter
|
||||
unstable.zoom-us # video conferencing
|
||||
unstable.alejandra # nix formatter
|
||||
pdfgrep # search in pdf
|
||||
pdftk # pdf toolkit
|
||||
mupdf
|
||||
@@ -136,7 +134,6 @@ in {
|
||||
xournalpp # for annotating pdfs
|
||||
pdfpc # presenter console for pdf slides
|
||||
hc # print files as qr codes
|
||||
youtubeDL
|
||||
yt-dlp
|
||||
espeak
|
||||
bc # calculator
|
||||
@@ -176,7 +173,6 @@ in {
|
||||
scripts.fkill
|
||||
scripts.wttr
|
||||
scripts.unicodmenu
|
||||
scripts.horoscope
|
||||
scripts.closest
|
||||
scripts.trans
|
||||
scripts.mpv-radio
|
||||
|
||||
@@ -25,6 +25,11 @@ in {
|
||||
port = sshPort;
|
||||
};
|
||||
makanek = {
|
||||
hostname = "88.99.83.173";
|
||||
user = "root";
|
||||
port = sshPort;
|
||||
};
|
||||
"makanek.r" = {
|
||||
hostname = "makanek.r";
|
||||
user = "root";
|
||||
port = sshPort;
|
||||
@@ -57,9 +62,15 @@ in {
|
||||
hostname = "135.181.85.233";
|
||||
user = "root";
|
||||
};
|
||||
oracle = {
|
||||
hostname = "130.61.171.199";
|
||||
user = "ubuntu";
|
||||
"ful.r" = {
|
||||
hostname = "ful.r";
|
||||
user = "root";
|
||||
port = sshPort;
|
||||
};
|
||||
ful = {
|
||||
hostname = "130.61.217.114";
|
||||
user = "root";
|
||||
port = sshPort;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
nixpkgs-unstable = import <nixpkgs-unstable> {};
|
||||
toSymbols = pkgs.writers.writeDash "to-symbols" ''
|
||||
${pkgs.gnused}/bin/sed '
|
||||
s/\bTri\b/△/;
|
||||
@@ -50,8 +49,8 @@ in {
|
||||
now=$(${pkgs.coreutils}/bin/date +%_H:%M | ${pkgs.gnused}/bin/sed 's/^\s*//')
|
||||
date=$(${pkgs.coreutils}/bin/date +'%m %d %Y')
|
||||
{
|
||||
${nixpkgs-unstable.astrolog}/bin/astrolog -qd $date -zN Berlin -Yt -Yd -d -R Uranus Neptune Pluto "North Node"
|
||||
${nixpkgs-unstable.astrolog}/bin/astrolog -Yt -Yd -q 10 22 1999 6:32 -zN Kassel -td $date -R Uranus Neptune Pluto "North Node"
|
||||
${pkgs.unstable.astrolog}/bin/astrolog -qd $date -zN Berlin -Yt -Yd -d -R Uranus Neptune Pluto "North Node"
|
||||
${pkgs.unstable.astrolog}/bin/astrolog -Yt -Yd -q 10 22 1999 6:32 -zN Kassel -td $date -R Uranus Neptune Pluto "North Node"
|
||||
} | ${toSymbols} | ${pkgs.coreutils}/bin/sort -n | ${pkgs.gnugrep}/bin/grep "^$now" || :
|
||||
'');
|
||||
};
|
||||
|
||||
38
flake.lock
generated
38
flake.lock
generated
@@ -2,11 +2,11 @@
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1652557277,
|
||||
"narHash": "sha256-jSes9DaIVMdmwBB78KkFUVrlDzawmD62vrUg0GS2500=",
|
||||
"lastModified": 1652776076,
|
||||
"narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "12806d31a381e7cd169a6bac35590e7b36dc5fe5",
|
||||
"rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -109,11 +109,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1652442528,
|
||||
"narHash": "sha256-ctD9BdjN7e6cBipm8k9xt+vgwlRApkvuJLSNdaVrphE=",
|
||||
"lastModified": 1653087707,
|
||||
"narHash": "sha256-zfno3snrzZTWQ2B7K53QHrGZwrjnJLTRPalymrSsziU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "79385ae0aacf7e02871cc8af0623123419dd7884",
|
||||
"rev": "cbd40c72b2603ab54e7208f99f9b35fc158bc009",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -125,11 +125,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1652576583,
|
||||
"narHash": "sha256-FhSixtJktylN1lnflPYgZfoH++6/VpC7euoV8RcBKSY=",
|
||||
"lastModified": 1653180606,
|
||||
"narHash": "sha256-dYJLG7fgp4/SAhOM5d725KZtCVZuEMS6tSI098n7SA0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e9132b233ec7176c121b4ecb991ce397d92275ee",
|
||||
"rev": "af0bcde689ed5263e9a0df36116f7583163eb032",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -158,11 +158,11 @@
|
||||
"retiolum": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1652292767,
|
||||
"narHash": "sha256-3/ENvvvva5BiQH8YP6AHwMpApuut9CqhfjrLaoikcno=",
|
||||
"lastModified": 1653077783,
|
||||
"narHash": "sha256-GiL82w4BVSZZV5gIQSoEf+KoJaIkUv+29vZmmWlKb6I=",
|
||||
"owner": "krebs",
|
||||
"repo": "retiolum",
|
||||
"rev": "7cc2a7118e4aa9f5df0953bebad28034306329e6",
|
||||
"rev": "1b5154c3ed9f3cb751afc3e306a1b20e3358ffe5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -210,11 +210,11 @@
|
||||
"stockholm": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1652292290,
|
||||
"narHash": "sha256-QTBV3X6rFHU8H58phKT+V5Trous17aZbSRDB8Yp1i1c=",
|
||||
"lastModified": 1652980569,
|
||||
"narHash": "sha256-LJcveSM7m3YBzF7F9jpfQtEbkuHX86QdE0DDdPiX0Yg=",
|
||||
"ref": "master",
|
||||
"rev": "c87ba30c0c1cf344c7cc090d73a2ba44140f15d9",
|
||||
"revCount": 10537,
|
||||
"rev": "5befc5a6f260e2283863212b39749d5ed05afb63",
|
||||
"revCount": 10545,
|
||||
"type": "git",
|
||||
"url": "https://cgit.lassul.us/stockholm"
|
||||
},
|
||||
@@ -242,11 +242,11 @@
|
||||
"tinc-graph": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1639820904,
|
||||
"narHash": "sha256-d4s2PulBGIIQXtX7blZz+Wnmij5dK/IrBcilNGjqZC4=",
|
||||
"lastModified": 1653080212,
|
||||
"narHash": "sha256-BcfppAuVNp0hMcrMG/ZxE4juSrdQbJSUIA0eHS1/Wxo=",
|
||||
"owner": "kmein",
|
||||
"repo": "tinc-graph",
|
||||
"rev": "1b9c69ffdbdab82d30a23e44f739feea63d94163",
|
||||
"rev": "ea0ef2e5542684d1d8e34a626cb9295dec33e70d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -119,7 +119,10 @@
|
||||
type = "app";
|
||||
program = deployScriptFor {
|
||||
inherit name;
|
||||
host = "${name}.r";
|
||||
host =
|
||||
if name != "ful"
|
||||
then "${name}.r"
|
||||
else "130.61.217.114";
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
ipv6 = "42:0:3c46:861f:a118:8e9a:82c9:3d";
|
||||
};
|
||||
|
||||
ful = {
|
||||
ipv4 = "10.243.2.107";
|
||||
ipv6 = "42:0:3c46:2c8b:a564:1213:9fb4:1bc4";
|
||||
};
|
||||
|
||||
zaatar = {
|
||||
ipv4 = "10.243.2.34";
|
||||
ipv6 = "42:0:3c46:156e:10b6:3bd6:6e82:b2cd";
|
||||
|
||||
54
packages/scripts/avesta.sed
Executable file
54
packages/scripts/avesta.sed
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env -S sed -f
|
||||
s/ā̊/𐬃/g
|
||||
s/t̰/𐬝/g
|
||||
s/ṣ̌/𐬴/g
|
||||
s/š́/𐬳/g
|
||||
s/ą̄/𐬅/g
|
||||
s/ŋᵛ/𐬤/g
|
||||
s/ə̄/𐬇/g
|
||||
s/ŋ́/𐬣/g
|
||||
s/x́/𐬒/g
|
||||
s/xᵛ/𐬓/g
|
||||
s/a/𐬀/g
|
||||
s/ā/𐬁/g
|
||||
s/å/𐬂/g
|
||||
s/ą/𐬄/g
|
||||
s/ə/𐬆/g
|
||||
s/e/𐬈/g
|
||||
s/ē/𐬉/g
|
||||
s/o/𐬊/g
|
||||
s/ō/𐬋/g
|
||||
s/i/𐬌/g
|
||||
s/ī/𐬍/g
|
||||
s/u/𐬎/g
|
||||
s/ū/𐬏/g
|
||||
s/k/𐬐/g
|
||||
s/x/𐬑/g
|
||||
s/g/𐬔/g
|
||||
s/ġ/𐬕/g
|
||||
s/γ/𐬖/g
|
||||
s/c/𐬗/g
|
||||
s/j/𐬘/g
|
||||
s/t/𐬙/g
|
||||
s/θ/𐬚/g
|
||||
s/d/𐬛/g
|
||||
s/δ/𐬜/g
|
||||
s/p/𐬞/g
|
||||
s/f/𐬟/g
|
||||
s/b/𐬠/g
|
||||
s/β/𐬡/g
|
||||
s/ŋ/𐬢/g
|
||||
s/n/𐬥/g
|
||||
s/ń/𐬦/g
|
||||
s/ṇ/𐬧/g
|
||||
s/m/𐬨/g
|
||||
s/m̨/𐬩/g
|
||||
s/ẏ/𐬪/g
|
||||
s/y/𐬫/g
|
||||
s/v/𐬬/g
|
||||
s/r/𐬭/g
|
||||
s/s/𐬯/g
|
||||
s/z/𐬰/g
|
||||
s/š/𐬱/g
|
||||
s/ž/𐬲/g
|
||||
s/h/𐬵/g
|
||||
@@ -77,7 +77,7 @@ in
|
||||
writers.writeDashBin "unicodmenu" ''
|
||||
history_file=$HOME/.cache/unicodmenu
|
||||
PATH=${lib.makeBinPath [coreutils dmenu gnused libnotify xclip xdotool]}
|
||||
chosen=$(cat "$history_file" ${kaomoji-file} ${unicode-file} | dmenu -p unicode -i -l 10 | tee "$history_file" | sed "s/ .*//")
|
||||
chosen=$(cat "$history_file" ${kaomoji-file} ${unicode-file} | dmenu -p unicode -i -l 10 | tee --append "$history_file" | sed "s/ .*//")
|
||||
|
||||
[ "$chosen" != "" ] || exit
|
||||
|
||||
|
||||
48
systems/ful/configuration.nix
Normal file
48
systems/ful/configuration.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (import <niveum/lib>) kieran retiolumAddresses;
|
||||
in {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
# <niveum/configs/monitoring.nix>
|
||||
<niveum/configs/nix.nix>
|
||||
<niveum/configs/save-space.nix>
|
||||
<niveum/configs/spacetime.nix>
|
||||
<niveum/configs/sshd.nix>
|
||||
<niveum/modules/retiolum.nix>
|
||||
];
|
||||
|
||||
nix.nixPath = ["/var/src"];
|
||||
|
||||
networking = {
|
||||
firewall.allowedTCPPorts = [80 443];
|
||||
hostName = "ful";
|
||||
interfaces.enp0s3.useDHCP = true;
|
||||
retiolum = retiolumAddresses.ful;
|
||||
useDHCP = false;
|
||||
};
|
||||
|
||||
system.stateVersion = "21.11";
|
||||
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
recommendedGzipSettings = true;
|
||||
recommendedOptimisation = true;
|
||||
recommendedProxySettings = true;
|
||||
recommendedTlsSettings = true;
|
||||
sslCiphers = "AES256+EECDH:AES256+EDH:!aNULL";
|
||||
};
|
||||
|
||||
security.acme = {
|
||||
acceptTerms = true;
|
||||
email = kieran.email;
|
||||
};
|
||||
|
||||
users.users.root.passwordFile = toString <system-secrets/root.password>;
|
||||
|
||||
environment.systemPackages = [pkgs.vim pkgs.git pkgs.tmux pkgs.python3];
|
||||
}
|
||||
41
systems/ful/hardware-configuration.nix
Normal file
41
systems/ful/hardware-configuration.nix
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [<nixpkgs/nixos/modules/profiles/qemu-guest.nix>];
|
||||
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 1;
|
||||
};
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
initrd = {
|
||||
availableKernelModules = ["virtio_pci" "usbhid"];
|
||||
kernelModules = ["bochs_drm"];
|
||||
};
|
||||
kernelModules = [
|
||||
"console=ttyS0"
|
||||
"console=tty1"
|
||||
"nvme.shutdown_timeout=10"
|
||||
"libiscsi.debug_libiscsi_eh=1"
|
||||
];
|
||||
extraModulePackages = [];
|
||||
};
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/9bf751c7-cf32-49fb-9354-17694c7a46e0";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/7817-285D";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [];
|
||||
}
|
||||
@@ -62,6 +62,10 @@ in {
|
||||
useDHCP = false;
|
||||
};
|
||||
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
unstable = import <nixpkgs-unstable> {inherit (config.nixpkgs) config;};
|
||||
};
|
||||
|
||||
system.stateVersion = "20.03";
|
||||
|
||||
services.nginx = {
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
}: let
|
||||
backupLocation = "/var/lib/codimd-backup";
|
||||
stateLocation = "/var/lib/codimd/state.sqlite";
|
||||
nixpkgs-unstable = import <nixpkgs-unstable> {};
|
||||
domain = "pad.kmein.de";
|
||||
inherit (import <niveum/lib>) tmpfilesConfig;
|
||||
in {
|
||||
@@ -61,7 +60,7 @@ in {
|
||||
systemd.services.hedgedoc-backup = {
|
||||
description = "Hedgedoc backup service";
|
||||
script = ''
|
||||
${nixpkgs-unstable.sqlite}/bin/sqlite3 -json ${stateLocation} "select shortid, alias, ownerId, content from Notes" \
|
||||
${pkgs.unstable.sqlite}/bin/sqlite3 -json ${stateLocation} "select shortid, alias, ownerId, content from Notes" \
|
||||
| ${
|
||||
pkgs.writers.writePython3 "hedgedoc-json-to-fs.py" {} ''
|
||||
import json
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
...
|
||||
}: {
|
||||
services.matterbridge = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
configPath = let
|
||||
bridgeBotToken = lib.strings.fileContents <system-secrets/telegram/krebs.token>;
|
||||
in
|
||||
|
||||
@@ -57,6 +57,7 @@ in {
|
||||
|
||||
systemd.services.geoip-share = {
|
||||
after = ["geoipupdate.service"];
|
||||
wantedBy = ["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}";
|
||||
|
||||
Reference in New Issue
Block a user