loptland: babysteps
This commit is contained in:
parent
ef703ecbcf
commit
592faafe86
6 changed files with 202 additions and 7 deletions
|
|
@ -28,7 +28,8 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
config = lib.mkIf osConfig.programs.niri.enable {
|
|
||||||
|
config = lib.mkIf (osConfig.networking.hostName == "yggdrasil") {
|
||||||
programs.niri.settings = {
|
programs.niri.settings = {
|
||||||
input = {
|
input = {
|
||||||
keyboard = {
|
keyboard = {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,69 @@
|
||||||
let
|
let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
flake.modules.nixos."hosts/loptland" = {
|
flake.modules.nixos."hosts/loptland" =
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
sopsFile = ../../../secrets/secrets-loptland.yaml;
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
services.qemuGuest.enable = true;
|
||||||
|
|
||||||
|
imports =
|
||||||
|
with config.flake.modules.nixos;
|
||||||
|
[
|
||||||
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
|
inputs.catppuccin.nixosModules.catppuccin
|
||||||
|
|
||||||
|
# System modules
|
||||||
|
base
|
||||||
|
server
|
||||||
|
dev
|
||||||
|
|
||||||
|
# apps
|
||||||
|
|
||||||
|
# Users
|
||||||
|
cholli
|
||||||
|
]
|
||||||
|
++ [
|
||||||
|
{
|
||||||
|
home-manager.users.cholli = {
|
||||||
|
imports = with config.flake.modules.homeManager; [
|
||||||
|
inputs.catppuccin.homeModules.catppuccin
|
||||||
|
|
||||||
|
# components
|
||||||
|
base
|
||||||
|
dev
|
||||||
|
|
||||||
|
# Activate all user based config
|
||||||
|
cholli
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
sops = {
|
||||||
|
secrets = {
|
||||||
|
"forgejo/db/password" = {
|
||||||
|
inherit sopsFile;
|
||||||
|
};
|
||||||
|
"forgejo/mail/password" = {
|
||||||
|
inherit sopsFile;
|
||||||
|
};
|
||||||
|
"forgejo/mail/passwordHash" = {
|
||||||
|
inherit sopsFile;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
55
modules/hosts/loptland/hardware.nix
Normal file
55
modules/hosts/loptland/hardware.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
in
|
||||||
|
{
|
||||||
|
flake.modules.nixos."hosts/loptland" =
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
boot = {
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [
|
||||||
|
"ata_piix"
|
||||||
|
"uhci_hcd"
|
||||||
|
"virtio_pci"
|
||||||
|
"sr_mod"
|
||||||
|
"virtio_blk"
|
||||||
|
];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-uuid/26b098dd-0a15-49c5-9998-75f43d17eb26";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/30AB-7309";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [
|
||||||
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ { device = "/dev/disk/by-uuid/b9bcb425-cb1c-40a1-89bb-d7fe6b421834"; } ];
|
||||||
|
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
76
modules/hosts/loptland/nginx.nix
Normal file
76
modules/hosts/loptland/nginx.nix
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
{
|
||||||
|
flake.modules.nixos."hosts/loptland" =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
domainName = "christophhollizeck.dev";
|
||||||
|
forgejoPort = 3000;
|
||||||
|
hydraPort = 2000;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
recommendedProxySettings = true;
|
||||||
|
|
||||||
|
virtualHosts = {
|
||||||
|
"git.${domainName}" = {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = domainName;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
extraConfig = ''
|
||||||
|
client_max_body_size 200M;
|
||||||
|
'';
|
||||||
|
proxyPass = "http://localhost:${toString forgejoPort}/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"hydra.${domainName}" = lib.mkIf config.services.hydra.enable {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = domainName;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://localhost:${toString hydraPort}/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"ha.${domainName}" = {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = domainName;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
# tailscale ip
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
'';
|
||||||
|
proxyPass = "http://100.86.23.74:8123";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"nixcache.${domainName}" = lib.mkIf config.services.nix-serve.enable {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = domainName;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"_" = {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = domainName;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "https://${domainName}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
topLevel: {
|
||||||
flake.modules.nixos.server =
|
flake.modules.nixos.server =
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
|
@ -41,10 +41,10 @@
|
||||||
security.acme = {
|
security.acme = {
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
defaults = {
|
defaults = {
|
||||||
inherit (config.flake.meta.users.cholli) email;
|
inherit (topLevel.config.flake.meta.users.cholli) email;
|
||||||
|
|
||||||
group = lib.optional config.services.nginx.enable "nginx";
|
group = lib.mkIf config.services.nginx.enable "nginx";
|
||||||
reloadServices = lib.optional config.services.nginx.enable "nginx.service";
|
reloadServices = lib.mkIf config.services.nginx.enable "nginx.service";
|
||||||
|
|
||||||
dnsProvider = "netcup";
|
dnsProvider = "netcup";
|
||||||
environmentFile = config.sops.templates."netcup.env".path;
|
environmentFile = config.sops.templates."netcup.env".path;
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
authorizedKeys = [
|
authorizedKeys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHFrDiO5+vMfD5MimkzN32iw3MnSMLZ0mHvOrHVVmLD0"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHFrDiO5+vMfD5MimkzN32iw3MnSMLZ0mHvOrHVVmLD0"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII4Pr7p0jizrvIl0UhcvrmL5SHRQQQWIcHLAnRFyUZS6"
|
||||||
];
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue