Compare commits

...

8 Commits

9 changed files with 145 additions and 20 deletions

6
flake.lock generated
View File

@@ -347,11 +347,11 @@
}, },
"unstable": { "unstable": {
"locked": { "locked": {
"lastModified": 1754498491, "lastModified": 1755615617,
"narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", "narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", "rev": "20075955deac2583bb12f07151c2df830ef346b4",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -108,4 +108,63 @@
''; '';
}; };
services.restic.backups = {
git-local = {
repository = "/mnt/hdd/restic/git";
passwordFile = config.sops.secrets.restic-password.path;
initialize = true;
paths = [ "/var/lib/gitea/repositories" "/var/backup/git" ];
backupPrepareCommand = ''
mkdir -p /var/backup/git
${pkgs.sudo}/bin/sudo ${pkgs.systemd}/bin/systemctl stop gitea
${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/pg_dump \
--clean \
--if-exists \
--dbname=git > /var/backup/git/postgres.sql
'';
backupCleanupCommand = ''
${pkgs.sudo}/bin/sudo ${pkgs.systemd}/bin/systemctl start gitea
'';
};
git-remote = {
repository = "rest:http://m1:8000/git";
passwordFile = config.sops.secrets.restic-password.path;
initialize = true;
paths = [ "/var/lib/gitea/repositories" "/var/backup/git" ];
backupPrepareCommand = ''
mkdir -p /var/backup/git
${pkgs.sudo}/bin/sudo ${pkgs.systemd}/bin/systemctl stop gitea
${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/pg_dump \
--clean \
--if-exists \
--dbname=git > /var/backup/git/postgres.sql
'';
backupCleanupCommand = ''
${pkgs.sudo}/bin/sudo ${pkgs.systemd}/bin/systemctl start gitea
'';
};
};
environment.systemPackages = with pkgs;
let
scripts = with pkgs; {
restore_git_pg = writeShellScriptBin "restore_git_pg" ''
${pkgs.sudo}/bin/sudo -u postgres psql --dbname=git < /var/backup/git/postgres.sql
'';
restore_git = writeShellScriptBin "restore_git" ''
${pkgs.sudo}/bin/sudo ${pkgs.systemd}/bin/systemctl stop gitea
${pkgs.sudo}/bin/sudo ${restic}/bin/restic -r /mnt/hdd/restic/git restore latest --target /
${scripts.restore_git_pg}/bin/restore_git_pg
${pkgs.sudo}/bin/sudo ${pkgs.systemd}/bin/systemctl start gitea
'';
};
in [ scripts.restore_git_pg scripts.restore_git ];
} }

View File

@@ -2,18 +2,40 @@
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
(final: prev: { (final: prev: let
wakapi = prev.wakapi.overrideAttrs (oldAttrs: rec { version = "2.15.0";
in {
wakapi = (prev.buildGoModule.override { go = prev.go_1_25; }) {
pname = "wakapi";
version = version;
src = final.fetchFromGitHub { src = final.fetchFromGitHub {
owner = "k2on"; owner = "k2on";
repo = "wakapi"; repo = "wakapi";
rev = "theming"; rev = "koon-fork";
# hash = ""; hash = "sha256-Gg2YXhPBoIVv+8yV5gz2NTCNFo8V9fNJxqjdkwo6Zf0=";
hash = "sha256-mbQ2cA9tbuDA5OXEP+qVfsrBC90budAzWE7x4oN6ypY=";
}; };
# vendorHash = final.lib.fakeHash;
vendorHash = "sha256-lb6u9NQbB3bizIRbCRaB7Ngv9T5mAYtSl+g13gL7VEU="; vendorHash = "sha256-912x6LwitYXdjWpP75Xoc56JXadeLQZuESSyLoaJcU0=";
});
excludedPackages = [ "scripts" ];
postPatch = ''echo ${version} > version.txt'';
ldflags = [ "-s" "-w" ];
passthru = {
nixos = prev.nixosTests.wakapi;
updateScript = prev.nix-update-script { };
};
meta = prev.wakapi.meta // {
version = version;
mainProgram = "wakapi";
};
};
}) })
]; ];

View File

@@ -5,7 +5,11 @@
defaultSopsFile = ../../secrets/sops/host/ark/default.yaml; defaultSopsFile = ../../secrets/sops/host/ark/default.yaml;
validateSopsFiles = false; validateSopsFiles = false;
age.keyFile = "/var/lib/sops-nix/key.txt"; age.keyFile = if builtins.pathExists /var/lib/sops-nix/key.txt then
"/var/lib/sops-nix/key.txt"
else
"/home/admin/.config/sops/age/keys.txt" # temp decrypt key
;
secrets = { secrets = {
"host_age_key" = { "host_age_key" = {

View File

@@ -1,4 +1,14 @@
{ pkgs, config, pkgs-unstable, ... }: { { pkgs, config, pkgs-unstable, ... }:
let
openconnect-sso-src = builtins.fetchTree {
type = "github";
owner = "k2on";
repo = "openconnect-sso";
rev = "9d4f61e5c8ccca420ffa87d46c96c17d64fbfb0b";
narHash = "sha256-ENt4/+9Bll70+BkH0Scej02edLi9SNkvBfyvjxUv83w=";
};
in
{
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../common/core/default.nix ../common/core/default.nix
@@ -49,22 +59,21 @@
EDITOR = "nvim"; EDITOR = "nvim";
}; };
programs.wireshark.enable = true; # programs.adb.enable = true;
programs.adb.enable = true;
programs.kdeconnect.enable = true; programs.kdeconnect.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim vim
git git
wget wget
file
just
# mpc # mpc
gurk-rs gurk-rs
libreoffice-qt libreoffice-qt
# ncmpcpp # ncmpcpp
brave
signal-desktop signal-desktop
gnupg gnupg
@@ -74,8 +83,6 @@
pinentry-curses pinentry-curses
pinentry-qt pinentry-qt
zathura
fzf fzf
ffmpeg ffmpeg
ripgrep ripgrep
@@ -86,6 +93,8 @@
libqalculate libqalculate
librespeed-cli librespeed-cli
gparted
tea tea
kubectl kubectl
@@ -97,10 +106,28 @@
gimp gimp
inkscape inkscape
wireshark mysql-workbench
pkgs-unstable.brave
# arm support # arm support
pkgs-unstable.sparrow pkgs-unstable.sparrow
(writeShellScriptBin "radio" ''
list="
WIOP http://s4.yesstreaming.net:7119/;audio.mp3
FamilyAlter https://usa17.fastcast4u.com/proxy/roloffev?mp=/1
"
choice=$(echo "$list" | awk '{print $1}' | ${fzf}/bin/fzf)
if [[ -n "$choice" ]]; then
url=$(echo "$list" | awk -v name="$choice" '$1==name {print $2}')
${mpg123}/bin/mpg123 "$url"
fi
'')
(pkgs.callPackage "${openconnect-sso-src}/nix" {}).openconnect-sso
]; ];
programs.zsh.enable = true; programs.zsh.enable = true;

View File

@@ -10,6 +10,7 @@
./home/desktop.nix ./home/desktop.nix
./home/nvim.nix ./home/nvim.nix
./home/terminal.nix ./home/terminal.nix
./home/zathura.nix
]; ];
home.username = "max"; home.username = "max";

View File

@@ -10,6 +10,7 @@ in
userEmail = publicGitEmail; userEmail = publicGitEmail;
extraConfig = { extraConfig = {
init.defaultBranch = "main"; init.defaultBranch = "main";
push.autoSetupRemote = true;
commit.gpgsign = true; commit.gpgsign = true;
gpg.format = "ssh"; gpg.format = "ssh";

View File

@@ -239,6 +239,7 @@
wakatime.enable = true; wakatime.enable = true;
autoclose.enable = true; autoclose.enable = true;
ts-autotag.enable = true; ts-autotag.enable = true;
bullets.enable = true;
spider = { spider = {
enable = true; enable = true;
extraOptions = { extraOptions = {

10
host/max/home/zathura.nix Normal file
View File

@@ -0,0 +1,10 @@
{ ... }: {
programs.zathura = {
enable = true;
options = {
default-bg = "white";
font = "Monocraft";
selection-clipboard = "clipboard";
};
};
}