NixOS + home-manager configs, mirrored from GitLab SaaS.
gitlab.com/andreijiroh-dev/nixops-config
nix-flake
nixos
home-manager
nixpkgs
nix-flakes
1
2{ config, lib, pkgs, ... }:
3
4{
5 imports = [
6 # Include the results of the hardware scan.
7 ./hardware-configuration.nix
8 # Needed to continue SD image initialization after installer removes its own unit.
9 ./sd-image-init.nix
10 ];
11
12 # Use the extlinux boot loader. (NixOS wants to enable GRUB by default)
13 boot.loader.grub.enable = false;
14 # Enables the generation of /boot/extlinux/extlinux.conf
15 boot.loader.generic-extlinux-compatible.enable = true;
16
17 # Enable OpenSSH out of the box.
18 services.sshd.enable = true;
19
20 # Since we are customizing things bts, we'll disabled the default nixos user.
21 users.extraUsers.nixos = {
22 enable = false;
23 };
24
25 users.extraUsers.ajhalili2006 = {
26 description = "~ajhalili2006";
27 openssh.authorizedKeys.keys = [
28 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEXuD3hJwInlcHs3wkXWAWNo8es3bPAd2e8ipjyqgGp2 ajhalili2006@andreijiroh.dev"
29 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDUnTexcVQTGT+UhX8MRPkMvM6FPuskbY2Dn0ScZ3+ot ~ajhalili2006 [passwordless key for sshfs]"
30 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDEYDna7HlVN6FL+Mxaof+WH5EoVmaUrM7GFAdQSveTJ ajhalili2006@crew.recaptime.dev"
31 "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzMlrUe7qMA1P0lP56lq2dKTrwFU6CrVltQ9um+PhOMLkoi31kAlujHtWF6mqGRLXcK0Ao/0Wqug++r82Zu0u7dpAv8LCExtaRRMzagwPkEe4OOqUBOpS6mggfsik8mNA+1UtpkXJ+ZiB4cXtNKEZC0jtxWOTXSV67qgkSxuO+YBWB+7pnESkB0KorqwOoWGGUVfYQtbKUAt6VqM4s6dn7saXqwmN0tCPO6a+4L4mazkYjFD11HhktYsjP9dvnxYSOtMrSFb9JOXRST2LdiIJgwg+HTqBSWGO7aBRHMJaTF3ajlbMtKDQI/EcNQLyGgX6yFdjjzz9DRY+2oU0vPTytdqM2BKsfLlR0GVg7BVL7TZPaLJ1lgpCl4Z1oClW9FOzhnYJVT0W+IKPsnYsFPfv/BVgjWF7YtLdc5zqFJ31PULtikCyd0I6Kt95YD0HdrlR2faWcBHI8KKEAwCCanodGnK/xTOxisTX2dXOxx3mvR/L3Wil2ca5hnD+vt500/o8= gildedguy@andreijiroh"
32 ];
33 };
34
35 # Use a default root SSH login.
36 # services.openssh.permitRootLogin = "yes";
37 # users.users.root.password = "nixos";
38 users.users.root.openssh = {
39 authorizedKeys.keys = [
40 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEXuD3hJwInlcHs3wkXWAWNo8es3bPAd2e8ipjyqgGp2 ajhalili2006@andreijiroh.dev"
41 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDUnTexcVQTGT+UhX8MRPkMvM6FPuskbY2Dn0ScZ3+ot ~ajhalili2006 [passwordless key for sshfs]"
42 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDEYDna7HlVN6FL+Mxaof+WH5EoVmaUrM7GFAdQSveTJ ajhalili2006@crew.recaptime.dev"
43 "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzMlrUe7qMA1P0lP56lq2dKTrwFU6CrVltQ9um+PhOMLkoi31kAlujHtWF6mqGRLXcK0Ao/0Wqug++r82Zu0u7dpAv8LCExtaRRMzagwPkEe4OOqUBOpS6mggfsik8mNA+1UtpkXJ+ZiB4cXtNKEZC0jtxWOTXSV67qgkSxuO+YBWB+7pnESkB0KorqwOoWGGUVfYQtbKUAt6VqM4s6dn7saXqwmN0tCPO6a+4L4mazkYjFD11HhktYsjP9dvnxYSOtMrSFb9JOXRST2LdiIJgwg+HTqBSWGO7aBRHMJaTF3ajlbMtKDQI/EcNQLyGgX6yFdjjzz9DRY+2oU0vPTytdqM2BKsfLlR0GVg7BVL7TZPaLJ1lgpCl4Z1oClW9FOzhnYJVT0W+IKPsnYsFPfv/BVgjWF7YtLdc5zqFJ31PULtikCyd0I6Kt95YD0HdrlR2faWcBHI8KKEAwCCanodGnK/xTOxisTX2dXOxx3mvR/L3Wil2ca5hnD+vt500/o8= gildedguy@andreijiroh"
44 ];
45 };
46
47 # Wireless networking (1). You might want to enable this if your Pi is not attached via Ethernet.
48 networking.wireless = {
49 enable = true;
50 interfaces = [ "wlan0" ];
51 networks = {
52 "UnattendedNixosSetup_2.4G" = {
53 psk = "82a240704f00a476a28dc53b";
54 hidden = true;
55 };
56 "UnattendedNixosSetup_5G" = {
57 psk = "82a240704f00a476a28dc53b";
58 hidden = true;
59 };
60 };
61 allowAuxiliaryImperativeNetworks = true;
62 };
63
64 # Wireless networking (2). Enables `wpa_supplicant` on boot.
65 systemd.services.wpa_supplicant.wantedBy = lib.mkOverride 10 [ "default.target" ];
66
67 # The global useDHCP flag is deprecated, therefore explicitly set to false here.
68 # Per-interface useDHCP will be mandatory in the future, so this generated config
69 # replicates the default behaviour.
70 networking.useDHCP = false;
71 networking.interfaces.eth0.useDHCP = true;
72 networking.interfaces.wlan0.useDHCP = true;
73
74 # NTP time sync.
75 services.timesyncd.enable = true;
76
77 # This value determines the NixOS release from which the default
78 # settings for stateful data, like file locations and database versions
79 # on your system were taken. It‘s perfectly fine and recommended to leave
80 # this value at the release version of the first install of this system.
81 # Before changing this value read the documentation for this option
82 # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
83 system.stateVersion = "24.11"; # Did you read the comment?
84
85 # NGINX sample
86 networking.firewall.allowedTCPPorts = [
87 80
88 ];
89}