Add NixOS config for cloud-pc
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
description = "Homelab NixOS hosts";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { nixpkgs, ... }: {
|
||||||
|
nixosConfigurations.cloud-pc = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
./hosts/cloud-pc.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../modules/base.nix
|
||||||
|
../modules/docker.nix
|
||||||
|
../modules/firewall.nix
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
networking.hostName = "cloud-pc";
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
virtualisation.libvirtd = {
|
||||||
|
enable = true;
|
||||||
|
qemu = {
|
||||||
|
package = pkgs.qemu_kvm;
|
||||||
|
ovmf.enable = true;
|
||||||
|
ovmf.packages = [
|
||||||
|
pkgs.OVMFFull.fd
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.zerotierone = {
|
||||||
|
enable = true;
|
||||||
|
joinNetworks = [
|
||||||
|
"743993800fa5a34c"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "26.05";
|
||||||
|
}
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
nix.settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
|
||||||
|
time.timeZone = "Europe/Moscow";
|
||||||
|
|
||||||
|
i18n.defaultLocale = "ru_RU.UTF-8";
|
||||||
|
i18n.supportedLocales = [
|
||||||
|
"ru_RU.UTF-8/UTF-8"
|
||||||
|
"en_US.UTF-8/UTF-8"
|
||||||
|
];
|
||||||
|
|
||||||
|
users.users.ada = {
|
||||||
|
isNormalUser = true;
|
||||||
|
shell = pkgs.bashInteractive;
|
||||||
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"docker"
|
||||||
|
"libvirtd"
|
||||||
|
];
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIWNsUQmppB6cQccXX1ZaBbFIcmM6RmghsTVbG9TgoZB ada@ada-x1"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
PasswordAuthentication = false;
|
||||||
|
KbdInteractiveAuthentication = false;
|
||||||
|
PermitRootLogin = "no";
|
||||||
|
PubkeyAuthentication = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
git
|
||||||
|
restic
|
||||||
|
resticprofile
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d /opt/services 0755 ada users - -"
|
||||||
|
"d /opt/data 0755 ada users - -"
|
||||||
|
"d /opt/configs 0755 ada users - -"
|
||||||
|
"d /opt/data/postgres 0755 ada users - -"
|
||||||
|
"d /opt/data/nextcloud 0755 ada users - -"
|
||||||
|
"d /opt/data/gitea 0755 ada users - -"
|
||||||
|
"d /opt/data/gitea-runner 0755 ada users - -"
|
||||||
|
"d /opt/data/syncthing 0755 ada users - -"
|
||||||
|
"d /opt/data/zerotier 0755 ada users - -"
|
||||||
|
"d /opt/configs/nextcloud 0755 ada users - -"
|
||||||
|
"d /opt/configs/nextcloud/app 0755 ada users - -"
|
||||||
|
"d /opt/configs/syncthing 0755 ada users - -"
|
||||||
|
"d /opt/samba 0755 ada users - -"
|
||||||
|
"d /opt/samba/media 0755 ada users - -"
|
||||||
|
"d /opt/samba/documents 0755 ada users - -"
|
||||||
|
"d /opt/samba/backups_win 0755 ada users - -"
|
||||||
|
"d /mnt/backup 0755 ada users - -"
|
||||||
|
"d /mnt/backup/restic 0755 ada users - -"
|
||||||
|
"d /mnt/backup/restic/services 0755 ada users - -"
|
||||||
|
"d /mnt/backup/restic/samba 0755 ada users - -"
|
||||||
|
"d /mnt/backup/devices 0755 ada users - -"
|
||||||
|
"d /mnt/backup/devices/proxmox 0755 ada users - -"
|
||||||
|
"d /mnt/backup/devices/ada-x1 0755 ada users - -"
|
||||||
|
"d /mnt/yandex 0755 ada users - -"
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation.docker = {
|
||||||
|
enable = true;
|
||||||
|
daemon.settings = {
|
||||||
|
registry-mirrors = [
|
||||||
|
"https://mirror.gcr.io"
|
||||||
|
"https://dockerhub.timeweb.cloud"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
docker-compose
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
networking.firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowedTCPPorts = [
|
||||||
|
22
|
||||||
|
139
|
||||||
|
445
|
||||||
|
2222
|
||||||
|
3002
|
||||||
|
4567
|
||||||
|
5432
|
||||||
|
7080
|
||||||
|
8081
|
||||||
|
8384
|
||||||
|
22000
|
||||||
|
];
|
||||||
|
allowedUDPPorts = [
|
||||||
|
137
|
||||||
|
138
|
||||||
|
9993
|
||||||
|
21027
|
||||||
|
22000
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user