* feat: wip `nix`
Add initial code to be used when working with `nix` and `NixOS`.
* a Nix flake
* building a package
* a NixOS module
* feat: build `hp_agent` with `nix`
* feat: add `hp_agent` as a flake output
* feat: nix: start `headplane` after `headscale`
* feat: do not rely on `git` for versioning
It causes lots of pain when building with `nix` for a local `flake.nix`.
Not sure if it's a good general solution:
* now it requires a manual step of updating `./version` on each release.
* we're losing commit hash abbreviation, like `0.5.3-5-gbe5a291`
I guess, this can be fixed by installing git-pre-commit-hook, but even
then it'd be wrong, because the output of `git describe --tags --always`
won't be the same before and after commit.
* feat: include `hp_agent` to the NixOS module
* fix: version error message
* fix: use relative path imports in `nix`
* fix: NixOS module: generate `/etc/headplane/config.yaml` from `services.headplane.settings`
* fix: NixOS module: allow passing `bool` in `services.headplane.settings.*`
* fix: NixOS module: fix `/etc/headplane/config.yaml` generation
* docs: add Nix/NixOS docs
* feat: nix: read version from `package.json`
* fix: nix: fix `agent` env vars configuration
* feat: nix: add `services.headplane.agent.debug` option
* fix: delete unnecessary `version` file
* fix: nix: remove unnecessary `sed` substitutions
A left over from previous versions.
See: https://github.com/tale/headplane/issues/95#issue-2807487849
* feat: nix: do not hardcode `headplane-agent` configuration environment variables
To make the module more flexible and to reduce the dependency on the
config API.
* docs: improve `Nix` documentation
* Reflect recent changes.
* Link `Nix` in README
* feat: nix: setup Nix CI
* feat: nix: CI without depending on flakehub.com
* chore: begin bundling all deps into the server
* fix: loosen headscale config validation
* fix: navigate back to machines page on node deletion
* fix: slice off trailing slash if present on headscale url
* feat: switch to a central singleton handler
This also adds support for Headscale TLS installations
* fix: shamefully-hoist dependencies
* fix: handle localized number fields
* fix: revert dependency bundling for now
* chore: cleanup and remove from readme for now
---------
Co-authored-by: Aarnav Tale <aarnavtale@icloud.com>
This includes setting a custom redirect URI, handling errors, and using a better library.
As an API decision I've also disabled per session API keys as it clutters up too much.