This commit is contained in:
2026-01-04 20:09:46 +00:00
parent 0c6c138da5
commit ac004a0e8e
14 changed files with 205 additions and 213 deletions

View File

@@ -1,6 +1,6 @@
{ {
inputs,
pkgs, pkgs,
inputs,
user, user,
hostname, hostname,
... ...
@@ -20,7 +20,6 @@
home-manager.users.${user} = { home-manager.users.${user} = {
imports = [ imports = [
inputs.nixvim.homeModules.nixvim
../../profiles/atuin.nix ../../profiles/atuin.nix
../../profiles/bash.nix ../../profiles/bash.nix
../../profiles/bat.nix ../../profiles/bat.nix
@@ -44,6 +43,7 @@
../../profiles/zk.nix ../../profiles/zk.nix
../../profiles/zoxide.nix ../../profiles/zoxide.nix
../../profiles/zsh.nix ../../profiles/zsh.nix
inputs.nixvim.homeModules.nixvim
]; ];
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
programs.git.settings.user.email = "christoph@tuist.dev"; programs.git.settings.user.email = "christoph@tuist.dev";

View File

@@ -19,7 +19,6 @@
home-manager.users.${user} = { home-manager.users.${user} = {
imports = [ imports = [
inputs.nixvim.homeModules.nixvim
../../profiles/atuin.nix ../../profiles/atuin.nix
../../profiles/bash.nix ../../profiles/bash.nix
../../profiles/bat.nix ../../profiles/bat.nix
@@ -43,6 +42,7 @@
../../profiles/zk.nix ../../profiles/zk.nix
../../profiles/zoxide.nix ../../profiles/zoxide.nix
../../profiles/zsh.nix ../../profiles/zsh.nix
inputs.nixvim.homeModules.nixvim
]; ];
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
programs.git.settings.user.email = "christoph@schmatzler.com"; programs.git.settings.user.email = "christoph@schmatzler.com";

View File

@@ -1,9 +1,9 @@
{ {
modulesPath,
hostname,
inputs,
config, config,
inputs,
user, user,
hostname,
modulesPath,
... ...
}: { }: {
imports = [ imports = [
@@ -14,9 +14,9 @@
./secrets.nix ./secrets.nix
../../modules/gitea.nix ../../modules/gitea.nix
../../profiles/core.nix ../../profiles/core.nix
../../profiles/openssh.nix
../../profiles/fail2ban.nix ../../profiles/fail2ban.nix
../../profiles/nixos.nix ../../profiles/nixos.nix
../../profiles/openssh.nix
../../profiles/tailscale.nix ../../profiles/tailscale.nix
inputs.disko.nixosModules.disko inputs.disko.nixosModules.disko
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
@@ -35,9 +35,10 @@
}; };
}; };
networking.hostName = hostname;
home-manager.users.${user} = { home-manager.users.${user} = {
imports = [ imports = [
inputs.nixvim.homeModules.nixvim
../../profiles/bash.nix ../../profiles/bash.nix
../../profiles/bat.nix ../../profiles/bat.nix
../../profiles/direnv.nix ../../profiles/direnv.nix
@@ -54,8 +55,7 @@
../../profiles/ssh.nix ../../profiles/ssh.nix
../../profiles/starship.nix ../../profiles/starship.nix
../../profiles/zoxide.nix ../../profiles/zoxide.nix
inputs.nixvim.homeModules.nixvim
]; ];
}; };
networking.hostName = hostname;
} }

View File

@@ -1,22 +1,22 @@
{...}: { {...}: {
sops.secrets.michael-gitea-litestream = { sops.secrets = {
michael-gitea-litestream = {
sopsFile = ../../secrets/michael-gitea-litestream; sopsFile = ../../secrets/michael-gitea-litestream;
format = "binary"; format = "binary";
owner = "gitea"; owner = "gitea";
group = "gitea"; group = "gitea";
}; };
michael-gitea-restic-password = {
sops.secrets.michael-gitea-restic-password = {
sopsFile = ../../secrets/michael-gitea-restic-password; sopsFile = ../../secrets/michael-gitea-restic-password;
format = "binary"; format = "binary";
owner = "gitea"; owner = "gitea";
group = "gitea"; group = "gitea";
}; };
michael-gitea-restic-env = {
sops.secrets.michael-gitea-restic-env = {
sopsFile = ../../secrets/michael-gitea-restic-env; sopsFile = ../../secrets/michael-gitea-restic-env;
format = "binary"; format = "binary";
owner = "gitea"; owner = "gitea";
group = "gitea"; group = "gitea";
}; };
};
} }

View File

@@ -10,15 +10,16 @@
./paperless.nix ./paperless.nix
./secrets.nix ./secrets.nix
../../profiles/core.nix ../../profiles/core.nix
../../profiles/openssh.nix
../../profiles/nixos.nix ../../profiles/nixos.nix
../../profiles/openssh.nix
../../profiles/tailscale.nix ../../profiles/tailscale.nix
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
]; ];
networking.hostName = hostname;
home-manager.users.${user} = { home-manager.users.${user} = {
imports = [ imports = [
inputs.nixvim.homeModules.nixvim
../../profiles/atuin.nix ../../profiles/atuin.nix
../../profiles/bash.nix ../../profiles/bash.nix
../../profiles/bat.nix ../../profiles/bat.nix
@@ -41,6 +42,7 @@
../../profiles/zk.nix ../../profiles/zk.nix
../../profiles/zoxide.nix ../../profiles/zoxide.nix
../../profiles/zsh.nix ../../profiles/zsh.nix
inputs.nixvim.homeModules.nixvim
]; ];
programs.git.settings.user.email = "christoph@schmatzler.com"; programs.git.settings.user.email = "christoph@schmatzler.com";
@@ -54,6 +56,4 @@
size = 16 * 1024; size = 16 * 1024;
} }
]; ];
networking.hostName = hostname;
} }

View File

@@ -1,10 +1,5 @@
{ {config, ...}: {
config,
hostname,
...
}: {
networking = { networking = {
hostName = hostname;
useDHCP = false; useDHCP = false;
interfaces.eno1.ipv4.addresses = [ interfaces.eno1.ipv4.addresses = [
{ {

View File

@@ -11,36 +11,42 @@ in {
enable = mkEnableOption "Gitea git hosting service"; enable = mkEnableOption "Gitea git hosting service";
litestream = { litestream = {
bucket = mkOption { bucket =
mkOption {
type = types.str; type = types.str;
description = "S3 bucket name for Litestream database replication"; description = "S3 bucket name for Litestream database replication";
}; };
secretFile = mkOption { secretFile =
mkOption {
type = types.path; type = types.path;
description = "Path to the environment file containing S3 credentials for Litestream"; description = "Path to the environment file containing S3 credentials for Litestream";
}; };
}; };
restic = { restic = {
bucket = mkOption { bucket =
mkOption {
type = types.str; type = types.str;
description = "S3 bucket name for Restic repository backups"; description = "S3 bucket name for Restic repository backups";
}; };
passwordFile = mkOption { passwordFile =
mkOption {
type = types.path; type = types.path;
description = "Path to the file containing the Restic repository password"; description = "Path to the file containing the Restic repository password";
}; };
environmentFile = mkOption { environmentFile =
mkOption {
type = types.path; type = types.path;
description = "Path to the environment file containing S3 credentials for Restic"; description = "Path to the environment file containing S3 credentials for Restic";
}; };
}; };
s3 = { s3 = {
endpoint = mkOption { endpoint =
mkOption {
type = types.str; type = types.str;
default = "s3.eu-central-003.backblazeb2.com"; default = "s3.eu-central-003.backblazeb2.com";
description = "S3 endpoint URL"; description = "S3 endpoint URL";
@@ -48,7 +54,8 @@ in {
}; };
}; };
config = mkIf cfg.enable { config =
mkIf cfg.enable {
networking.firewall.allowedTCPPorts = [80 443]; networking.firewall.allowedTCPPorts = [80 443];
services.redis.servers.gitea = { services.redis.servers.gitea = {

View File

@@ -34,20 +34,17 @@ in {
default = "s3.eu-central-003.backblazeb2.com"; default = "s3.eu-central-003.backblazeb2.com";
description = "S3 endpoint URL"; description = "S3 endpoint URL";
}; };
bucket = bucket =
mkOption { mkOption {
type = types.str; type = types.str;
description = "S3 bucket name"; description = "S3 bucket name";
}; };
region = region =
mkOption { mkOption {
type = types.str; type = types.str;
default = "eu-central-003"; default = "eu-central-003";
description = "S3 region"; description = "S3 region";
}; };
path = path =
mkOption { mkOption {
type = types.str; type = types.str;
@@ -71,7 +68,6 @@ in {
default = 7; default = 7;
description = "Number of full backups to retain"; description = "Number of full backups to retain";
}; };
diff = diff =
mkOption { mkOption {
type = types.int; type = types.int;
@@ -95,7 +91,6 @@ in {
default = "zst"; default = "zst";
description = "Compression algorithm (none, gz, lz4, zst)"; description = "Compression algorithm (none, gz, lz4, zst)";
}; };
level = level =
mkOption { mkOption {
type = types.int; type = types.int;
@@ -126,7 +121,6 @@ in {
default = "daily"; default = "daily";
description = "OnCalendar expression for full backups"; description = "OnCalendar expression for full backups";
}; };
diff = diff =
mkOption { mkOption {
type = types.str; type = types.str;

View File

@@ -1,8 +1,8 @@
{ {
constants,
inputs,
pkgs, pkgs,
inputs,
user, user,
constants,
... ...
}: { }: {
home-manager.extraSpecialArgs = {inherit user constants inputs;}; home-manager.extraSpecialArgs = {inherit user constants inputs;};

View File

@@ -1,7 +1,7 @@
{ {
config, config,
pkgs,
lib, lib,
pkgs,
user, user,
... ...
}: }:

View File

@@ -1,8 +1,8 @@
{ {
pkgs,
lib, lib,
constants, pkgs,
inputs, inputs,
constants,
... ...
}: let }: let
setWallpaperScript = import ./wallpaper.nix {inherit pkgs;}; setWallpaperScript = import ./wallpaper.nix {inherit pkgs;};

View File

@@ -1,8 +1,8 @@
{ {
pkgs, pkgs,
inputs,
user, user,
constants, constants,
inputs,
... ...
}: { }: {
security.sudo.enable = true; security.sudo.enable = true;

View File

@@ -1,6 +1,6 @@
{ {
lib,
pkgs, pkgs,
inputs,
... ...
}: }:
with pkgs; with pkgs;

View File

@@ -1,8 +1,4 @@
{ {pkgs, ...}: {
lib,
pkgs,
...
}: {
programs.zellij = { programs.zellij = {
enable = true; enable = true;
settings = { settings = {