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”<ú3hÉi²1ß|‚G—àjl3õµÉ!§žÞ7r žØ3X³p=Ÿd¿‰`7ü¹�¸1îݻѲh<HØüd…áô¿™…çy”ˆÉÕ;èV”Ëœ÷NÕiGN¦^@`åOnTÆú®yŒq‚ï>FW�½å5/2Ìž?°Êü[”€àHæúZ€ -ý ƒSÉd�:F§ñ�›CÁG’·qõ´ Ë%-³¿–#“W~ˆ÷¤±þWzÅ_ö—X‚×úèªF½„¶)ZùSëò~M—hÅCF!C˜)N*ëÙŸ íª‚²Î
-R \ No newline at end of file
+-> ssh-ed25519 Jg4yWQ t4jtOOcuC4v735Yi4FzdDnvjQFNYVgzMluuH7H3oxx4
+qLKbZ3wA3kk7UXqwUJN2HH+6Wr3qgzINNwLx+dbgsIg
+--- im4dvpbhdvB7fwa8QJ7clFZ+5aVIaXld/gPlhUalc14
+œ>òu൫“4ûBºEÈÐÒCÿÚQ«D:¦�3kú™kÂÑøñK£áÍļc}}}»¯màK)˜HMù3v}Ü£¹IË9ëI“ªkxr±ã1õsñ÷?™Ì"8ÇöÏÑîÔÐ÷÷ÆÐ”Ó>J{�ØÀÊüuaæÿÔ¿Äð«fÏš”ç}ú.Åé3ŠOaÇ9æímÙ2þ- ×@C«0±b å¡Xø›|]Àà: ¨¢äÄùÎ9©¯`€Wœý‡ùëîXÊ1´bÏ×aÙ|ïôW2=«l’]C½wñ Å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{¿±ŽºQK€3%ÖÕýöG^¦­à—õFW3§çGãJº¨ýy É1Ç \ No newline at end of file