Compare commits

...

3 commits

11 changed files with 112 additions and 48 deletions

2
.envrc
View file

@ -1,3 +1,5 @@
#!/bin/sh
watch_file devshell.nix
use flake

View file

@ -4,4 +4,4 @@ updates:
directory: "/"
schedule:
interval: "weekly"
assignees: [ "dadada" ]
assignees: ["dadada"]

View file

@ -1,10 +1,8 @@
name: Continuous Integration
on:
pull_request:
push:
branches: [main]
jobs:
checks:
name: "Checks"

View file

@ -3,7 +3,6 @@ on:
workflow_dispatch: # allows manual triggering
schedule:
- cron: '0 0 * * 0' # runs weekly on Sunday at 00:00
jobs:
lockfile:
runs-on: ubuntu-latest

View file

@ -24,7 +24,7 @@
name = "format";
help = "Format the project";
command = ''
nixpkgs-fmt .
treefmt .
'';
category = "dev";
}

View file

@ -21,8 +21,7 @@ let
nixpkgs.lib.nixosSystem {
inherit system;
modules =
[
modules = [
{
nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays;
}

View file

@ -237,33 +237,38 @@ in
services.snapper = {
cleanupInterval = "1d";
snapshotInterval = "hourly";
snapshotInterval = "daily";
configs.home = {
SUBVOLUME = "/home";
TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true;
TIMELINE_LIMIT_HOURLY = "24";
TIMELINE_LIMIT_DAILY = "13";
TIMELINE_LIMIT_WEEKLY = "6";
TIMELINE_LIMIT_MONTHLY = "3";
TIMELINE_MIN_AGE = "1800";
TIMELINE_LIMIT_HOURLY = "5";
TIMELINE_LIMIT_DAILY = "7";
TIMELINE_LIMIT_WEEKLY = "0";
TIMELINE_LIMIT_MONTHLY = "0";
TIMELINE_LIMIT_YEARLY = "0";
};
configs.var = {
SUBVOLUME = "/var";
TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true;
TIMELINE_LIMIT_HOURLY = "24";
TIMELINE_LIMIT_DAILY = "13";
TIMELINE_LIMIT_WEEKLY = "6";
TIMELINE_LIMIT_MONTHLY = "3";
TIMELINE_MIN_AGE = "1800";
TIMELINE_LIMIT_HOURLY = "5";
TIMELINE_LIMIT_DAILY = "7";
TIMELINE_LIMIT_WEEKLY = "0";
TIMELINE_LIMIT_MONTHLY = "0";
TIMELINE_LIMIT_YEARLY = "0";
};
configs.storage = {
SUBVOLUME = "/mnt/storage";
TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true;
TIMELINE_LIMIT_HOURLY = "24";
TIMELINE_LIMIT_DAILY = "13";
TIMELINE_LIMIT_WEEKLY = "6";
TIMELINE_LIMIT_MONTHLY = "3";
TIMELINE_LIMIT_HOURLY = "10";
TIMELINE_LIMIT_DAILY = "10";
TIMELINE_LIMIT_WEEKLY = "10";
TIMELINE_LIMIT_MONTHLY = "10";
TIMELINE_LIMIT_YEARLY = "10";
};
};

View file

@ -1,4 +1,9 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
{
imports = [
@ -118,6 +123,46 @@
browsing = true;
};
tlp.enable = false;
snapper = {
cleanupInterval = "1d";
snapshotInterval = "hourly";
configs = {
home = {
SUBVOLUME = "/home/dadada";
ALLOW_USERS = [ "dadada" ];
TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true;
TIMELINE_MIN_AGE = "1800";
TIMELINE_LIMIT_HOURLY = "5";
TIMELINE_LIMIT_DAILY = "7";
TIMELINE_LIMIT_WEEKLY = "0";
TIMELINE_LIMIT_MONTHLY = "0";
TIMELINE_LIMIT_YEARLY = "0";
};
var = {
SUBVOLUME = "/var";
TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true;
TIMELINE_MIN_AGE = "1800";
TIMELINE_LIMIT_HOURLY = "5";
TIMELINE_LIMIT_DAILY = "7";
TIMELINE_LIMIT_WEEKLY = "0";
TIMELINE_LIMIT_MONTHLY = "0";
TIMELINE_LIMIT_YEARLY = "0";
};
paperless = {
SUBVOLUME = "/var/lib/paperless";
TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true;
TIMELINE_MIN_AGE = "3600";
TIMELINE_LIMIT_HOURLY = "10";
TIMELINE_LIMIT_DAILY = "10";
TIMELINE_LIMIT_WEEKLY = "10";
TIMELINE_LIMIT_MONTHLY = "10";
TIMELINE_LIMIT_YEARLY = "10";
};
};
};
};
system = {
@ -133,6 +178,12 @@
HibernateDelaySec=1h
'';
systemd.tmpfiles.rules = [
"v /var/.snapshots 0755 root root - -"
"v /var/paperless/.snapshots 0755 root root - -"
"v /home/dadada/.snapshots 0755 root root - -"
];
virtualisation.libvirtd.enable = true;
users = {

View file

@ -5,12 +5,14 @@
nixpkgs,
agenix,
devshell,
treefmt-nix,
...
}@inputs:
(flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system; };
treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
in
{
devShells.default =
@ -26,7 +28,7 @@
in
import ./devshell.nix { inherit pkgs extraModules; };
formatter = pkgs.nixfmt-tree;
formatter = treefmtEval.config.build.wrapper;
packages = import ./pkgs { inherit pkgs; } // {
installer-iso = self.nixosConfigurations.installer.config.system.build.isoImage;
@ -34,7 +36,6 @@
}
))
// {
hmModules = import ./home/modules.nix { lib = nixpkgs.lib; };
nixosConfigurations = import ./nixos/configurations.nix inputs;

View file

@ -1,3 +1,4 @@
{ pkgs }: {
citizen-cups = pkgs.callPackage ./citizen-cups.nix {};
{ pkgs }:
{
citizen-cups = pkgs.callPackage ./citizen-cups.nix { };
}

8
treefmt.nix Normal file
View file

@ -0,0 +1,8 @@
{ pkgs, ... }:
{
projectRootFile = "flake.nix";
programs.nixfmt.enable = true;
programs.shellcheck.enable = pkgs.hostPlatform.system != "riscv64-linux";
programs.shfmt.enable = pkgs.hostPlatform.system != "riscv64-linux";
programs.yamlfmt.enable = true;
}