Compare commits

...

4 commits

3 changed files with 68 additions and 4 deletions

View file

@ -2,11 +2,14 @@
lib, lib,
pkgs, pkgs,
config, config,
host,
username,
... ...
}: }:
let let
cfg = config.services.forgejo; cfg = config.services.forgejo;
srv = cfg.settings.server; srv = cfg.settings.server;
baseRepo = "ssh://liv@dandelion:9123/spinners/rootvol/backups/${host}";
in in
{ {
services = { services = {
@ -21,6 +24,8 @@ in
# You need to specify this to remove the port from URLs in the web UI. # You need to specify this to remove the port from URLs in the web UI.
ROOT_URL = "https://${srv.DOMAIN}/"; ROOT_URL = "https://${srv.DOMAIN}/";
HTTP_PORT = 3050; HTTP_PORT = 3050;
DISABLE_SSH = false;
SSH_PORT = 2222;
}; };
# You can temporarily allow registration to create an admin user. # You can temporarily allow registration to create an admin user.
service.DISABLE_REGISTRATION = true; service.DISABLE_REGISTRATION = true;
@ -70,6 +75,31 @@ in
proxyWebsockets = true; proxyWebsockets = true;
}; };
}; };
borgbackup.jobs."violet-forgejo" = {
paths = [ "/var/lib/forgejo" ];
repo = "${baseRepo}/var-forgejo";
encryption.mode = "none";
compression = "auto,zstd";
startAt = "daily";
preHook = ''
systemctl stop forgejo
'';
postHook = ''
systemctl start forgejo
if [ $exitStatus -eq 2 ]; then
${pkgs.ntfy-sh}/bin/ntfy send https://notify.liv.town/${host} "borgbackup: ${host} backup (forgejo) failed with errors"
else
${pkgs.ntfy-sh}/bin/ntfy send https://notify.liv.town/${host} "borgbackup: ${host} backup (forgejo) completed succesfully with exit status $exitStatus"
fi
'';
user = "root";
extraCreateArgs = [
"--stats"
];
environment = {
BORG_RSH = "ssh -p 9123 -i /home/${username}/.ssh/id_ed25519";
};
};
}; };
# systemd.services.forgejo.preStart = let # systemd.services.forgejo.preStart = let
# adminCmd = "${lib.getExe cfg.package} admin user"; # adminCmd = "${lib.getExe cfg.package} admin user";

View file

@ -1,4 +1,13 @@
{ config, ... }: {
config,
host,
username,
pkgs,
...
}:
let
baseRepo = "ssh://liv@dandelion:9123/spinners/rootvol/backups/${host}";
in
{ {
services = { services = {
grafana = { grafana = {
@ -19,5 +28,30 @@
proxyWebsockets = true; proxyWebsockets = true;
}; };
}; };
borgbackup.jobs."violet-grafana" = {
paths = [ "/var/lib/grafana" ];
repo = "${baseRepo}/var-grafana";
encryption.mode = "none";
compression = "auto,zstd";
startAt = "daily";
preHook = ''
systemctl stop grafana
'';
postHook = ''
systemctl start grafana
if [ $exitStatus -eq 2 ]; then
${pkgs.ntfy-sh}/bin/ntfy send https://notify.liv.town/${host} "borgbackup: ${host} backup (grafana) failed with errors"
else
${pkgs.ntfy-sh}/bin/ntfy send https://notify.liv.town/${host} "borgbackup: ${host} backup (grafana) completed succesfully with exit status $exitStatus"
fi
'';
user = "root";
extraCreateArgs = [
"--stats"
];
environment = {
BORG_RSH = "ssh -p 9123 -i /home/${username}/.ssh/id_ed25519";
};
};
}; };
} }

View file

@ -23,11 +23,11 @@ in
libvdpau-va-gl libvdpau-va-gl
vulkan-loader vulkan-loader
vulkan-validation-layers vulkan-validation-layers
amdvlk # amdvlk # error: 'amdvlk' has been removed since it was deprecated by AMD. Its replacement, RADV, is enabled by default.
mesa.opencl mesa.opencl
]; ];
extraPackages32 = with pkgs; [ extraPackages32 = with pkgs; [
driversi686Linux.amdvlk # Install amdvlk for 32 bit applications as well # driversi686Linux.amdvlk # Install amdvlk for 32 bit applications as well
]; ];
}; };
enableRedistributableFirmware = true; enableRedistributableFirmware = true;
@ -36,7 +36,7 @@ in
boot.initrd.kernelModules = [ "amdgpu" ]; boot.initrd.kernelModules = [ "amdgpu" ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
amdvlk # amdvlk
]; ];
}; };
} }