Harden server and add Nix-native CI + self-hosted Gitea Actions
- caddy: security headers (X-Content-Type-Options/X-XSS-Protection/ X-Frame-Options) on all vhosts + baseline CSP; strip SnappyMail upstream copies via header_down on mail.severijnse.eu - tlsa-updater: compute TLSA 3 1 1 from cert SPKI (SHA-256), sync _25/_465/_993, fail-safe placeholders; coredns zone updated - pre-commit: wire cachix/git-hooks.nix (alejandra, statix, actionlint, deadnix); CI pre-commit job over x86_64 + aarch64 matrix - gitea: enable Gitea Actions + self-hosted runner (native:host, aarch64 via binfmt); add .gitea/workflows/ci.yml and local hook - fix statix warnings (merge repeated systemd/database/configFile keys) + disable empty_pattern via statix.toml (nixpkgs standard) - Clean up unused lambda patterns across 38 .nix files via deadnix - Format whole repo with alejandra (27 files) - Remove .github/workflows/ci.yml (Gitea shadows .github; runner labels differ) - Fix CI nix-not-found: export /run/current-system/sw/bin in PATH - Trim aarch64 from pre-commit matrix (no QEMU binfmt deployed yet)
This commit is contained in:
@@ -7,4 +7,4 @@
|
||||
"NEWS.md": "11866"
|
||||
},
|
||||
"version": 8
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
column_width = 120
|
||||
column_width = 120
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
{pkgs, ...}: let
|
||||
kotlin-lsp = pkgs.runCommand "kotlin-lsp" {} ''
|
||||
mkdir -p $out/bin
|
||||
ln -s ${pkgs.kotlin-language-server}/bin/kotlin-language-server $out/bin/kotlin-lsp
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
{pkgs, ...}: {
|
||||
users.users.someone.packages = with pkgs; [
|
||||
# screenshot
|
||||
grim
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{pkgs}: {
|
||||
{}: {
|
||||
"XF86AudioPlay" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn._args = ["playerctl" "play-pause"];
|
||||
|
||||
@@ -36,10 +36,11 @@
|
||||
(
|
||||
if typeOf element == "null"
|
||||
then "null"
|
||||
else if element == false
|
||||
then "false"
|
||||
else if element == true
|
||||
then "true"
|
||||
else if typeOf element == "bool"
|
||||
then
|
||||
if element
|
||||
then "true"
|
||||
else "false"
|
||||
else if typeOf element == "string"
|
||||
then ''"${sanitizeString element}"''
|
||||
else toString element
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
binds = import ./_binds.nix {inherit pkgs;};
|
||||
rules = import ./_rules.nix;
|
||||
|
||||
finalConfig = toKDL.generate "niri-config.kdl" (settings // {binds = binds;} // rules);
|
||||
finalConfig = toKDL.generate "niri-config.kdl" (settings // {inherit binds;} // rules);
|
||||
in {
|
||||
environment.sessionVariables = {
|
||||
NIRI_CONFIG = "$HOME/.config/niri/config.kdl";
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
{pkgs, ...}: {
|
||||
users.users.someone.packages = [pkgs.ashell];
|
||||
|
||||
xdg.configFile."ashell/config.toml".text = ''
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
{pkgs, ...}: {
|
||||
users.users.someone.packages = [pkgs.mako];
|
||||
|
||||
xdg.configFile."mako/config".text = ''
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
{pkgs, ...}: {
|
||||
users.users.someone.packages = [pkgs.walker pkgs.elephant];
|
||||
|
||||
xdg.configFile."walker/config.toml".text = ''
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
{pkgs, ...}: let
|
||||
alacritty-wrapped = pkgs.writeShellScriptBin "alacritty-wayland" ''
|
||||
export WAYLAND_DISPLAY="wayland-1"
|
||||
export XDG_CURRENT_DESKTOP="Niri"
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
sshConfigFile = "ssh/config";
|
||||
in {
|
||||
}: {
|
||||
users.users.someone.packages = with pkgs; [
|
||||
openssh
|
||||
];
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
{pkgs, ...}: {
|
||||
users.users.someone.packages = with pkgs; [
|
||||
# archives
|
||||
zip
|
||||
|
||||
@@ -80,19 +80,21 @@ in {
|
||||
enable = true;
|
||||
defaultApplications = associations;
|
||||
};
|
||||
configFile."xdg-desktop-portal-termfilechooser/config".text = ''
|
||||
[filechooser]
|
||||
cmd=${yaziWrapper}/bin/yazi-wrapper
|
||||
default_dir=$HOME
|
||||
open_mode=suggested
|
||||
save_mode=suggested
|
||||
'';
|
||||
configFile."user-dirs.dirs".source = userDirsConfig;
|
||||
configFile."mimeapps.list".text = ''
|
||||
[Default Applications]
|
||||
${lib.concatStringsSep "\n" (lib.mapAttrsToList (k: v: "${k}=${lib.concatStringsSep ";" v}") associations)}
|
||||
[Added Associations]
|
||||
${lib.concatStringsSep "\n" (lib.mapAttrsToList (k: v: "${k}=${lib.concatStringsSep ";" v}") associations)}
|
||||
'';
|
||||
configFile = {
|
||||
"xdg-desktop-portal-termfilechooser/config".text = ''
|
||||
[filechooser]
|
||||
cmd=${yaziWrapper}/bin/yazi-wrapper
|
||||
default_dir=$HOME
|
||||
open_mode=suggested
|
||||
save_mode=suggested
|
||||
'';
|
||||
"user-dirs.dirs".source = userDirsConfig;
|
||||
"mimeapps.list".text = ''
|
||||
[Default Applications]
|
||||
${lib.concatStringsSep "\n" (lib.mapAttrsToList (k: v: "${k}=${lib.concatStringsSep ";" v}") associations)}
|
||||
[Added Associations]
|
||||
${lib.concatStringsSep "\n" (lib.mapAttrsToList (k: v: "${k}=${lib.concatStringsSep ";" v}") associations)}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -159,7 +159,7 @@ in {
|
||||
${lib.concatStringsSep "\n" (
|
||||
lib.flatten (
|
||||
lib.mapAttrsToList (
|
||||
user: userCfg:
|
||||
_user: userCfg:
|
||||
(lib.mapAttrsToList (mkLinkScript cfg.configHome) userCfg.configFiles)
|
||||
++ (lib.mapAttrsToList (mkLinkScript cfg.cacheHome) userCfg.cacheFiles)
|
||||
++ (lib.mapAttrsToList (mkLinkScript cfg.dataHome) userCfg.dataFiles)
|
||||
|
||||
Reference in New Issue
Block a user