summaryrefslogtreecommitdiff
path: root/2026
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-08-04 05:00:02 -0400
committerLLLL Colonq <llll@colonq>2026-08-04 05:00:02 -0400
commitcc8514251ee1828908161756228fa1c8357effc2 (patch)
tree9c80dfee1c8d059398dd817ee799e2713e987b8a /2026
parent3c7796f066647090ed8436778bdfe25f11844c05 (diff)
Add nixos module
Diffstat (limited to '2026')
-rw-r--r--2026/flake.nix38
1 files changed, 37 insertions, 1 deletions
diff --git a/2026/flake.nix b/2026/flake.nix
index 75bc1eb..7a5526b 100644
--- a/2026/flake.nix
+++ b/2026/flake.nix
@@ -23,9 +23,42 @@
chmod -w $out/jam_server
'';
};
+ jam2026Games = pkgs.stdenv.mkDerivation {
+ name = "jam2026-games";
+ phases = [ "installPhase" ];
+ installPhase = ''
+ mkdir $out
+ cp -rv ${./games} $out/games
+ '';
+ };
+ jam2026Module = { config, lib, ... }:
+ let
+ cfg = config.colonq.services.jam2026;
+ in {
+ options.colonq.services.jam2026 = {
+ enable = lib.mkEnableOption "Enable the Jam 2026 server";
+ };
+ config = lib.mkIf cfg.enable {
+ users.users.jam2026 = {
+ isSystemUser = true;
+ group = "jam2026";
+ };
+ users.groups.jam2026 = {};
+ systemd.services."colonq.jam2026" = {
+ after = ["network-online.target"];
+ wantedBy = ["network-online.target"];
+ serviceConfig = {
+ User = "jam2026";
+ Restart = "on-failure";
+ ExecStart = "${jam}/bin/jam_server --no-browser";
+ WorkingDirectory = "${jam2026Games}";
+ };
+ };
+ };
+ };
in {
packages.${system} = {
- inherit jam windows nonnix;
+ inherit jam windows nonnix jam2026Games;
default = jam;
};
applications.${system}.default = {
@@ -35,5 +68,8 @@
devShells.${system}.default = inputs.teleia.shell.overrideAttrs (final: prev: {
buildInputs = prev.buildInputs;
});
+ nixosModules = {
+ jam2026 = jam2026Module;
+ };
};
}