2025-02-12 13:08:02 +10:00
|
|
|
{
|
|
|
|
|
pkgs,
|
|
|
|
|
inputs,
|
|
|
|
|
lib,
|
|
|
|
|
...
|
|
|
|
|
}: let
|
|
|
|
|
home-manager = builtins.fetchTarball {
|
|
|
|
|
url = "https://github.com/nix-community/home-manager/archive/master.tar.gz";
|
|
|
|
|
sha256 = "19w63qccz78v0spx03911z98w1bvlxvd07hb0ma14a4vdzi4ninj";
|
|
|
|
|
};
|
|
|
|
|
in {
|
2025-02-12 14:33:38 +10:00
|
|
|
# TODO:
|
2025-02-12 13:08:02 +10:00
|
|
|
# - add github:charmbracelet/soft-serve
|
|
|
|
|
# - add forgejo
|
|
|
|
|
|
|
|
|
|
imports = [
|
2025-02-12 14:33:38 +10:00
|
|
|
./hardware-configuration.nix
|
2025-02-12 13:08:02 +10:00
|
|
|
#../modules/server/nginx.nix
|
|
|
|
|
#../modules/server/ssh.nix
|
|
|
|
|
#../modules/server/fail2ban.nix
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
nix.settings.experimental-features = [
|
|
|
|
|
"nix-command"
|
|
|
|
|
"flakes"
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
time.timeZone = "Australia/Brisbane";
|
|
|
|
|
|
|
|
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
|
|
|
|
console = {
|
|
|
|
|
font = "Lat2-Terminus16";
|
|
|
|
|
keyMap = "us";
|
|
|
|
|
};
|
|
|
|
|
|
2025-02-12 14:33:38 +10:00
|
|
|
# colmena deployment configuration
|
|
|
|
|
deployment = {
|
|
|
|
|
targetHost = "imbored.dev";
|
|
|
|
|
targetPort = 22;
|
|
|
|
|
targetUser = "ae";
|
|
|
|
|
buildOnTarget = false; # build locally then deploy
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# super duper minimum grub2 config
|
|
|
|
|
boot.loader.grub = {
|
|
|
|
|
enable = true;
|
|
|
|
|
device = "/dev/vda";
|
2025-02-12 13:08:02 +10:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
networking = {
|
2025-02-12 14:33:38 +10:00
|
|
|
hostName = "hyrule";
|
2025-02-12 13:08:02 +10:00
|
|
|
networkmanager.enable = true;
|
2025-02-12 14:33:38 +10:00
|
|
|
|
|
|
|
|
firewall = {
|
|
|
|
|
enable = true;
|
|
|
|
|
allowedTCPPorts = [
|
|
|
|
|
22 # sshd
|
|
|
|
|
80 # nginx
|
|
|
|
|
443 # nginx
|
|
|
|
|
];
|
|
|
|
|
};
|
2025-02-12 13:08:02 +10:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
users = {
|
|
|
|
|
defaultUserShell = pkgs.bash;
|
|
|
|
|
|
|
|
|
|
users = {
|
|
|
|
|
# primary user
|
2025-02-12 14:33:38 +10:00
|
|
|
ae = {
|
2025-02-12 13:08:02 +10:00
|
|
|
isNormalUser = true;
|
|
|
|
|
extraGroups = ["wheel"];
|
|
|
|
|
shell = pkgs.bash;
|
2025-02-12 14:33:38 +10:00
|
|
|
home = "/home/ae"; # TEMP: remove and replace with home-manager
|
2025-02-12 13:08:02 +10:00
|
|
|
packages = with pkgs; [
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# user for friends to ssh into
|
|
|
|
|
friends = {
|
|
|
|
|
isNormalUser = true;
|
|
|
|
|
shell = pkgs.bash;
|
2025-02-12 14:33:38 +10:00
|
|
|
home = "/home/friends"; # TEMP: remove and replace with home-manager
|
2025-02-12 13:08:02 +10:00
|
|
|
packages = with pkgs; [
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2025-02-12 14:33:38 +10:00
|
|
|
services = {
|
|
|
|
|
# simple nginx instance to host static construction page
|
|
|
|
|
nginx = {
|
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
|
|
# package = pkgs.nginxStable.override { openssl = pkgs.libressl; };
|
|
|
|
|
|
|
|
|
|
#virtualHosts."imbored.dev".locations."/" = {
|
|
|
|
|
virtualHosts."imbored.dev" = {
|
|
|
|
|
addSSL = true;
|
|
|
|
|
enableACME = true;
|
|
|
|
|
root = "/var/www/imbored";
|
|
|
|
|
#index = "index.html";
|
|
|
|
|
#root = pkgs.writeTextDir "index.html" ''
|
|
|
|
|
# <html>
|
|
|
|
|
# <body>
|
|
|
|
|
# Give me your mittens!
|
|
|
|
|
# </body>
|
|
|
|
|
# </html>
|
|
|
|
|
#'';
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# quick and dirty way temporary way accessing my server
|
|
|
|
|
openssh = {
|
|
|
|
|
enable = true;
|
|
|
|
|
ports = [22];
|
|
|
|
|
settings = {
|
|
|
|
|
PasswordAuthentication = true;
|
|
|
|
|
PermitRootLogin = "no";
|
|
|
|
|
AllowUsers = ["ae"]; # allow all users by default
|
|
|
|
|
UseDns = true;
|
|
|
|
|
X11Forwarding = false;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
# accept Lets Encrypt's security policy (for nginx)
|
|
|
|
|
security.acme = {
|
|
|
|
|
acceptTerms = true;
|
|
|
|
|
defaults.email = "eclarkboman@gmail.com";
|
|
|
|
|
};
|
|
|
|
|
|
2025-02-12 13:08:02 +10:00
|
|
|
#home-manager = {
|
|
|
|
|
# users = {
|
|
|
|
|
# dev = import ../../homes/dev;
|
|
|
|
|
# friends = import ../../homes/friends;
|
|
|
|
|
# };
|
|
|
|
|
#};
|
|
|
|
|
|
2025-02-12 14:33:38 +10:00
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
|
vim
|
|
|
|
|
helix
|
2025-02-12 13:08:02 +10:00
|
|
|
];
|
|
|
|
|
|
|
|
|
|
programs = {
|
|
|
|
|
};
|
2025-02-12 14:33:38 +10:00
|
|
|
|
|
|
|
|
system.stateVersion = "24.11"; # DO NOT MODIFY
|
2025-02-12 13:08:02 +10:00
|
|
|
}
|