nix-conf/systems/zap/default.nix
2024-01-30 14:55:47 +01:00

147 lines
3.3 KiB
Nix

{ config, pkgs, lib, modulesPath, ... }:
{
jopejoe1 = {
local.enable = true;
nix.enable = true;
user = {
jopejoe1.enable = true;
root.enable = true;
};
ssh.enable = true;
};
imports =
[
(modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
networking.useDHCP = false;
boot.loader = {
grub = {
enable = true;
device = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0";
};
};
services.nginx.virtualHosts = {
"missing.ninja" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://localhost:8080/";
};
};
"doc.missing.ninja" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://localhost:3000/";
};
};
"rss.missing.ninja" = {
enableACME = true;
forceSSL = true;
};
"db.missing.ninja" = {
enableACME = true;
forceSSL = false;
locations."/" = {
proxyPass = "http://134.255.219.135:8000/";
};
};
};
services.nginx.enable = true;
security.acme = {
acceptTerms = true;
defaults.email = "admin@missing.ninja";
};
services.jitsi-meet = {
enable = true;
hostName = "meet.missing.ninja";
nginx.enable = true;
};
services.cloud-init.enable = true;
services.cloud-init.network.enable = true;
services.rss-bridge.enable = true;
services.rss-bridge.virtualHost = "rss.missing.ninja";
services.rss-bridge.whitelist = [ "*" ];
services.forgejo = {
enable = true;
settings.server = {
HTTP_PORT = 8080;
ROOT_URL = "https://missing.ninja/";
};
lfs.enable = true;
};
networking.firewall = {
enable = true;
allowedTCPPorts = [ 443 8000 ];
allowedUDPPorts = [ 443 8000 ];
};
users.users.fp = {
isNormalUser = true;
initialPassword = "fp";
description = "felix";
openssh.authorizedKeys.keys = [
"ssh.ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMBFp5TEsP0rdhkDpMfuMkCuLrDPoXBVu8EpRyLwuAMs fp@IAP-597"
"ssh-ed25519 AAAAC3NzaC11ZDI1NTE5AAAAIMBFp5TEsPOrdhkDpMfuMkCuLrDP0XBVu8EpRyLWUAMs Fp@IAP-597"
];
};
time.timeZone = "Europe/Berlin";
services.openssh.settings.PermitRootLogin = lib.mkForce "yes";
services.openssh.ports = [ 8081 22 ];
services.hedgedoc = {
enable = true;
settings.domain = "doc.missing.ninja";
settings.host = "localhost";
settings.port = 3000;
settings.protocolUseSSL = true;
};
services.surrealdb.enable = true;
services.surrealdb.host = "134.255.219.135";
console = {
enable = true;
};
disko.devices = {
disk = {
vdb = {
device = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0";
type = "disk";
content = {
type = "table";
format = "msdos";
partitions = [
{
name = "root";
start = "500M";
end = "100%";
part-type = "primary";
bootable = true;
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
}
];
};
};
};
};
}