Merge branch 'main' of codeberg.org:muon/home

This commit is contained in:
muon 2025-05-24 09:34:09 +00:00
commit 7597c9eb6c
18 changed files with 658 additions and 69 deletions

227
_sources/generated.json Normal file
View file

@ -0,0 +1,227 @@
{
"valheim.aaacrafting": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.aaacrafting",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-cObo71X0wOzW3pZwAy7/dh7IRghu7EMPw7vWuoPWPlk=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/Azumatt/AAA_Crafting/1.6.6/"
},
"version": "1.6.6"
},
"valheim.autostore": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.autostore",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-ooghhDinwLTwEpTTQFj/brdb9Yj5aLGr+zYsjrsq9A0=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/Azumatt/AzuAutoStore/3.0.8/"
},
"version": "3.0.8"
},
"valheim.betternetworking": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.betternetworking",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-krgZ4B+MbIG/3CQUMkVIB/xrvvW1TbxB0cp1KwCTBN4=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/CW_Jesse/BetterNetworking_Valheim/2.3.2/"
},
"version": "2.3.2"
},
"valheim.campsite": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.campsite",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-r3HTjfNy7ehr6bsjddr6mTA7T8VVXRhDfulIodjc0jc=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/OdinPlus/OdinCampsite/1.5.8/"
},
"version": "1.5.8"
},
"valheim.cartography": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.cartography",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-u20BTiyF4e6QJ6OUK5migjdEpyzIGRDxLPJ3NdZNhvA=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/Advize/CartographySkill/3.0.1/"
},
"version": "3.0.1"
},
"valheim.craftyboxes": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.craftyboxes",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-8bvHmONHuc9K0cgT42+W4oxQ6MusAv8v0IIVMerdYSA=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/Azumatt/AzuCraftyBoxes/1.8.4/"
},
"version": "1.8.4"
},
"valheim.extendedinv": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.extendedinv",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-Xd7KdUm3c14iQBST31DAqs+bQF9hwYhUxE66o3lusrA=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/Azumatt/AzuExtendedPlayerInventory/1.4.9/"
},
"version": "1.4.9"
},
"valheim.jotunn": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.jotunn",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-Tso4/Sf4Evt5kpBrVqZrjE9Qs2MSZV04WB1w+uX+TX8=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/ValheimModding/Jotunn/2.25.0/"
},
"version": "2.25.0"
},
"valheim.multiuserchest": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.multiuserchest",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-PhXW6vBtEMnhE93RAALEucPU9q3VpdMrooFawWYXl2A=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/MSchmoecker/MultiUserChest/0.6.1/"
},
"version": "0.6.1"
},
"valheim.quickteleport": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.quickteleport",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-YSAVthV994do/atQA+wGfillXeSYFlLJK6VyMcQNVKE=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/OdinPlus/QuickTeleport/1.1.0/"
},
"version": "1.1.0"
},
"valheim.reclaim": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.reclaim",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-2cWdmspwid2h1ekfDFAngN25402pQnxZQhm4rX6BNhw=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/Azumatt/Recycle_N_Reclaim/1.3.6/"
},
"version": "1.3.6"
},
"valheim.seedbed": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.seedbed",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-wm2gGSyMQ6r3lLpbpXtZYG7s+fFYvw5nZGmSW54Ayt4=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/blacks7ar/SeedBed/1.2.7/"
},
"version": "1.2.7"
},
"valheim.servercharacters": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.servercharacters",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-aSB+G4nK3gf0yvMYWbICMFe3A0aCSr7nBH45G9ZdE9g=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/Smoothbrain/ServerCharacters/1.4.16/"
},
"version": "1.4.16"
},
"valheim.smoothsave": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.smoothsave",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-v5Zn+0O0au8VDzO+302oCE7Z9s87I3nq+eK2WbVVyFo=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/Smoothbrain/SmoothSave/1.0.5/"
},
"version": "1.0.5"
},
"valheim.swim": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "valheim.swim",
"passthru": null,
"pinned": false,
"src": {
"sha256": "sha256-QCEYnx0I6onWEAJy851wS0WdC35L18DyJL1wAAwHFaU=",
"type": "tarball",
"url": "https://thunderstore.io/package/download/blacks7ar/VikingsDoSwim/1.3.8/"
},
"version": "1.3.8"
},
"vesktop.micfix": {
"cargoLocks": null,
"date": null,
"extract": null,
"name": "vesktop.micfix",
"passthru": null,
"pinned": false,
"src": {
"name": null,
"sha256": "sha256-eNOKW43LQdJp2GFHqe3RxAhMwkNulrotIOMByosen84=",
"type": "url",
"url": "https://codeberg.org/muon/gists/raw/branch/main/micfix.patch"
},
"version": "1.0.1"
}
}

132
_sources/generated.nix Normal file
View file

@ -0,0 +1,132 @@
# This file was generated by nvfetcher, please do not modify it manually.
{ fetchgit, fetchurl, fetchFromGitHub, dockerTools }:
{
"valheim.aaacrafting" = {
pname = "valheim.aaacrafting";
version = "1.6.6";
src = fetchTarball {
url = "https://thunderstore.io/package/download/Azumatt/AAA_Crafting/1.6.6/";
sha256 = "sha256-cObo71X0wOzW3pZwAy7/dh7IRghu7EMPw7vWuoPWPlk=";
};
};
"valheim.autostore" = {
pname = "valheim.autostore";
version = "3.0.8";
src = fetchTarball {
url = "https://thunderstore.io/package/download/Azumatt/AzuAutoStore/3.0.8/";
sha256 = "sha256-ooghhDinwLTwEpTTQFj/brdb9Yj5aLGr+zYsjrsq9A0=";
};
};
"valheim.betternetworking" = {
pname = "valheim.betternetworking";
version = "2.3.2";
src = fetchTarball {
url = "https://thunderstore.io/package/download/CW_Jesse/BetterNetworking_Valheim/2.3.2/";
sha256 = "sha256-krgZ4B+MbIG/3CQUMkVIB/xrvvW1TbxB0cp1KwCTBN4=";
};
};
"valheim.campsite" = {
pname = "valheim.campsite";
version = "1.5.8";
src = fetchTarball {
url = "https://thunderstore.io/package/download/OdinPlus/OdinCampsite/1.5.8/";
sha256 = "sha256-r3HTjfNy7ehr6bsjddr6mTA7T8VVXRhDfulIodjc0jc=";
};
};
"valheim.cartography" = {
pname = "valheim.cartography";
version = "3.0.1";
src = fetchTarball {
url = "https://thunderstore.io/package/download/Advize/CartographySkill/3.0.1/";
sha256 = "sha256-u20BTiyF4e6QJ6OUK5migjdEpyzIGRDxLPJ3NdZNhvA=";
};
};
"valheim.craftyboxes" = {
pname = "valheim.craftyboxes";
version = "1.8.4";
src = fetchTarball {
url = "https://thunderstore.io/package/download/Azumatt/AzuCraftyBoxes/1.8.4/";
sha256 = "sha256-8bvHmONHuc9K0cgT42+W4oxQ6MusAv8v0IIVMerdYSA=";
};
};
"valheim.extendedinv" = {
pname = "valheim.extendedinv";
version = "1.4.9";
src = fetchTarball {
url = "https://thunderstore.io/package/download/Azumatt/AzuExtendedPlayerInventory/1.4.9/";
sha256 = "sha256-Xd7KdUm3c14iQBST31DAqs+bQF9hwYhUxE66o3lusrA=";
};
};
"valheim.jotunn" = {
pname = "valheim.jotunn";
version = "2.25.0";
src = fetchTarball {
url = "https://thunderstore.io/package/download/ValheimModding/Jotunn/2.25.0/";
sha256 = "sha256-Tso4/Sf4Evt5kpBrVqZrjE9Qs2MSZV04WB1w+uX+TX8=";
};
};
"valheim.multiuserchest" = {
pname = "valheim.multiuserchest";
version = "0.6.1";
src = fetchTarball {
url = "https://thunderstore.io/package/download/MSchmoecker/MultiUserChest/0.6.1/";
sha256 = "sha256-PhXW6vBtEMnhE93RAALEucPU9q3VpdMrooFawWYXl2A=";
};
};
"valheim.quickteleport" = {
pname = "valheim.quickteleport";
version = "1.1.0";
src = fetchTarball {
url = "https://thunderstore.io/package/download/OdinPlus/QuickTeleport/1.1.0/";
sha256 = "sha256-YSAVthV994do/atQA+wGfillXeSYFlLJK6VyMcQNVKE=";
};
};
"valheim.reclaim" = {
pname = "valheim.reclaim";
version = "1.3.6";
src = fetchTarball {
url = "https://thunderstore.io/package/download/Azumatt/Recycle_N_Reclaim/1.3.6/";
sha256 = "sha256-2cWdmspwid2h1ekfDFAngN25402pQnxZQhm4rX6BNhw=";
};
};
"valheim.seedbed" = {
pname = "valheim.seedbed";
version = "1.2.7";
src = fetchTarball {
url = "https://thunderstore.io/package/download/blacks7ar/SeedBed/1.2.7/";
sha256 = "sha256-wm2gGSyMQ6r3lLpbpXtZYG7s+fFYvw5nZGmSW54Ayt4=";
};
};
"valheim.servercharacters" = {
pname = "valheim.servercharacters";
version = "1.4.16";
src = fetchTarball {
url = "https://thunderstore.io/package/download/Smoothbrain/ServerCharacters/1.4.16/";
sha256 = "sha256-aSB+G4nK3gf0yvMYWbICMFe3A0aCSr7nBH45G9ZdE9g=";
};
};
"valheim.smoothsave" = {
pname = "valheim.smoothsave";
version = "1.0.5";
src = fetchTarball {
url = "https://thunderstore.io/package/download/Smoothbrain/SmoothSave/1.0.5/";
sha256 = "sha256-v5Zn+0O0au8VDzO+302oCE7Z9s87I3nq+eK2WbVVyFo=";
};
};
"valheim.swim" = {
pname = "valheim.swim";
version = "1.3.8";
src = fetchTarball {
url = "https://thunderstore.io/package/download/blacks7ar/VikingsDoSwim/1.3.8/";
sha256 = "sha256-QCEYnx0I6onWEAJy851wS0WdC35L18DyJL1wAAwHFaU=";
};
};
"vesktop.micfix" = {
pname = "vesktop.micfix";
version = "1.0.1";
src = fetchurl {
url = "https://codeberg.org/muon/gists/raw/branch/main/micfix.patch";
sha256 = "sha256-eNOKW43LQdJp2GFHqe3RxAhMwkNulrotIOMByosen84=";
};
};
}

