aboutsummaryrefslogtreecommitdiff
path: root/hosts/ganymede
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2026-01-18 08:10:20 -0600
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2026-01-18 08:10:20 -0600
commitd6c4bd6d87d31a2c688fb2fcfdb0cb15d8f9163d (patch)
tree07f85b8fac540f7625f90b10ee500a1bc8116ac3 /hosts/ganymede
parented2550a41c8429a1d2fe897deb878717c2ebc3d1 (diff)
parent43af7f28b28021932b318964a953463d8dd79372 (diff)
Merge branch 'main' into wg
Diffstat (limited to 'hosts/ganymede')
-rw-r--r--hosts/ganymede/caddy-env.age11
-rw-r--r--hosts/ganymede/caddy.nix20
-rw-r--r--hosts/ganymede/config.nix35
-rw-r--r--hosts/ganymede/minecraft.nix10
-rw-r--r--hosts/ganymede/nixos.nix13
-rw-r--r--hosts/ganymede/tsnsrv-authkey.age7
6 files changed, 62 insertions, 34 deletions
diff --git a/hosts/ganymede/caddy-env.age b/hosts/ganymede/caddy-env.age
index 79d7b91..ecfc05a 100644
--- a/hosts/ganymede/caddy-env.age
+++ b/hosts/ganymede/caddy-env.age
@@ -1,6 +1,7 @@
age-encryption.org/v1
--> ssh-ed25519 Jg4yWQ cVxgS8Sy6bB9lQVeDBQVhmCaD437YxPAZduSzFA6WHE
-KV9ZrAEH3z8cT0IeaIfkqMYhU/4LS2St0ySK030Ie1c
---- pUeKTMwZf3FARqVLl9TARgItjcr1O82hUKaZ9YtjFRM
-a_v1BRgʫ*+r֘0}ܨd`˟ϞJ<3hi1|Gjl3!7r 3Xp=d`71ݻѲh<Hdy;V˜NiGN^@`OnTyq>FW5/2̞?[HZ - Sd:FCGq%-#W~Wz_XF)ZS~MhCF!C)N*ٟ
-R \ No newline at end of file
+-> ssh-ed25519 Jg4yWQ t4jtOOcuC4v735Yi4FzdDnvjQFNYVgzMluuH7H3oxx4
+qLKbZ3wA3kk7UXqwUJN2HH+6Wr3qgzINNwLx+dbgsIg
+--- im4dvpbhdvB7fwa8QJ7clFZ+5aVIaXld/gPlhUalc14
+>u4BECQD:3kkKļc}}}mK)HM3v}ܣI9Ikxr1s?"8Д>J{uafϚ}.3Oa9m2- @C0b X|]:9`WX1ba|W2=l]Cw U&~"0 !
+6
+MFίp D˅+q `-R6/L 4 \ No newline at end of file
diff --git a/hosts/ganymede/caddy.nix b/hosts/ganymede/caddy.nix
index b073f9a..6ad32cf 100644
--- a/hosts/ganymede/caddy.nix
+++ b/hosts/ganymede/caddy.nix
@@ -12,24 +12,16 @@
hash = "sha256-BQdm8p9eDGhRu6mKyX2FAUaKoU6Lv2A746Sey39T13I=";
});
- extraConfig = ''
- {
- acme_dns porkbun {
- api_key {env.PORKBUN_API_KEY}
- api_secret_key {env.PORKBUN_API_SECRET_KEY}
- }
+ globalConfig = ''
+ acme_dns porkbun {
+ api_key {env.PORKBUN_API_KEY}
+ api_secret_key {env.PORKBUN_API_SECRET_KEY}
}
'';
- virtualHosts."https://web.tail7cca06.ts.net".extraConfig = ''
- bind tailscale/web
- root * /var/www/williams_web
+ virtualHosts."https://williamsfam.us.com".extraConfig = ''
+ root * /var/www
file_server
-
- handle_path /papa_stories/* {
- root * /var/www/papa_stories
- file_server
- }
'';
};
}
diff --git a/hosts/ganymede/config.nix b/hosts/ganymede/config.nix
index 297d7c6..f6b3b74 100644
--- a/hosts/ganymede/config.nix
+++ b/hosts/ganymede/config.nix
@@ -1,10 +1,17 @@
-{config, ...}: {
+{config, ...}: let
+ tailscaleIP = "100.100.218.182";
+in {
collinux = {
user.name = "collin";
secrets = {
- "williams-psk".file = ./williams-psk.age;
+ "williams-psk" = {
+ file = ./williams-psk.age;
+ owner = "wpa_supplicant";
+ };
+
"caddy-env".file = ./caddy-env.age;
+ "tsnsrv-authkey".file = ./tsnsrv-authkey.age;
"wg-key".file = ./ganymede-wg-key.age;
};
@@ -52,17 +59,33 @@
gateway = "192.168.50.1";
};
};
- tailscale.enable = true;
- sshd.enable = true;
+ tailscale = {
+ enable = true;
+ tailnet = "collinux.tailnet";
+ };
+ sshd = {
+ enable = true;
+ bind_host = "0.0.0.0";
+ };
};
selfhost = {
- adguard.enable = true;
- forgejo.enable = true;
caddy = {
enable = true;
envFile = config.collinux.secrets."caddy-env".path;
};
+
+ forgejo = {
+ enable = true;
+ bind_host = tailscaleIP;
+ root_url = "ganymede.collinux.tailnet:8010";
+ };
+
+ headscale = {
+ enable = true;
+ root_url = "headscale.williamsfam.us.com";
+ caddy.enable = true;
+ };
};
};
};
diff --git a/hosts/ganymede/minecraft.nix b/hosts/ganymede/minecraft.nix
index cff5de2..c244868 100644
--- a/hosts/ganymede/minecraft.nix
+++ b/hosts/ganymede/minecraft.nix
@@ -1,6 +1,6 @@
{config, ...}: {
networking.firewall.allowedUDPPorts = [19132];
- virtualisation.oci-containers.backend = "podman";
+ virtualisation.oci-containers.backend = "docker";
virtualisation.oci-containers.containers."Minecraft" = {
environment = {
@@ -9,16 +9,14 @@
SERVER_NAME = "YServer";
TZ = config.time.timeZone;
- VERSION = "1.21.81.2";
- CONTENT_LOG_FILE_ENABLED = "true";
+ VERSION = "1.21.131.1";
+ CONTENT_LOG_FILE_ENABLED = "false";
ALLOW_CHEATS = "false";
DIFFICULTY = "1";
};
image = "itzg/minecraft-bedrock-server";
ports = ["0.0.0.0:19132:19132/udp"];
- volumes = ["/srv/minecraft/:/data"];
-
- podman.sdnotify = "conmon"; # avoid nasty errors about healthcheck (idk, the service runs fine)
+ volumes = ["/var/lib/minecraft/:/data"];
};
}
diff --git a/hosts/ganymede/nixos.nix b/hosts/ganymede/nixos.nix
index 863032f..9dc6dec 100644
--- a/hosts/ganymede/nixos.nix
+++ b/hosts/ganymede/nixos.nix
@@ -1,8 +1,15 @@
-{inputs, ...}: {
+{
+ config,
+ inputs,
+ ...
+}: {
imports = [
inputs.disko.nixosModules.disko
+ inputs.tsnsrv.nixosModules.default
./disks.nix
+ ./minecraft.nix
+
./iwlwifi.nix
./caddy.nix
];
@@ -15,6 +22,6 @@
networkConfig.DHCP = "yes";
};
- nixpkgs.hostPlatform = "x86_64-linux";
- system.stateVersion = "25.05";
+ # i broke something and this fixes it
+ environment.etc."systemd/resolved.conf.d/10-dns.conf".text = config.environment.etc."systemd/resolved.conf".text;
}
diff --git a/hosts/ganymede/tsnsrv-authkey.age b/hosts/ganymede/tsnsrv-authkey.age
new file mode 100644
index 0000000..d0e6eb1
--- /dev/null
+++ b/hosts/ganymede/tsnsrv-authkey.age
@@ -0,0 +1,7 @@
+age-encryption.org/v1
+-> ssh-ed25519 Jg4yWQ NYO6CUksU6appmdib7CER3YYbcKoyn0wmB4YGTCeTE0
+tizx14UdvQftYrkDa3iXQYDp6JPWHfjDmFwjr11FBxQ
+-> ssh-ed25519 azBilg 3PYXHVdB2y2Y42ijOiv8LJ9c4WmeB5ivEPcehfS3Wns
+tP/xCHzd31DydF5aCn1tJGudanXLl+DIPod7KFtglXQ
+--- nbch7DRt1CYKBqzE9CeUIJgTMKIUCEA/CXVQZjkywfI
+~}H <42)U{QK3%G^FW3GJy 1 \ No newline at end of file