diff --git a/flake.lock b/flake.lock
index e15d739..d42abbb 100644
--- a/flake.lock
+++ b/flake.lock
@@ -104,11 +104,11 @@
]
},
"locked": {
- "lastModified": 1689432596,
- "narHash": "sha256-Vixn4nhjeHjGG3o6hDAnSZbXsYMYA5b39+NwAbUPpi0=",
+ "lastModified": 1690982105,
+ "narHash": "sha256-32AzoLuwhtxBItcULRiCnxRfJcbVXbPZSH9TDVg21mU=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "346032240c15d8b6034847dc7a5f53312a5a57fc",
+ "rev": "b2ac1d2c32ac11b8d231d23622cdc4b2f28d07d2",
"type": "github"
},
"original": {
@@ -119,11 +119,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1689282004,
- "narHash": "sha256-VNhuyb10c9SV+3hZOlxwJwzEGytZ31gN9w4nPCnNvdI=",
+ "lastModified": 1690881714,
+ "narHash": "sha256-h/nXluEqdiQHs1oSgkOOWF+j8gcJMWhwnZ9PFabN6q0=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "e74e68449c385db82de3170288a28cd0f608544f",
+ "rev": "9e1960bc196baf6881340d53dccb203a951745a2",
"type": "github"
},
"original": {
@@ -151,11 +151,11 @@
},
"nixpkgs_2": {
"locked": {
- "lastModified": 1690548937,
- "narHash": "sha256-x3ZOPGLvtC0/+iFAg9Kvqm/8hTAIkGjc634SqtgaXTA=",
+ "lastModified": 1690031011,
+ "narHash": "sha256-kzK0P4Smt7CL53YCdZCBbt9uBFFhE0iNvCki20etAf4=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "2a9d660ff0f7ffde9d73be328ee6e6f10ef66b28",
+ "rev": "12303c652b881435065a98729eb7278313041e49",
"type": "github"
},
"original": {
diff --git a/hosts/apps.nix b/hosts/apps.nix
index 0b7d6f0..afeba85 100644
--- a/hosts/apps.nix
+++ b/hosts/apps.nix
@@ -5,8 +5,6 @@
# Command line utilities
wget
neofetch
- pfetch
- fortune
killall
htop
trash-cli # aliased to rm in .bashrc
diff --git a/hosts/configuration.nix b/hosts/configuration.nix
index dbbb6ec..d4096ba 100644
--- a/hosts/configuration.nix
+++ b/hosts/configuration.nix
@@ -7,16 +7,6 @@
options = "--delete-generations 8d";
};
- networking = {
- networkmanager.enable = true;
- resolvconf.enable = false; # prevent default nameservers
- nameservers = [ "1.1.1.1" "1.0.0.1" ];
- extraHosts =
- ''
- 192.168.0.26 elnuhub
- '';
- };
-
time.timeZone = "America/Los_Angeles";
users.users.${user} = {
diff --git a/hosts/default.nix b/hosts/default.nix
index 1378030..670037b 100644
--- a/hosts/default.nix
+++ b/hosts/default.nix
@@ -11,6 +11,9 @@ let
(import ./home.nix)
inputs.nixvim.homeManagerModules.nixvim
];
+ desktopHmImports = hmImports ++ [
+ (import ./home-desktop.nix)
+ ];
hmArgs = { inherit user configDir; };
in
{
@@ -30,7 +33,7 @@ in
useUserPackages = true;
extraSpecialArgs = hmArgs;
users.${user} = {
- imports = hmImports ++ [
+ imports = desktopHmImports ++ [
(import ./desktop/home.nix)
];
};
@@ -59,7 +62,7 @@ in
useUserPackages = true;
extraSpecialArgs = hmArgs;
users.${user} = {
- imports = hmImports ++ [
+ imports = desktopHmImports ++ [
(import ./thinkpads/home.nix)
];
};
@@ -84,7 +87,7 @@ in
useUserPackages = true;
extraSpecialArgs = hmArgs;
users.${user} = {
- imports = hmImports ++ [
+ imports = desktopHmImports ++ [
(import ./thinkpads/home.nix)
];
};
@@ -108,7 +111,7 @@ in
useUserPackages = true;
extraSpecialArgs = { inherit user; };
users.${user} = {
- imports = hmImports ++ [
+ imports = desktopHmImports ++ [
(import ./virtualbox/home.nix)
];
};
@@ -116,4 +119,27 @@ in
}
];
};
+
+ elnudrop = lib.nixosSystem {
+ inherit system;
+ specialArgs = { inherit user; };
+ modules = [
+ ./elnudrop
+ ./configuration.nix
+ {
+ networking.hostName = "elnudrop";
+ }
+ home-manager.nixosModules.home-manager {
+ home-manager = {
+ useUserPackages = true;
+ extraSpecialArgs = { inherit user; };
+ users.${user} = {
+ imports = hmImports ++ [
+ (import ./elnudrop/home.nix)
+ ];
+ };
+ };
+ }
+ ];
+ };
}
diff --git a/hosts/desktop.nix b/hosts/desktop.nix
index 595a38a..9d51130 100644
--- a/hosts/desktop.nix
+++ b/hosts/desktop.nix
@@ -31,6 +31,12 @@ in
gvfs.enable = true; # For Trash
};
+ networking = {
+ networkmanager.enable = true;
+ resolvconf.enable = false; # prevent default nameservers
+ nameservers = [ "1.1.1.1" "1.0.0.1" ];
+ };
+
xdg.portal.enable = true;
environment.systemPackages = with pkgs; [ yubioath-flutter ];
@@ -50,6 +56,11 @@ in
# To prevent `Unit dconf.service not found.` after theming GTK in HM
programs.dconf.enable = true;
+ networking.extraHosts = ''
+ 192.168.0.26 elnuhub
+ 24.199.72.8 elnudrop
+ '';
+
#sound.enable = true;
#hardware.pulseaudio.enable = true;
#nixpkgs.config.pulseaudio = true;
diff --git a/hosts/elnudrop/default.nix b/hosts/elnudrop/default.nix
new file mode 100644
index 0000000..c514b77
--- /dev/null
+++ b/hosts/elnudrop/default.nix
@@ -0,0 +1,48 @@
+{ lib, user, ... }:
+let keys = [
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEQNlGt62dBMojVCX7EUIia+wfSDfLzV4YCPi8SZ2xrp elnu@elnu.com"
+]; in
+{
+ imports = [
+ ./hardware-configuration.nix
+ # Remember to update for new instances
+ ./networking.nix # generated at runtime by nixos-infect
+ ];
+ networking.firewall = {
+ enable = true;
+ allowedTCPPorts = [ 80 443 ];
+ };
+ security.acme = {
+ acceptTerms = true;
+ defaults.email = "elnu@elnu.com";
+ };
+ services.nginx = {
+ enable = true;
+ virtualHosts = {
+ "default" = {
+ default = true;
+ serverName = null;
+ # https://stackoverflow.com/a/42802777
+ locations."/".return = "444";
+ };
+ "jichan.org" = {
+ extraConfig = ''
+ error_page 502 /502.html;
+ '';
+ locations = {
+ "/" = {
+ proxyPass = "http://127.0.0.1:8000";
+ proxyWebsockets = true;
+ };
+ "/502.html".root = "${./hosts/jichan.org}";
+ "/logo.svg".root = "${./hosts/jichan.org}";
+ "/missing.min.css".root = "${./hosts/jichan.org}";
+ };
+ };
+ };
+ };
+ services.do-agent.enable = true;
+ services.openssh.enable = true;
+ users.users.root.openssh.authorizedKeys.keys = keys;
+ users.users.${user}.openssh.authorizedKeys.keys = keys;
+}
\ No newline at end of file
diff --git a/hosts/elnudrop/hardware-configuration.nix b/hosts/elnudrop/hardware-configuration.nix
new file mode 100644
index 0000000..7623409
--- /dev/null
+++ b/hosts/elnudrop/hardware-configuration.nix
@@ -0,0 +1,9 @@
+{ modulesPath, ... }:
+
+{
+ imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
+ boot.loader.grub.device = "/dev/vda";
+ boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi" ];
+ boot.initrd.kernelModules = [ "nvme" ];
+ fileSystems."/" = { device = "/dev/vda1"; fsType = "ext4"; };
+}
\ No newline at end of file
diff --git a/hosts/elnudrop/home.nix b/hosts/elnudrop/home.nix
new file mode 100644
index 0000000..864b919
--- /dev/null
+++ b/hosts/elnudrop/home.nix
@@ -0,0 +1,13 @@
+{ lib, ... }:
+
+{
+ imports = [
+ ../../modules/bash
+ ../../modules/neovim
+ ];
+ # Disable greeter, which is getting run twice somehow
+ programs.bash = with import ../../modules/bash/bashrc.nix; {
+ bashrcExtra = lib.mkForce bashrcExtra;
+ profileExtra = greeter;
+ };
+}
\ No newline at end of file
diff --git a/hosts/elnudrop/hosts/jichan.org/502.html b/hosts/elnudrop/hosts/jichan.org/502.html
new file mode 100644
index 0000000..c1e085e
--- /dev/null
+++ b/hosts/elnudrop/hosts/jichan.org/502.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+ jichan.org is offline
+
+
+
+
+
+ jichan.org is currently offline for maintenance or due to an electrical outage.
+ Thank you for your patience and please check back soon. Sorry for the inconvenience!
+
+
+ 現在、jichan.org はメンテナンスのため、または停電のためオフラインとなっております。
+ しばらくお待ちください。ご迷惑をおかけして申し訳ございません!
+
+ Prolonged outage? Notify me on Discord.
+
+
+
\ No newline at end of file
diff --git a/hosts/elnudrop/hosts/jichan.org/logo.svg b/hosts/elnudrop/hosts/jichan.org/logo.svg
new file mode 100644
index 0000000..9e412b3
--- /dev/null
+++ b/hosts/elnudrop/hosts/jichan.org/logo.svg
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/hosts/elnudrop/hosts/jichan.org/missing.min.css b/hosts/elnudrop/hosts/jichan.org/missing.min.css
new file mode 100644
index 0000000..ff2a1ac
--- /dev/null
+++ b/hosts/elnudrop/hosts/jichan.org/missing.min.css
@@ -0,0 +1,126 @@
+@keyframes bg{0%{background:0 0}}*,::after,::before{box-sizing:border-box;background-repeat:no-repeat}::after,::before{text-decoration:inherit;vertical-align:inherit}:root{cursor:default;overflow-wrap:break-word;-webkit-tap-highlight-color:transparent;text-size-adjust:none;-webkit-text-size-adjust:none}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}audio,canvas,iframe,img,svg,video{vertical-align:middle}svg:not([fill]){fill:currentColor}table{border-collapse:collapse;border-color:currentColor;text-indent:0;font-variant-numeric:tabular-nums;font:inherit}body,button,input,select,textarea{margin:0}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}fieldset{border:1px solid #a0a0a0;position:relative;padding:var(--gap);margin:var(--gap) 0;width:100%;border-radius:var(--border-radius);border:1px solid var(--graphical-fg)}progress{vertical-align:baseline}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button,::-webkit-outer-spin-button{block-size:auto}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[hidden],datalist{display:none!important}:focus-visible{outline:.2em solid var(--accent);z-index:32}body:focus-visible,html:focus-visible,iframe:focus-visible{outline:0}:target{outline:.2em solid var(--fg);z-index:2}details>summary:first-of-type{display:list-item}[aria-busy=true]{cursor:progress}[aria-disabled=true],[disabled]{cursor:not-allowed}:root{--gray-0: #f8fafb;--gray-1: #f2f4f6;--gray-2: #ebedef;--gray-3: #e0e4e5;--gray-4: #d1d6d8;--gray-5: #b1b6b9;--gray-6: #979b9d;--gray-7: #7e8282;--gray-8: #666968;--gray-9: #50514f;--gray-10: #3a3a37;--gray-11: #252521;--gray-12: #121210;--red-0: #fff5f5;--red-1: #ffe3e3;--red-2: #ffc9c9;--red-3: #ffa8a8;--red-4: #ff8787;--red-5: #ff6b6b;--red-6: #fa5252;--red-7: #f03e3e;--red-8: #e03131;--red-9: #c92a2a;--red-10: #b02525;--red-11: #962020;--red-12: #7d1a1a;--pink-0: #fff0f6;--pink-1: #ffdeeb;--pink-2: #fcc2d7;--pink-3: #faa2c1;--pink-4: #f783ac;--pink-5: #f06595;--pink-6: #e64980;--pink-7: #d6336c;--pink-8: #c2255c;--pink-9: #a61e4d;--pink-10: #8c1941;--pink-11: #731536;--pink-12: #59102a;--purple-0: #f8f0fc;--purple-1: #f3d9fa;--purple-2: #eebefa;--purple-3: #e599f7;--purple-4: #da77f2;--purple-5: #cc5de8;--purple-6: #be4bdb;--purple-7: #ae3ec9;--purple-8: #9c36b5;--purple-9: #862e9c;--purple-10: #702682;--purple-11: #5a1e69;--purple-12: #44174f;--violet-0: #f3f0ff;--violet-1: #e5dbff;--violet-2: #d0bfff;--violet-3: #b197fc;--violet-4: #9775fa;--violet-5: #845ef7;--violet-6: #7950f2;--violet-7: #7048e8;--violet-8: #6741d9;--violet-9: #5f3dc4;--violet-10: #5235ab;--violet-11: #462d91;--violet-12: #3a2578;--indigo-0: #edf2ff;--indigo-1: #dbe4ff;--indigo-2: #bac8ff;--indigo-3: #91a7ff;--indigo-4: #748ffc;--indigo-5: #5c7cfa;--indigo-6: #4c6ef5;--indigo-7: #4263eb;--indigo-8: #3b5bdb;--indigo-9: #364fc7;--indigo-10: #2f44ad;--indigo-11: #283a94;--indigo-12: #21307a;--blue-0: #e7f5ff;--blue-1: #d0ebff;--blue-2: #a5d8ff;--blue-3: #74c0fc;--blue-4: #4dabf7;--blue-5: #339af0;--blue-6: #228be6;--blue-7: #1c7ed6;--blue-8: #1971c2;--blue-9: #1864ab;--blue-10: #145591;--blue-11: #114678;--blue-12: #0d375e;--cyan-0: #e3fafc;--cyan-1: #c5f6fa;--cyan-2: #99e9f2;--cyan-3: #66d9e8;--cyan-4: #3bc9db;--cyan-5: #22b8cf;--cyan-6: #15aabf;--cyan-7: #1098ad;--cyan-8: #0c8599;--cyan-9: #0b7285;--cyan-10: #095c6b;--cyan-11: #074652;--cyan-12: #053038;--teal-0: #e6fcf5;--teal-1: #c3fae8;--teal-2: #96f2d7;--teal-3: #63e6be;--teal-4: #38d9a9;--teal-5: #20c997;--teal-6: #12b886;--teal-7: #0ca678;--teal-8: #099268;--teal-9: #087f5b;--teal-10: #066649;--teal-11: #054d37;--teal-12: #033325;--green-0: #ebfbee;--green-1: #d3f9d8;--green-2: #b2f2bb;--green-3: #8ce99a;--green-4: #69db7c;--green-5: #51cf66;--green-6: #40c057;--green-7: #37b24d;--green-8: #2f9e44;--green-9: #2b8a3e;--green-10: #237032;--green-11: #1b5727;--green-12: #133d1b;--lime-0: #f4fce3;--lime-1: #e9fac8;--lime-2: #d8f5a2;--lime-3: #c0eb75;--lime-4: #a9e34b;--lime-5: #94d82d;--lime-6: #82c91e;--lime-7: #74b816;--lime-8: #66a80f;--lime-9: #5c940d;--lime-10: #4c7a0b;--lime-11: #3c6109;--lime-12: #2c4706;--yellow-0: #fff9db;--yellow-1: #fff3bf;--yellow-2: #ffec99;--yellow-3: #ffe066;--yellow-4: #ffd43b;--yellow-5: #fcc419;--yellow-6: #fab005;--yellow-7: #f59f00;--yellow-8: #f08c00;--yellow-9: #e67700;--yellow-10: #b35c00;--yellow-11: #804200;--yellow-12: #663500;--orange-0: #fff4e6;--orange-1: #ffe8cc;--orange-2: #ffd8a8;--orange-3: #ffc078;--orange-4: #ffa94d;--orange-5: #ff922b;--orange-6: #fd7e14;--orange-7: #f76707;--orange-8: #e8590c;--orange-9: #d9480f;--orange-10: #bf400d;--orange-11: #99330b;--orange-12: #802b09;--choco-0: #fff8dc;--choco-1: #fce1bc;--choco-2: #f7ca9e;--choco-3: #f1b280;--choco-4: #e99b62;--choco-5: #df8545;--choco-6: #d46e25;--choco-7: #bd5f1b;--choco-8: #a45117;--choco-9: #8a4513;--choco-10: #703a13;--choco-11: #572f12;--choco-12: #3d210d;--brown-0: #faf4eb;--brown-1: #ede0d1;--brown-2: #e0cab7;--brown-3: #d3b79e;--brown-4: #c5a285;--brown-5: #b78f6d;--brown-6: #a87c56;--brown-7: #956b47;--brown-8: #825b3a;--brown-9: #6f4b2d;--brown-10:#5e3a21;--brown-11:#4e2b15;--brown-12: #422412;--sand-0: #f8fafb;--sand-1: #e6e4dc;--sand-2: #d5cfbd;--sand-3: #c2b9a0;--sand-4: #aea58c;--sand-5: #9a9178;--sand-6: #867c65;--sand-7: #736a53;--sand-8: #5f5746;--sand-9: #4b4639;--sand-10:#38352d;--sand-11:#252521;--sand-12: #121210;--camo-0: #f9fbe7;--camo-1: #e8ed9c;--camo-2: #d2df4e;--camo-3: #c2ce34;--camo-4: #b5bb2e;--camo-5: #a7a827;--camo-6: #999621;--camo-7: #8c851c;--camo-8: #7e7416;--camo-9: #6d6414;--camo-10: #5d5411;--camo-11: #4d460e;--camo-12: #36300a;--jungle-0: #ecfeb0;--jungle-1: #def39a;--jungle-2: #d0e884;--jungle-3: #c2dd6e;--jungle-4: #b5d15b;--jungle-5: #a8c648;--jungle-6: #9bbb36;--jungle-7: #8fb024;--jungle-8: #84a513;--jungle-9: #7a9908;--jungle-10: #658006;--jungle-11: #516605;--jungle-12: #3d4d04}html{font-family:var(--main-font);line-height:var(--rhythm);background:var(--bg);color:var(--fg);scroll-padding-block-start:calc(4*var(--gap))}footer,header,section+section{margin-block:calc(2*var(--gap))}aside.big,nav a{color:var(--accent)}nav a{text-decoration:none}aside h1,aside h2,aside h3,aside h4,aside h5,aside h6{font-size:1em;text-transform:none;letter-spacing:none}aside.big{background:0 0;border:0;-webkit-border-start:1px solid var(--muted-fg);border-inline-start:1px solid var(--muted-fg);border-radius:0;padding:0;-webkit-padding-start:var(--rhythm);padding-inline-start:var(--rhythm);font-style:italic}.\