45
flake.lock generated
View file

@ -448,7 +448,8 @@
"nix-minecraft": "nix-minecraft", "nix-minecraft": "nix-minecraft",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"stylix": "stylix" "stylix": "stylix",
"valheim-server": "valheim-server"
} }
}, },
"sops-nix": { "sops-nix": {
@ -471,6 +472,27 @@
"type": "github" "type": "github"
} }
}, },
"steam-fetcher": {
"inputs": {
"nixpkgs": [
"valheim-server",
"nixpkgs"
]
},
"locked": {
"lastModified": 1714795926,
"narHash": "sha256-PkgC9jqoN6cJ8XYzTA2PlrWs7aPJkM3BGiTxNqax0cA=",
"owner": "nix-community",
"repo": "steam-fetcher",
"rev": "12f66eafb7862d91b3e30c14035f96a21941bd9c",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "steam-fetcher",
"type": "github"
}
},
"stylix": { "stylix": {
"inputs": { "inputs": {
"base16": "base16", "base16": "base16",
@ -638,6 +660,27 @@
"repo": "treefmt-nix", "repo": "treefmt-nix",
"type": "github" "type": "github"
} }
},
"valheim-server": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"steam-fetcher": "steam-fetcher"
},
"locked": {
"lastModified": 1744964760,
"narHash": "sha256-VSy6SZqDDMqrFlf6gw3xA/u3WEu3thjGOh3akIJEWW4=",
"owner": "kmjayadeep",
"repo": "valheim-server-flake",
"rev": "5b95198dca8af8287108b610432d88aef5fa29fc",
"type": "github"
},
"original": {
"owner": "kmjayadeep",
"repo": "valheim-server-flake",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -11,6 +11,9 @@
stylix.url = "github:danth/stylix"; stylix.url = "github:danth/stylix";
nix-minecraft.url = "git+https://codeberg.org/nix-astral/nix-minecraft.git"; nix-minecraft.url = "git+https://codeberg.org/nix-astral/nix-minecraft.git";
nix-alien.url = "github:thiagokokada/nix-alien"; nix-alien.url = "github:thiagokokada/nix-alien";
valheim-server.url = "github:kmjayadeep/valheim-server-flake";
valheim-server.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = inputs@{ nixpkgs, home-manager, stylix, ... }: outputs = inputs@{ nixpkgs, home-manager, stylix, ... }:
@ -19,7 +22,11 @@
pkgs = import inputs.nixpkgs { inherit system; }; pkgs = import inputs.nixpkgs { inherit system; };
utils = import ./utils.nix { inherit inputs system; }; sources = import ./_sources/generated.nix {
inherit (pkgs) fetchurl fetchgit fetchFromGitHub dockerTools;
};
utils = import ./utils.nix { inherit inputs system sources; };
in { in {
nixosConfigurations = { nixosConfigurations = {
# desktop # desktop

View file

@ -36,18 +36,17 @@ in {
mods.server.grav.enable = true; mods.server.grav.enable = true;
mods.server.homebox.enable = true; mods.server.homebox.enable = true;
mods.server.share.enable = true; mods.server.share.enable = false;
mods.server.vault.enable = true; mods.server.vault.enable = true;
mods.server.git.enable = true; mods.server.git.enable = true;
mods.server.cal.enable = true; mods.server.cal.enable = true;
mods.server.chat.enable = true; mods.server.chat.enable = true;
mods.server.ntfy.enable = true; mods.server.ntfy.enable = true;
mods.server.lemmy.enable = true;
mods.server.dash.enable = true; mods.server.dash.enable = false;
mods.server.nginx.ports.dash = 3009; mods.server.nginx.ports.dash = 3009;
mods.server.vrising.enable = true;
mods.tailscale.enable = true; mods.tailscale.enable = true;
mods.wireguard.id = 3; mods.wireguard.id = 3;
@ -60,6 +59,9 @@ in {
mods.unfree.steam.enable = false; mods.unfree.steam.enable = false;
mods.unfree.nvidia.enable = false; mods.unfree.nvidia.enable = false;
mods.unfree.minecraft.enable = false; mods.unfree.minecraft.enable = false;
mods.unfree.valheim.enable = true;
mods.server.vrising.enable = false;
# Hardware preferences # Hardware preferences
@ -124,5 +126,5 @@ in {
# hardware.nvidia.powerManagement.enable = false; # hardware.nvidia.powerManagement.enable = false;
# Version of first install # Version of first install
system.stateVersion = "23.05"; system.stateVersion = "23.11";
} }

View file

@ -1,4 +1,11 @@
{ pkgs, lib, config, ... }: { { pkgs, lib, config, ... }: {
options.mods.server = with lib; {
local.ports = mkOption {
type = types.attrsOf (types.ints.u16);
default = { };
};
};
config = {
mods.server.nginx.ports = { mods.server.nginx.ports = {
photos = 3001; photos = 3001;
homebox = 3002; homebox = 3002;
@ -15,4 +22,11 @@
videos = 8082; videos = 8082;
reddit = 8083; reddit = 8083;
}; };
mods.server.local.ports = {
# grav = 5001
lemmy-api = 5002;
lemmy-ui = 5003;
pict-rs = 5004;
};
};
} }

View file

@ -1,12 +1,7 @@
{ pkgs, lib, config, ... }: { pkgs, lib, config, sources, ... }:
let let
vesktop-nogain = (pkgs.vesktop.overrideAttrs (previousAttrs: { vesktop-nogain = (pkgs.vesktop.overrideAttrs (previousAttrs: {
patches = previousAttrs.patches ++ [ patches = previousAttrs.patches ++ [ sources."vesktop.micfix".src ];
(builtins.fetchurl {
url = "https://codeberg.org/muon/gists/raw/branch/main/micfix.patch";
sha256 = "1klz3s5wl0g340nvm5kf8g14q264s7nsjiv1v1lx4hfbimdqmlvq";
})
];
})); }));
in { in {
options.mods.social.enable = options.mods.social.enable =

View file

@ -1,29 +1,4 @@
{ pkgs, lib, config, ... }: { pkgs, lib, config, ... }: {
let
wgsl_analyzer = with pkgs;
stdenv.mkDerivation rec {
pname = "wgsl_analyzer";
version = "0.8.1";
src = fetchurl {
url =
"https://github.com/wgsl-analyzer/wgsl-analyzer/releases/download/v${version}/${pname}-linux-x64";
hash = "sha256-WRc9fHUw9/KHD5BzUX3nd+0sRkc7i8axsXhHUZFOUeY=";
};
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [ openssl zlib ];
sourceRoot = ".";
phases = [ "installPhase" "patchPhase" ];
installPhase = ''
mkdir -p $out/bin
cp $src $out/bin/${pname}
chmod +x $out/bin/${pname}
'';
};
in {
options.mods.terminal.development.enable = options.mods.terminal.development.enable =
lib.mkEnableOption "enables cli editor"; lib.mkEnableOption "enables cli editor";
@ -38,7 +13,7 @@ in {
# Shaders # Shaders
glsl_analyzer glsl_analyzer
# wgsl_analyzer wgsl-analyzer
# Python # Python
black black
@ -79,7 +54,7 @@ in {
languages.language-server = { languages.language-server = {
glsl.command = "${pkgs.glsl_analyzer}/bin/glsl_analyzer"; glsl.command = "${pkgs.glsl_analyzer}/bin/glsl_analyzer";
wgsl.command = "${wgsl_analyzer}/bin/wgsl_analyzer"; wgsl.command = "${pkgs.wgsl-analyzer}/bin/wgsl_analyzer";
}; };
languages.language = [ languages.language = [

View file

@ -22,5 +22,6 @@
./dash.nix ./dash.nix
./nvr.nix ./nvr.nix
./ntfy.nix ./ntfy.nix
./lemmy.nix
]; ];
} }

View file

@ -6,7 +6,7 @@ let
generators mapAttrs mkDefault mkEnableOption mkIf mkPackageOption mkOption generators mapAttrs mkDefault mkEnableOption mkIf mkPackageOption mkOption
types; types;
cfg = config.services.grav; cfg = config.mods.services.grav;
# yamlFormat = pkgs.formats.yaml { }; # yamlFormat = pkgs.formats.yaml { };

View file

@ -0,0 +1,87 @@
{ pkgs, lib, config, ... }:
let
inherit (lib) mkEnableOption;
cfg = config.mods.server.lemmy;
port = config.mods.server.local.ports.lemmy-api;
port-ui = config.mods.server.local.ports.lemmy-ui;
port-pict = config.mods.server.local.ports.pict-rs;
hostname = "lemmy.muon.host";
bind = "0.0.0.0";
in {
options.mods.server.lemmy = {
enable = mkEnableOption {
default = false;
description = "enables lemmy engine server";
};
};
config = {
services.lemmy = lib.mkIf cfg.enable {
enable = true;
ui.port = port-ui;
settings = { inherit port hostname bind; };
database.createLocally = true;
};
systemd.services.lemmy-ui = lib.mkIf cfg.enable {
environment = lib.mkForce {
LEMMY_UI_HOST = "${bind}:${toString port-ui}";
LEMMY_UI_LEMMY_INTERNAL_HOST = "${bind}:${toString port}";
LEMMY_UI_LEMMY_EXTERNAL_HOST = hostname;
LEMMY_UI_HTTPS = "false";
NODE_ENV = "production";
};
};
services.pict-rs = lib.mkIf cfg.enable {
enable = true;
port = port-pict;
address = "0.0.0.0";
};
# services.nginx.virtualHosts."${hostname}" = let
# ui = "http://10.0.0.3:${toString port-ui}";
# backend = "http://10.0.0.3:${toString port}";
# in lib.mkIf config.mods.server.nginx.enable {
# forceSSL = true;
# enableACME = true;
# locations = {
# "~ ^/(api|pictrs|feeds|nodeinfo|.well-known)" = {
# # backend requests
# proxyPass = backend;
# proxyWebsockets = true;
# recommendedProxySettings = true;
# };
# "/" = {
# # mixed frontend and backend requests, based on the request headers
# extraConfig = ''
# set $proxpass "${ui}";
# if ($http_accept = "application/activity+json") {
# set $proxpass "${backend}";
# }
# if ($http_accept = "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"") {
# set $proxpass "${backend}";
# }
# if ($request_method = POST) {
# set $proxpass "${backend}";
# }
# # Cuts off the trailing slash on URLs to make them valid
# rewrite ^(.+)/+$ $1 permanent;
# proxy_pass $proxpass;
# # Proxied `Host` header is required to validate ActivityPub HTTP signatures for incoming events.
# # The other headers are optional, for the sake of better log data.
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header Host $host;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# '';
# };
# };
# };
};
}

View file

@ -14,5 +14,8 @@ in with lib; {
owner = "radicale"; owner = "radicale";
group = "radicale"; group = "radicale";
}; };
secrets.lemmy-password = mkIf cfg.server.lemmy.enable {
};
}; };
} }

View file

@ -1,11 +1,8 @@
muon-password: ENC[AES256_GCM,data:K2ifHvs8hQXK4//FXf3vfDliiklx0dTn8gpirTBT07Q1XIMJR1Vgn/f1uo62bu4a/bknAR5gEBfd/cSRUTdBBxd7Lec2k3fxQg==,iv:j1JTzyfjcKEqh+PK5tyCWBMV7MpwvIG9MJ9eiajksxM=,tag:ZcSEVBW1UOCvE40yIsaBFQ==,type:str] muon-password: ENC[AES256_GCM,data:K2ifHvs8hQXK4//FXf3vfDliiklx0dTn8gpirTBT07Q1XIMJR1Vgn/f1uo62bu4a/bknAR5gEBfd/cSRUTdBBxd7Lec2k3fxQg==,iv:j1JTzyfjcKEqh+PK5tyCWBMV7MpwvIG9MJ9eiajksxM=,tag:ZcSEVBW1UOCvE40yIsaBFQ==,type:str]
zipline-secret: ENC[AES256_GCM,data:cdqPWBUg6FZkBrUYNkm7imntc2hXUAxDjd1Ymr3j9y763cbXDYEu44wJF0W1Ng==,iv:sdjV4SkRCTO04AvXqtoPOPyASlitrS4nS+M0Z2lZURA=,tag:gNcOdJvg9PtrRlm84CdbsQ==,type:str] zipline-secret: ENC[AES256_GCM,data:cdqPWBUg6FZkBrUYNkm7imntc2hXUAxDjd1Ymr3j9y763cbXDYEu44wJF0W1Ng==,iv:sdjV4SkRCTO04AvXqtoPOPyASlitrS4nS+M0Z2lZURA=,tag:gNcOdJvg9PtrRlm84CdbsQ==,type:str]
htpasswd: ENC[AES256_GCM,data:YbDNElLsvRtC1ezgxIYI6U+ZZES1Lr6BXamNdbxQibj0NfC9oobP7ed8MQpFTlhhJZx5I5Xa6XtFrvjdo13NtdU=,iv:P98P1XxtdCp7+TuAwKybzjcWGF1OQtnAuQs4ObZct7o=,tag:gXrQaBxUvuVSB5yYhWcihA==,type:str] htpasswd: ENC[AES256_GCM,data:YbDNElLsvRtC1ezgxIYI6U+ZZES1Lr6BXamNdbxQibj0NfC9oobP7ed8MQpFTlhhJZx5I5Xa6XtFrvjdo13NtdU=,iv:P98P1XxtdCp7+TuAwKybzjcWGF1OQtnAuQs4ObZct7o=,tag:gXrQaBxUvuVSB5yYhWcihA==,type:str]
lemmy-password: ENC[AES256_GCM,data:VVPbhW6l+VYSUfmlySPSwITwonKQHaIY,iv:XcwM7Sz2novn3cHt4EK5HAZkYVPfPqwIcGtTWMQPByg=,tag:0b8epk98eTcx7b57yGcjpw==,type:str]
sops: sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age: age:
- recipient: age1m97a3eptxwpdd7h5kkqe9gkmhg6rquc64qjmlsfqfhfqv8q72crqrylhgc - recipient: age1m97a3eptxwpdd7h5kkqe9gkmhg6rquc64qjmlsfqfhfqv8q72crqrylhgc
enc: | enc: |
@ -34,8 +31,7 @@ sops:
cThxTVpmcEMrcG9Lczd3dkdyQ0paSHMKUfkx9jh7zIqBkUjxaH3dVKvNJG3Mipts cThxTVpmcEMrcG9Lczd3dkdyQ0paSHMKUfkx9jh7zIqBkUjxaH3dVKvNJG3Mipts
OjmJ5aVVIR5U8MhgSgECb22mGlOgW8SU/x4gxcWgafZwbv2vbON6OA== OjmJ5aVVIR5U8MhgSgECb22mGlOgW8SU/x4gxcWgafZwbv2vbON6OA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-01-25T15:55:13Z" lastmodified: "2025-05-17T09:59:07Z"
mac: ENC[AES256_GCM,data:M/IPR1hqkiLHqt/fgmZ+HezGrmAKbu0LJJkMMr0895neP6WB571AQ29+VLRm+7jDp9qjKgelwDOU/t/UdUgKP1hSK0cOcHR1B7KecHVCFKHNdfaD70xzA4PUQpTFIc6bHyLSMeQAwoEDKkW3inuKwD6k1RVQmOOUMT9shs6Oe48=,iv:I6XbpfScaJwZPXyVkvreKL2tDwgt7p8Eub/pSD6Bm8g=,tag:6wdBYdoOgf9iX0cGT63v3Q==,type:str] mac: ENC[AES256_GCM,data:ewURL+W/C0XnEJiXipeSXr5F5hItD3LPMdThjBg1ObY/N7Tb28Tm18vCOpbr37H0gDWnDjNu2rzVN3+XjrbVzXe7n4YUzN2sZa2zZEJhHDTyQWdiPtMpApXeu1Va621EQymDyTm7N2hJz3MvadiWYIv/ft685FPY7qRX7pluUFc=,iv:FIoClE4hX8+PBHY5LOFeSowxSrAHIaDPFblD6Pkakes=,tag:FepKajXRusCbLTlJGPKm6g==,type:str]
pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.3 version: 3.10.2

View file

@ -4,10 +4,10 @@ let
mkPackages = mod: if cfg.${mod}.enable then cfg.${mod}.packages else [ ]; mkPackages = mod: if cfg.${mod}.enable then cfg.${mod}.packages else [ ];
in { in {
imports = [ ./steam.nix ./nvidia.nix ./minecraft.nix ]; imports = [ ./steam.nix ./nvidia.nix ./minecraft.nix ./valheim.nix ];
nixpkgs.config.allowUnfreePredicate = pkg: nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) ((mkPackages "steam") builtins.elem (lib.getName pkg) ((mkPackages "steam")
++ (mkPackages "minecraft") ++ (mkPackages "nvidia") ++ (mkPackages "minecraft") ++ (mkPackages "nvidia")
++ [ "stremio-shell" "stremio-server" ]); ++ (mkPackages "valheim") ++ [ "stremio-shell" "stremio-server" ]);
} }

View file

@ -0,0 +1,27 @@
{ pkgs, lib, config, inputs, sources, ... }: {
options.mods.unfree.valheim = {
enable = lib.mkEnableOption {
default = false;
description = "enables valheim server";
};
packages = lib.mkOption {
default = [ "valheim-server" "steamworks-sdk-redist" ];
description = "unfree packages";
};
};
imports = [ inputs.valheim-server.nixosModules.default ];
config = lib.mkIf config.mods.unfree.valheim.enable {
services.valheim = {
enable = true;
serverName = "Smorld";
worldName = "Smorld";
openFirewall = true;
password = "notbeempty";
bepinexMods = lib.mapAttrsToList (name: value: value.src)
(lib.attrsets.filterAttrs (n: v: lib.strings.hasPrefix "valheim." n)
sources);
};
};
}

79
nvfetcher.toml Normal file
View file

@ -0,0 +1,79 @@
["vesktop.micfix"]
src.manual = "1.0.1"
fetch.url = "https://codeberg.org/muon/gists/raw/branch/main/micfix.patch"
["valheim.jotunn"]
src.webpage = "https://thunderstore.io/c/valheim/p/ValheimModding/Jotunn/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/ValheimModding/Jotunn/$ver/"
["valheim.craftyboxes"]
src.webpage = "https://thunderstore.io/c/valheim/p/Azumatt/AzuCraftyBoxes/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/Azumatt/AzuCraftyBoxes/$ver/"
["valheim.autostore"]
src.webpage = "https://thunderstore.io/c/valheim/p/Azumatt/AzuAutoStore/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/Azumatt/AzuAutoStore/$ver/"
["valheim.extendedinv"]
src.webpage = "https://thunderstore.io/c/valheim/p/Azumatt/AzuExtendedPlayerInventory/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/Azumatt/AzuExtendedPlayerInventory/$ver/"
["valheim.reclaim"]
src.webpage = "https://thunderstore.io/c/valheim/p/Azumatt/Recycle_N_Reclaim/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/Azumatt/Recycle_N_Reclaim/$ver/"
["valheim.aaacrafting"]
src.webpage = "https://thunderstore.io/c/valheim/p/Azumatt/AAA_Crafting/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/Azumatt/AAA_Crafting/$ver/"
["valheim.campsite"]
src.webpage = "https://thunderstore.io/c/valheim/p/OdinPlus/OdinCampsite/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/OdinPlus/OdinCampsite/$ver/"
["valheim.quickteleport"]
src.webpage = "https://thunderstore.io/c/valheim/p/OdinPlus/QuickTeleport/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/OdinPlus/QuickTeleport/$ver/"
["valheim.multiuserchest"]
src.webpage = "https://thunderstore.io/c/valheim/p/MSchmoecker/MultiUserChest/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/MSchmoecker/MultiUserChest/$ver/"
["valheim.cartography"]
src.webpage = "https://thunderstore.io/c/valheim/p/Advize/CartographySkill/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/Advize/CartographySkill/$ver/"
["valheim.swim"]
src.webpage = "https://thunderstore.io/c/valheim/p/blacks7ar/VikingsDoSwim/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/blacks7ar/VikingsDoSwim/$ver/"
["valheim.seedbed"]
src.webpage = "https://thunderstore.io/c/valheim/p/blacks7ar/SeedBed/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/blacks7ar/SeedBed/$ver/"
["valheim.servercharacters"]
src.webpage = "https://thunderstore.io/c/valheim/p/Smoothbrain/ServerCharacters/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/Smoothbrain/ServerCharacters/$ver/"
["valheim.smoothsave"]
src.webpage = "https://thunderstore.io/c/valheim/p/Smoothbrain/SmoothSave/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/Smoothbrain/SmoothSave/$ver/"
["valheim.betternetworking"]
src.webpage = "https://thunderstore.io/c/valheim/p/CW_Jesse/BetterNetworking_Valheim/"
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
fetch.tarball = "https://thunderstore.io/package/download/CW_Jesse/BetterNetworking_Valheim/$ver/"

View file

@ -8,6 +8,7 @@
sops sops
age age
nvfetcher
]; ];
}; };
} }

View file

@ -1,7 +1,7 @@
{ inputs, system, ... }: { { inputs, system, sources, ... }: {
mkHost = host: mkHost = host:
inputs.nixpkgs.lib.nixosSystem { inputs.nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs system; }; specialArgs = { inherit inputs system sources; };
modules = [ modules = [
host host