Compare commits
18
Commits
d6d923f422
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe86dce099 | ||
|
|
270feb3e85 | ||
|
|
90eac24b77 | ||
|
|
072dbfe689 | ||
|
|
35862426ae | ||
|
|
530edccdf5 | ||
|
|
22b8aedee4 | ||
|
|
075b1ff967 | ||
|
|
9fcb0cfad1 | ||
|
|
5e34efac9d | ||
|
|
30f97c74b5 | ||
|
|
2fb3f631d4 | ||
|
|
f8ab913941 | ||
|
|
684cf02eee | ||
|
|
e2a0b0bcde | ||
|
|
eac215ce10 | ||
|
|
e5d0e1dbf0 | ||
|
|
17fd651768 |
@@ -12,16 +12,16 @@ MicroSD card as boot and OS.
|
|||||||
### Zeroth milestone
|
### Zeroth milestone
|
||||||
|
|
||||||
- [X] SSH daemon
|
- [X] SSH daemon
|
||||||
- [ ] User who can act as a local admin
|
- [X] User who can act as a local admin
|
||||||
|
|
||||||
### First milestone
|
### First milestone
|
||||||
|
|
||||||
- [ ] ZFS set up on the HDDs
|
- [X] ZFS set up on the HDDs
|
||||||
- [ ] Plex media server
|
- [X] Plex media server
|
||||||
|
|
||||||
### Second milestone
|
### Second milestone
|
||||||
|
|
||||||
- [ ] Samba for easy file access from Windows
|
- [X] Samba for easy file access from Windows
|
||||||
- [ ] NFS for easy file access from Linux
|
- [ ] NFS for easy file access from Linux
|
||||||
|
|
||||||
### Third milestone
|
### Third milestone
|
||||||
@@ -29,6 +29,14 @@ MicroSD card as boot and OS.
|
|||||||
- [ ] Torrent client web control interface available over LAN
|
- [ ] Torrent client web control interface available over LAN
|
||||||
- [ ] Torrent client downloads over VPN
|
- [ ] Torrent client downloads over VPN
|
||||||
|
|
||||||
|
## Non-declarative things
|
||||||
|
|
||||||
|
You need to add accounts for the `samba`. It doesn't use the Linux passwords.
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo smbpasswd -a $username
|
||||||
|
```
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
To build the SD image:
|
To build the SD image:
|
||||||
@@ -51,6 +59,14 @@ Further instructions can be found on these pages:
|
|||||||
[NixOS Wiki/NixOS on ARM/Installation](https://wiki.nixos.org/wiki/NixOS_on_ARM/Installation)
|
[NixOS Wiki/NixOS on ARM/Installation](https://wiki.nixos.org/wiki/NixOS_on_ARM/Installation)
|
||||||
[Pine64/RockPro64/Installing Arch Linux ARM](https://pine64.org/documentation/ROCKPro64/Software/Installing_Arch_Linux_ARM/)
|
[Pine64/RockPro64/Installing Arch Linux ARM](https://pine64.org/documentation/ROCKPro64/Software/Installing_Arch_Linux_ARM/)
|
||||||
|
|
||||||
|
## Updating
|
||||||
|
|
||||||
|
From `chopper`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo nixos-rebuild switch --flake .
|
||||||
|
```
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
### Building boot thing
|
### Building boot thing
|
||||||
|
|||||||
Generated
+10
-6
@@ -2,14 +2,18 @@
|
|||||||
"nodes": {
|
"nodes": {
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 0,
|
"lastModified": 1726937504,
|
||||||
"narHash": "sha256-XD6GfVgSfWjqqWAuybkvaxS1/xrwTrh3V1dSkoYJW3Q=",
|
"narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=",
|
||||||
"path": "/nix/store/jjjyazlmzjls1kdpgn776iy9w345yq7l-source",
|
"owner": "nixos",
|
||||||
"type": "path"
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9357f4f23713673f310988025d9dc261c20e70c6",
|
||||||
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"owner": "nixos",
|
||||||
"type": "indirect"
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
{
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
};
|
||||||
outputs = { self, nixpkgs }: {
|
outputs = { self, nixpkgs }: {
|
||||||
# miscellaneous stuff that's important
|
# miscellaneous stuff that's important
|
||||||
nixosModules.base = {lib, ...}: {
|
nixosModules.base = {lib, ...}: {
|
||||||
@@ -7,10 +10,14 @@
|
|||||||
networking.firewall.enable = true;
|
networking.firewall.enable = true;
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
sdImage.firmwarePartitionOffset = 32;
|
sdImage.firmwarePartitionOffset = 32;
|
||||||
|
nix.settings = {
|
||||||
|
extra-experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
# Configuration of individual users
|
# Configuration of individual users
|
||||||
nixosModules.users = {...}: {
|
nixosModules.users = {...}: {
|
||||||
users.users.taneb = {
|
users.users = {
|
||||||
|
taneb = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" ];
|
extraGroups = [ "wheel" ];
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
@@ -18,6 +25,11 @@
|
|||||||
];
|
];
|
||||||
hashedPassword = "$y$j9T$9pxQ4Zj7OirGMmgclhUb0/$YCfaYmIaaHRrkqiqdNbQSlJ7puX8bGrMCLavq6Pe1e3";
|
hashedPassword = "$y$j9T$9pxQ4Zj7OirGMmgclhUb0/$YCfaYmIaaHRrkqiqdNbQSlJ7puX8bGrMCLavq6Pe1e3";
|
||||||
};
|
};
|
||||||
|
nairis = {
|
||||||
|
isNormalUser = true;
|
||||||
|
hashedPassword = "$y$j9T$luA6OU3OWVXbJc6DZM4Fx1$nTc89zTdKgozwR5kZQglbWaCkOFtmNZcpO4WCcYYPZC";
|
||||||
|
};
|
||||||
|
};
|
||||||
users.mutableUsers = false;
|
users.mutableUsers = false;
|
||||||
};
|
};
|
||||||
# Configuration of SSH server
|
# Configuration of SSH server
|
||||||
@@ -28,6 +40,50 @@
|
|||||||
settings.PasswordAuthentication = false;
|
settings.PasswordAuthentication = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
nixosModules.zfs = {...}: {
|
||||||
|
boot.supportedFilesystems = [ "zfs" ];
|
||||||
|
boot.zfs.forceImportRoot = false;
|
||||||
|
boot.zfs.extraPools = [ "storage" ];
|
||||||
|
# zfs needs this for some reason
|
||||||
|
networking.hostId = "488ecad2";
|
||||||
|
};
|
||||||
|
nixosModules.plex = {...}: {
|
||||||
|
services.plex = {
|
||||||
|
enable = true;
|
||||||
|
dataDir = "/storage/data";
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
};
|
||||||
|
nixosModules.hledger = {...}: {
|
||||||
|
services.hledger-web = {
|
||||||
|
enable = true;
|
||||||
|
allow = "edit";
|
||||||
|
host = "0.0.0.0";
|
||||||
|
baseUrl = "http://192.168.1.37:5000";
|
||||||
|
};
|
||||||
|
networking.firewall.allowedTCPPorts = [ 5000 ];
|
||||||
|
};
|
||||||
|
nixosModules.samba = {...}: {
|
||||||
|
services.samba = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
settings = {
|
||||||
|
chopper = {
|
||||||
|
path = "/storage/media";
|
||||||
|
browseable = "yes";
|
||||||
|
"read only" = "no";
|
||||||
|
"guest ok" = "no";
|
||||||
|
"inherit permissions" = "yes";
|
||||||
|
"create mask" = "0666";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.samba-wsdd = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
nixosConfigurations.chopper = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.chopper = nixpkgs.lib.nixosSystem {
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
@@ -35,6 +91,10 @@
|
|||||||
self.nixosModules.base
|
self.nixosModules.base
|
||||||
self.nixosModules.users
|
self.nixosModules.users
|
||||||
self.nixosModules.ssh
|
self.nixosModules.ssh
|
||||||
|
self.nixosModules.zfs
|
||||||
|
self.nixosModules.plex
|
||||||
|
self.nixosModules.samba
|
||||||
|
self.nixosModules.hledger
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user