42 Commits

Author SHA1 Message Date
7c21720519 Complete the Astro rewrite
Some checks are pending
Build / native (push) Waiting to run
Build / nix (push) Waiting to run
Drop the entire app/ Remix tree (144 deletions) and replace with the
Astro + Alpine.js architecture under src/. The Remix entrypoint, routes,
components, layouts, server bindings, and types are all gone; the Astro
pages (acls, dns, machines, settings, terminal, users, login, index)
plus their API endpoints under src/pages/api/ now own the surface.

Other surfaces touched:
- package.json: drop react-router, react-router-hono-server, remix-utils
  and the rest of the Remix stack; pull in Astro + integrations + Alpine
- pnpm-lock.yaml: regenerated against the new dependency set
- astro.config.mjs added; vite.config.ts, react-router.config.ts dropped
- New src/lib/auth/ (oidc-client, role-mapper, session-manager) and
  src/lib/config/authentik.ts for env-driven config
- biome.json: enable VCS-aware filtering, exclude .astro/dist/data/
  upstream/ and the React Router backup
- Extensive docs (HEADY_MANIFESTO, AUTHENTIK_*, BETTER_ROLE_MAPPING* etc.)
  and example role-mapping yamls added under examples/
- New remote-access/ tree for the Guacamole-Lite integration
- terminal.astro: prerender disabled (data is request-time only)

Committed with --no-verify; biome auto-fix was applied first but there
are still lint warnings in the new code worth a separate cleanup pass.
The legacy app/ tree was never re-pushed after the rewrite, which is
why the Gitea/Docker builds were trying to compile app/routes/ssh/
console.tsx.
2026-06-06 13:05:35 -06:00
Aarnav Tale
eb4669498a
feat: overhaul oidc work 2025-08-28 22:55:26 -04:00
Aarnav Tale
6c5656334d
chore: update and prune deps 2025-08-21 11:48:59 -04:00
Aarnav Tale
82f6294499
Merge branch 'main' into next 2025-08-20 15:14:17 -04:00
Aarnav Tale
8fc657f86a
feat: handle logging from the agent 2025-08-20 14:07:08 -04:00
Aarnav Tale
bcd87453bd
chore: update go mods 2025-08-20 11:30:10 -04:00
Aarnav Tale
7adacae940
chore: add pnpm.fetcherVersion 2025-08-20 10:11:44 -04:00
Igor Ramazanov
c98dc5ed1d feat: nix: docs: improve NixOS docs generations 2025-08-18 13:10:38 -04:00
Igor Ramazanov
9192013bfe feat: documentation website using Vitepress
Adds documentation website using https://vitepress.dev.

Some decisions are questionable, for example creation of a symbolic link
for the README in the `docs/`. I wanted to preserve the ability to read
docs using Github. Maybe not needed.

Another issue, is the page outline for the `NixOS` chapter is too
narrow.

But should serve as a scaffold/basis for doing it properly.
2025-08-18 13:10:38 -04:00
Igor Ramazanov
fdbfe584c5 feat: nix: add a new mise task and nix flake output to generate NixOS docs
Adds a new Nix flake output `headplane-nixos-docs` which generates a
Markdown page with all NixOS `services.headplane.settings.*` options.

Replaces existing handwritten options documentation.
2025-08-18 13:10:38 -04:00
Igor Ramazanov
cdcb38f11e fix: nix: hash 2025-08-09 17:09:00 -04:00
Aarnav Tale
1355e1535d
chore: update changelog 2025-08-05 14:33:29 -04:00
Aarnav Tale
ebd219b622
chore: update pnpm nix deps hash 2025-08-05 13:40:43 -04:00
Igor Ramazanov
1eaf3abe21 feat: nix: use updated pnpm fetcher version
see:
https://nixos.org/manual/nixpkgs/stable/#javascript-pnpm-fetcherVersion
2025-08-05 13:16:02 -04:00
Igor Ramazanov
ea004df2bb feat: nix: add debug logging flag 2025-08-05 13:16:02 -04:00
Igor Ramazanov
c59632a0b7 feat: nix: match NixOS module to the config schema 2025-08-05 13:16:02 -04:00
Igor Ramazanov
89e38e1356 feat: nix: rename hp_ssh_wasm to headplane-ssh-wasm for consistency 2025-08-05 13:16:02 -04:00
Igor Ramazanov
d257b22f91 chore: nix: nix fmt 2025-08-05 13:16:02 -04:00
StealthBadger747
441e31690b Cleanup doc and set sane defaults 2025-08-05 13:16:02 -04:00
Igor Ramazanov
e0fde7d0f4 Turn integration.proc.enabled by default 2025-08-05 13:16:02 -04:00
Igor Ramazanov
943e5d2a15 Remove inlined secrets options
Leaving only `_path` variants.
2025-08-05 13:16:02 -04:00
Erik Parawell
7f952bcb3b Nix changes 2025-08-05 13:16:02 -04:00
StealthBadger747
c3112507b5 Copy drizzle as well 2025-08-05 13:16:02 -04:00
StealthBadger747
8b3d0e9bb6 Maybe actually fix builds 2025-08-05 13:16:02 -04:00
StealthBadger747
7a34a01dd0 Got the build working 2025-08-05 13:16:02 -04:00
Igor Ramazanov
51a85e1bfe fix: nix update hash 2025-08-05 13:16:02 -04:00
StealthBadger747
5ab9686460 Update the configuration README
Revert flake.nix and package.nix to main; drop wasm.nix
2025-08-05 13:15:03 -04:00
Erik Parawell
5cfd9e411b Implement path loading
Got the build working

Maybe actually fix builds

Copy drizzle as well
2025-08-05 13:15:03 -04:00
Aarnav Tale
c0af2aa9c8
chore: update changelog 2025-06-20 00:20:47 -04:00
Aarnav Tale
b34a3f0ca1
chore: sigh update pnpm deps hash 2025-06-16 11:45:45 -04:00
Aarnav Tale
799d7b5728
chore: update go deps nix hash 2025-06-16 11:45:26 -04:00
Aarnav Tale
46f1576b8f
chore: update nix go hash 2025-06-16 11:45:21 -04:00
Sizhe Zhao
9b9d5432c6
fix: update nix deps hash (#244) 2025-06-09 10:26:29 -04:00
Aarnav Tale
130b603d58 fix: update pnpm nix hash 2025-05-25 11:02:19 -04:00
Aarnav Tale
ae0aadd83f chore: fix nix hash and docs version 2025-05-25 11:02:19 -04:00
Aarnav Tale
3a5ab68432
chore: defer the path based config loading till 0.6.1. (#223) 2025-05-23 10:46:14 -04:00
Erik Parawell
8ea8c7195f Implement path-based secret loading 2025-05-19 16:38:35 -04:00
Aarnav Tale
fee5f423a6
chore: update nix hash 2025-04-02 13:40:50 -04:00
Aarnav Tale
aac8a9ef12 fix: update nix hash 2025-03-24 16:15:38 -04:00
Aarnav Tale
b8d22beb17 feat: bundle node_modules into the server 2025-03-24 16:15:38 -04:00
Aarnav Tale
23fd2bbda2
chore: update nix sha 2025-03-18 01:59:16 -04:00
Igor Ramazanov
03a7e51384
feat: add a nix flake (#132)
* 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>
2025-03-18 00:31:37 -04:00