README.md: Update to new and improved flake mechanisms #66
34
README.md
34
README.md
|
@ -4,21 +4,16 @@ This is the NixOS configuration for [tlater.net](https://tlater.net/).
|
|||
|
||||
## Testing
|
||||
|
||||
### Building
|
||||
|
||||
Build the VM with:
|
||||
Run a test VM with:
|
||||
|
||||
```
|
||||
nixos-rebuild build-vm --flake '.#vm'
|
||||
nix run
|
||||
```
|
||||
|
||||
### Running
|
||||
|
||||
*Note: M-2 will bring up a console for poweroff and such*
|
||||
|
||||
Running should *mostly* be as simple as running the command the build
|
||||
script echos.
|
||||
|
||||
One caveat: create a larger disk image first. This can be done by
|
||||
running the following in the repository root:
|
||||
|
||||
|
@ -26,31 +21,18 @@ running the following in the repository root:
|
|||
qemu-img create -f qcow2 ./tlaternet.qcow2 20G
|
||||
```
|
||||
|
||||
Everything else should be handled by the devShell.
|
||||
|
||||
### New services
|
||||
|
||||
Whenever a new service is added, append an appropriate
|
||||
`,hostfwd=::3<port>:<port>` to the `QEMU_NET_OPTS` specified in
|
||||
`flake.nix` to bind the service to a host port.
|
||||
Whenever a new service is added, add an appropriate port binding to
|
||||
`qemuNetOpts` in the default app.
|
||||
|
||||
There is no way to test this without binding to the host port, sadly.
|
||||
|
||||
## Deploying
|
||||
|
||||
Currently the deployment process is fully manual because there is no
|
||||
CI system.
|
||||
Deployment is handled using
|
||||
[deploy-rs](https://github.com/serokell/deploy-rs):
|
||||
|
||||
Nix makes this fairly painless, though, it's simply:
|
||||
|
||||
```bash
|
||||
nixos-rebuild switch --use-remote-sudo --target-host tlater.net --build-host localhost --flake .#tlaternet
|
||||
```
|
||||
|
||||
This has the added benefit of running the build on the dev machine,
|
||||
which is 99% of the time much faster at building than the target
|
||||
(though artifact upload may take some time on slow connections).
|
||||
|
||||
Note that this also requires the current local user to also be present
|
||||
on the target host, as well as for this user to be in the target
|
||||
host's wheel group. See `nix.trustedUsers`.
|
||||
deploy .#tlaternet
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue