2
2
mirror of https://git.feal.no/felixalb/nixos-config.git synced 2025-01-15 06:24:48 +01:00

Compare commits

...

3 Commits

9 changed files with 64 additions and 88 deletions

View File

@ -1,5 +1,7 @@
## Felixalbs nixos config
![](https://github.com/NixOS/nixos-artwork/blob/master/releases/24.05-uakari/uakari.png?raw=true)
Contains configurations for some nixos servers, some nixos desktops and a [nix-darwin](https://github.com/LnL7/nix-darwin) host.
Secrets are managed with [sops-nix](https://github.com/Mic92/sops-nix).

29
flake.lock generated
View File

@ -41,16 +41,16 @@
]
},
"locked": {
"lastModified": 1706981411,
"narHash": "sha256-cLbLPTL1CDmETVh4p0nQtvoF+FSEjsnJTFpTxhXywhQ=",
"lastModified": 1716736833,
"narHash": "sha256-rNObca6dm7Qs524O4st8VJH6pZ/Xe1gxl+Rx6mcWYo0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "652fda4ca6dafeb090943422c34ae9145787af37",
"rev": "a631666f5ec18271e86a5cde998cba68c33d9ac6",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.11",
"ref": "release-24.05",
"repo": "home-manager",
"type": "github"
}
@ -60,15 +60,16 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1710311999,
"narHash": "sha256-s0pT1NyrMgeolUojXXcnXQDymN7m80GTF7itCv0ZH20=",
"lastModified": 1717234745,
"narHash": "sha256-MFyKRdw4WQD6V3vRGbP6MYbtJhZp712zwzjW6YiOBYM=",
"owner": "dali99",
"repo": "nixos-matrix-modules",
"rev": "6c9b67974b839740e2a738958512c7a704481157",
"rev": "d7dc42c9bbb155c5e4aa2f0985d0df75ce978456",
"type": "github"
},
"original": {
"owner": "dali99",
"ref": "v0.6.0",
"repo": "nixos-matrix-modules",
"type": "github"
}
@ -163,16 +164,16 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1716991068,
"narHash": "sha256-Av0UWCCiIGJxsZ6TFc+OiKCJNqwoxMNVYDBChmhjNpo=",
"lastModified": 1717144377,
"narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "25cf937a30bf0801447f6bf544fc7486c6309234",
"rev": "805a384895c696f802a9bf5bf4720f37385df547",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
@ -227,11 +228,11 @@
},
"unstable": {
"locked": {
"lastModified": 1710631334,
"narHash": "sha256-rL5LSYd85kplL5othxK5lmAtjyMOBg390sGBTb3LRMM=",
"lastModified": 1716948383,
"narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c75037bbf9093a2acb617804ee46320d6d1fea5a",
"rev": "ad57eef4ef0659193044870c731987a6df5cf56b",
"type": "github"
},
"original": {

View File

@ -2,16 +2,16 @@
description = "Felixalb System flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nix-darwin.url = "github:lnl7/nix-darwin/master";
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager/release-23.11";
home-manager.url = "github:nix-community/home-manager/release-24.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
matrix-synapse-next.url = "github:dali99/nixos-matrix-modules";
matrix-synapse-next.url = "github:dali99/nixos-matrix-modules/v0.6.0";
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
# voyager-addons.url = "git+ssh://git@git.feal.no:2222/felixalb/voyager-addons.git";
@ -33,8 +33,17 @@
, voyager-addons
, ... }@inputs:
let
overlay-unstable = final: prev: {
pkgs-overlay = final: prev: {
unstable = unstable.legacyPackages.${prev.system};
python311 = prev.python311.override {
packageOverrides = self: super: {
# k5test is broken on darwin, as of 24.05
gssapi = super.gssapi.overrideAttrs (old: {
doInstallCheck = false;
});
};
};
};
in
{
@ -46,7 +55,7 @@
};
modules = [
# Overlays-module makes "pkgs.unstable" available in configuration.nix
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
({ config, pkgs, ... }: { nixpkgs.overlays = [ pkgs-overlay ]; })
./hosts/voyager/configuration.nix
voyager-addons.nixosModules.default
@ -65,7 +74,7 @@
};
modules = [
# Overlays-module makes "pkgs.unstable" available in configuration.nix
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
({ config, pkgs, ... }: { nixpkgs.overlays = [ pkgs-overlay ]; })
./hosts/defiant/configuration.nix
sops-nix.nixosModules.sops
@ -84,7 +93,7 @@
};
modules = [
# Overlays-module makes "pkgs.unstable" available in configuration.nix
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
({ config, pkgs, ... }: { nixpkgs.overlays = [ pkgs-overlay ]; })
./hosts/edison/configuration.nix
sops-nix.nixosModules.sops
@ -102,7 +111,7 @@
};
modules = [
# Overlays-module makes "pkgs.unstable" available in configuration.nix
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
({ config, pkgs, ... }: { nixpkgs.overlays = [ pkgs-overlay ]; })
./hosts/burnham/configuration.nix
sops-nix.nixosModules.sops
@ -120,7 +129,7 @@
};
modules = [
./hosts/redshirt/configuration.nix
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
({ config, pkgs, ... }: { nixpkgs.overlays = [ pkgs-overlay ]; })
sops-nix.nixosModules.sops
];
};
@ -133,7 +142,7 @@
};
modules = [
./hosts/worf/configuration.nix
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
({ config, pkgs, ... }: { nixpkgs.overlays = [ pkgs-overlay ]; })
home-manager.darwinModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;

View File

@ -14,6 +14,7 @@
};
dynamic_padding = true;
dynamic_title = true;
decorations = "none"; # full/none/transparent/buttonless
@ -46,9 +47,9 @@
size = 14;
};
draw_bold_text_with_bright_colors = true;
colors = {
draw_bold_text_with_bright_colors = true;
# # Tomorrow Night Bright
# primary = {
# background = "0x141414";
@ -150,10 +151,10 @@
# indexed_colors: []
};
visual_bell = {
animation = "EaseOutExpo";
bell = {
animation = "Ease";
color = "0xffffff";
duration = 200;
duration = 100;
};
# Key bindings
@ -308,29 +309,19 @@
# - { key: Delete, chars: "\x1b[3~" }
mouse = {
double_click = { threshold = 300; };
triple_click = { threshold = 300; };
hide_when_typing = false;
};
selection = {
semantic_escape_chars = ",`|:\"' ()[]{}<>";
save_to_clipboard = false;
};
mouse_bindings = [
{ mouse = "Middle"; action = "PasteSelection"; }
];
cursor = {
style = "Block";
blinking = true;
style = {
shape = "Block";
blinking = "on";
};
unfocused_hollow = true;
};
dynamic_title = true;
};
};
}

View File

@ -51,7 +51,6 @@ in {
boltdb_shipper = {
active_index_directory = "${saveDirectory}/boltdb-shipper-index";
cache_location = "${saveDirectory}/boltdb-shipper-cache";
shared_store = "filesystem";
cache_ttl = "24h";
};
filesystem = {
@ -60,14 +59,13 @@ in {
};
limits_config = {
enforce_metric_name = false;
allow_structured_metadata = false;
reject_old_samples = true;
reject_old_samples_max_age = "72h";
};
compactor = {
working_directory = "${saveDirectory}/compactor";
shared_store = "filesystem";
};
};
};

View File

@ -1,20 +1,9 @@
{ config, pkgs, ... }:
{
environment.systemPackages = [
pkgs.prometheus-snmp-exporter
];
systemd.services.prometheus-snmp-exporter = {
services.prometheus.exporters.snmp = {
enable = true;
description = "Gather data from SNMP devices and expose them as Prometheus metrics";
unitConfig = {
Type = "simple";
};
serviceConfig = {
ExecStart = "${pkgs.prometheus-snmp-exporter}/bin/snmp_exporter --config.file='/tank/services/metrics/prometheus/snmp.yml'";
# snmp.yml = https://github.com/prometheus/snmp_exporter/blob/main/snmp.yml + https://global.download.synology.com/download/Document/Software/DeveloperGuide/Firmware/DSM/All/enu/Synology_DiskStation_MIB_Guide.pdf
};
wantedBy = [ "multi-user.target" ];
configurationPath = "/tank/services/metrics/prometheus/snmp.yml";
# snmp.yml = https://github.com/prometheus/snmp_exporter/blob/main/snmp.yml + https://global.download.synology.com/download/Document/Software/DeveloperGuide/Firmware/DSM/All/enu/Synology_DiskStation_MIB_Guide.pdf
};
}

View File

@ -7,14 +7,9 @@ let
maxUploadSize = "256M";
in {
options.services.snappymail = {
enable = mkEnableOption (lib.mdDoc "Snappymail");
enable = mkEnableOption "Snappymail";
package = mkOption {
type = types.package;
default = pkgs.snappymail;
defaultText = lib.mdDoc "pkgs.snappymail";
description = lib.mdDoc "Which snappymail package to use.";
};
package = mkPackageOption pkgs "snappymail" { };
dataDir = mkOption {
type = types.str;
@ -23,8 +18,8 @@ in {
};
hostname = mkOption {
type = types.str;
/* default = null; */
type = types.nullOr types.str;
default = null;
example = "mail.example.com";
description = "Enable nginx with this hostname, null disables nginx";
};
@ -32,13 +27,13 @@ in {
user = mkOption {
type = types.str;
default = "snappymail";
description = lib.mdDoc "System user under which snappymail runs";
description = "System user under which snappymail runs";
};
group = mkOption {
type = types.str;
default = "snappymail";
description = lib.mdDoc "System group under which snappymail runs";
description = "System group under which snappymail runs";
};
};
@ -48,8 +43,6 @@ in {
description = "Snappymail service";
group = cfg.group;
home = cfg.dataDir;
useDefaultShell = true;
createHome = true;
isSystemUser = true;
};
};
@ -88,8 +81,9 @@ in {
locations."^~ /data".extraConfig = ''
deny all;
'';
locations."~ \.php$".extraConfig = ''
include ${pkgs.nginx}/conf/fastcgi_params;
locations."~ \\.php$".extraConfig = ''
include ${config.services.nginx.package}/conf/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:${config.services.phpfpm.pools.snappymail.socket};
'';

View File

@ -18,8 +18,11 @@ in {
dbname = "nextcloud";
adminuser = "ncadmin";
adminpassFile = config.sops.secrets."nextcloud/adminpass".path;
trustedProxies = [ "192.168.10.175" ]; # defiant
defaultPhoneRegion = "NO";
};
settings = {
trusted_proxies = [ "192.168.10.175" ]; # defiant
default_phone_region = "NO";
};
phpOptions = {

View File

@ -11,11 +11,9 @@
];
home.packages = with pkgs; [
# alacritty
emacs-macport
iterm2
prismlauncher
ripes
# prismlauncher
spotify
borgbackup
@ -23,20 +21,11 @@
gnutar
nix-index
nodejs
pinentry
rbw
tldr
unstable.snicat
zellij
(python311.withPackages (ps: with ps; [
pygments
jupyter
numpy
scipy
pwntools
pycryptodome
requests