Add guildhall
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
a985148346
commit
791a3bdf34
6 changed files with 53 additions and 0 deletions
|
|
@ -126,6 +126,7 @@ in
|
||||||
./services/redlib.nix
|
./services/redlib.nix
|
||||||
./services/stardew-tracker.nix
|
./services/stardew-tracker.nix
|
||||||
./services/flowtrack.nix
|
./services/flowtrack.nix
|
||||||
|
./services/guildhall.nix
|
||||||
./services/hardware-health.nix
|
./services/hardware-health.nix
|
||||||
./services/wan-watchdog.nix
|
./services/wan-watchdog.nix
|
||||||
./services/deployment.nix
|
./services/deployment.nix
|
||||||
|
|
|
||||||
21
flake.lock
generated
21
flake.lock
generated
|
|
@ -223,6 +223,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"guildhall": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1792327736,
|
||||||
|
"narHash": "sha256-rBD6icIYApcYSri+dEmg4Xtar6/LA9dfyHOHvpQaC7U=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "9058039eb7d881d591cd6675199e798549b6f3b5",
|
||||||
|
"revCount": 1,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://forg.gregersen.it/rope/guildhall"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://forg.gregersen.it/rope/guildhall"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -472,6 +492,7 @@
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flowtrack": "flowtrack",
|
"flowtrack": "flowtrack",
|
||||||
|
"guildhall": "guildhall",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"loupe": "loupe",
|
"loupe": "loupe",
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,11 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
guildhall = {
|
||||||
|
url = "git+https://forg.gregersen.it/rope/guildhall";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
stylix = {
|
stylix = {
|
||||||
url = "github:nix-community/stylix/release-26.05";
|
url = "github:nix-community/stylix/release-26.05";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
@ -60,6 +65,7 @@
|
||||||
, proton-cachyos-nix
|
, proton-cachyos-nix
|
||||||
, stardew-tracker
|
, stardew-tracker
|
||||||
, flowtrack
|
, flowtrack
|
||||||
|
, guildhall
|
||||||
, ...
|
, ...
|
||||||
} @ inputs:
|
} @ inputs:
|
||||||
let
|
let
|
||||||
|
|
@ -71,6 +77,7 @@
|
||||||
stylix.nixosModules.stylix
|
stylix.nixosModules.stylix
|
||||||
stardew-tracker.nixosModules.default
|
stardew-tracker.nixosModules.default
|
||||||
flowtrack.nixosModules.default
|
flowtrack.nixosModules.default
|
||||||
|
guildhall.nixosModules.default
|
||||||
./settings/stylix.nix
|
./settings/stylix.nix
|
||||||
];
|
];
|
||||||
mkHost = hostname: extraModules: nixpkgs.lib.nixosSystem {
|
mkHost = hostname: extraModules: nixpkgs.lib.nixosSystem {
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ in
|
||||||
{ domain = "reddit.nordhammer.it"; policy = "one_factor"; }
|
{ domain = "reddit.nordhammer.it"; policy = "one_factor"; }
|
||||||
{ domain = "panel.nordhammer.it"; policy = "one_factor"; subject = admin; }
|
{ domain = "panel.nordhammer.it"; policy = "one_factor"; subject = admin; }
|
||||||
{ domain = "stardew.nordhammer.it"; policy = "one_factor"; }
|
{ domain = "stardew.nordhammer.it"; policy = "one_factor"; }
|
||||||
|
{ domain = "guildhall.nordhammer.it"; policy = "one_factor"; }
|
||||||
# Health data: only the two people the app knows about.
|
# Health data: only the two people the app knows about.
|
||||||
{ domain = "flowtrack.nordhammer.it"; policy = "one_factor"; subject = [ "user:kayla" "user:fred" ]; }
|
{ domain = "flowtrack.nordhammer.it"; policy = "one_factor"; subject = [ "user:kayla" "user:fred" ]; }
|
||||||
];
|
];
|
||||||
|
|
|
||||||
16
services/guildhall.nix
Normal file
16
services/guildhall.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
# services/guildhall.nix — Guildhall, the co-op idle game for friends.
|
||||||
|
#
|
||||||
|
# The game and NixOS module live in the standalone guildhall flake. nginx is
|
||||||
|
# the only public listener; Authelia admits any account, and the game keys
|
||||||
|
# each player on the Remote-User it passes through. Nightly snapshots sit
|
||||||
|
# next to flowtrack's on the SSD branch of the pool.
|
||||||
|
{ config, lib, ... }:
|
||||||
|
{
|
||||||
|
config = lib.mkIf (config.networking.hostName == "FredOS-Mediaserver") {
|
||||||
|
services.guildhall = {
|
||||||
|
enable = true;
|
||||||
|
port = 8098;
|
||||||
|
backup.directory = "/mnt/disk2/backups/guildhall";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -210,6 +210,13 @@ in
|
||||||
proxy_set_header Remote-User $user;
|
proxy_set_header Remote-User $user;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
# Co-op idle game. Players are keyed on Remote-User, so nginx must
|
||||||
|
# always overwrite it with the Authelia identity.
|
||||||
|
"guildhall.nordhammer.it" = lib.recursiveUpdate (protectedProxy 8098) {
|
||||||
|
locations."/".extraConfig = autheliaAuthConfig + ''
|
||||||
|
proxy_set_header Remote-User $user;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
# Pelican game panel. Can't turn off its own login (no such option
|
# Pelican game panel. Can't turn off its own login (no such option
|
||||||
# upstream), so Authelia is the outer gate and the Pelican account
|
# upstream), so Authelia is the outer gate and the Pelican account
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue