Initial commit
This commit is contained in:
commit
2776098b8c
|
@ -0,0 +1,54 @@
|
|||
# NixOS configuration for NAS server "chopper"
|
||||
|
||||
This repository is for development of the NixOS configuration of my NAS server.
|
||||
|
||||
## Hardware
|
||||
|
||||
This is intended to run on a RockPro64 with two 40TB HDDs as storage and a 64GB
|
||||
MicroSD card as boot and OS.
|
||||
|
||||
## Goals
|
||||
|
||||
### Zeroth milestone
|
||||
|
||||
- [ ] SSH daemon
|
||||
- [ ] User who can act as a local admin
|
||||
|
||||
### First milestone
|
||||
|
||||
- [ ] ZFS set up on the HDDs
|
||||
- [ ] Plex media server
|
||||
|
||||
### Second milestone
|
||||
|
||||
- [ ] Samba for easy file access from Windows
|
||||
- [ ] NFS for easy file access from Linux
|
||||
|
||||
### Third milestone
|
||||
|
||||
- [ ] Torrent client web control interface available over LAN
|
||||
- [ ] Torrent client downloads over VPN
|
||||
|
||||
## Building
|
||||
|
||||
To build the SD image:
|
||||
|
||||
```bash
|
||||
nix build .#nixosConfigurations.chopper.config.system.build.sdImage
|
||||
```
|
||||
|
||||
Further instructions can be found on these pages:
|
||||
|
||||
[NixOS Wiki/NixOS on ARM/PINE64 RockPro64](https://wiki.nixos.org/wiki/NixOS_on_ARM/PINE64_ROCKPro64)
|
||||
[NixOS Wiki/NixOS on ARM/Installation](https://wiki.nixos.org/wiki/NixOS_on_ARM/Installation)
|
||||
|
||||
## Notes
|
||||
|
||||
### Building boot thing
|
||||
|
||||
```bash
|
||||
nix-build '<nixpkgs/nixos>' -A config.system.build.sdImage -I nixos-config=./sd-image.nix --argstr system aarch64-linux
|
||||
cp result/sd-image/*.zst .
|
||||
nix-shell -p zstd --run "unzstd *.zst"
|
||||
sudo dd if=*.image of=/dev/sda status=progress bs=4096
|
||||
```
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 0,
|
||||
"narHash": "sha256-XD6GfVgSfWjqqWAuybkvaxS1/xrwTrh3V1dSkoYJW3Q=",
|
||||
"path": "/nix/store/jjjyazlmzjls1kdpgn776iy9w345yq7l-source",
|
||||
"type": "path"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
outputs = { self, nixpkgs }: {
|
||||
# miscellaneous stuff that's important
|
||||
nixosModules.base = {lib, ...}: {
|
||||
boot.swraid.enable = lib.mkForce false;
|
||||
networking.hostName = "chopper";
|
||||
networking.firewall.enable = true;
|
||||
system.stateVersion = "24.05";
|
||||
};
|
||||
# Configuration of individual users
|
||||
nixosModules.users = {...}: {
|
||||
users.users.taneb = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIV9ymP4tpq11a8wfUvn8eEEwAPvZZSPZTbASLh7YxOw nvd1234@gmail.com"
|
||||
];
|
||||
hashedPassword = "$y$j9T$MWZj8eSLcR5nrSOCemh.U/$g9PN2cQ78F8aV2ZJP5YU7xYrEZasQ70VmO5DfQLhc90";
|
||||
};
|
||||
users.mutableUsers = false;
|
||||
};
|
||||
# Configuration of SSH server
|
||||
nixosModules.ssh = {...}: {
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
settings.PasswordAuthentication = false;
|
||||
};
|
||||
};
|
||||
nixosConfigurations.chopper = nixpkgs.lib.nixosSystem {
|
||||
system = "aarch64-linux";
|
||||
modules = [
|
||||
(nixpkgs + "/nixos/modules/installer/sd-card/sd-image-aarch64.nix")
|
||||
self.nixosModules.base
|
||||
self.nixosModules.users
|
||||
self.nixosModules.ssh
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue