96 Commits

Author SHA1 Message Date
36c1b18724 acls: refactor editor into React components
Some checks failed
Build / native (push) Has been cancelled
Build / nix (push) Has been cancelled
Automated / flake-inputs (push) Has been cancelled
Extract the ACL editor surface (was 759 lines of mixed Astro/Alpine/HTML
in src/pages/acls.astro) into a focused React component tree under
src/components/acls/:

- ACLEditor.tsx           — top-level state + layout
- RuleEditor.tsx          — per-rule fields and reordering
- SourceSelector.tsx      — source-side identity picker
- DestinationSelector.tsx — destination + port picker
- types.ts                — shared TS shapes
- validation.ts           — pre-submit validation helpers

acls.astro becomes a thin SSR wrapper that mounts <ACLEditor />.

- astro.config.mjs: add @astrojs/react integration
- package.json: pull in @astrojs/react, react@18, react-dom@18, types,
  ip-address + is-cidr (CIDR/IP validation in source/dest editors),
  lucide-react (icons)
- description string: replace escaped 🤠 sequence with the literal char
2026-06-06 15:08:51 -06:00
0b8812d864 fix: pin mime@^1.6.0 via pnpm override
Some checks are pending
Build / native (push) Waiting to run
Build / nix (push) Waiting to run
@astrojs/node 8.3.4 pulls in send@0.19.1, which calls mime.lookup().
mime moved that method to mime.getType() in v3+. With pnpm hoisting,
mime@4 sometimes shadows the transitive mime@1 send expects, and the
server crashes on the first static-asset request with
'TypeError: mime.lookup is not a function'.
2026-06-06 13:11:58 -06:00
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
ae2bd35cbf
chore: update biome to v2 2025-08-19 17:52:26 -04:00
Aarnav Tale
d2c4f5eb2b
feat: completely overhaul the auth model
* Cookies are now encrypted JWTs (GHSA-wrqq-v7qw-r5w7)
* Authentication is stored in the SQLite database (auto-migrated)
* Session logic is much cleaner
2025-08-19 17:52:16 -04:00
Aarnav Tale
a4a037ed68
feat: update to rolldown-vite and typescript-go 2025-08-18 16:42:29 -04:00
Aarnav Tale
17712cbb1c
feat: upgrade react-router + hono-server 2025-08-18 16:05:51 -04:00
Aarnav Tale
361bc493c0
chore: pin vitepress to 2.0.0 and add sponsor link 2025-08-18 13:28:16 -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
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
d809eea564
feat: finalize split debug and distroless container (closes #255) 2025-06-24 11:28:55 -04:00
Aarnav Tale
5a254b746b
docs: enforce node lts 22.16 which has sqlite support unflagged 2025-06-24 10:39:51 -04:00
Aarnav Tale
2bf088b4a9
feat: speed up docker build 2025-06-22 16:59:21 -04:00
Aarnav Tale
71f130ede5
feat: switch to libsql since its esm friendly 2025-06-20 10:36:29 -04:00
Aarnav Tale
b18147fa82
feat: cleanup removal of old ssh plexer and logic
we also have added the necessary logic to auto prune ephemeral nodes because
headscale doesn't seem to automatically remove them. this change made use of a database
which is now stored in the persistent headplane directory.
2025-06-20 00:14:00 -04:00
Aarnav Tale
0f9bf73b82
chore: reorganize go code 2025-06-16 11:45:23 -04:00
Aarnav Tale
ccde3513dc
feat: support resizing and other xterm.js addons 2025-06-16 11:45:00 -04:00
Aarnav Tale
cb32637938
feat: add xterm frontend ui 2025-06-16 11:44:59 -04:00
Aarnav Tale
55eacb59e9
feat: expand frame type to support stdout/stderr chan 2025-06-16 11:44:59 -04:00
Aarnav Tale
7dfcbef774
feat: initial webssh tooling 2025-06-16 11:44:59 -04:00
Aarnav Tale
59525b7b63
feat: upgrade to kubernetes client 1.x 2025-05-29 11:55:30 -04:00
Aarnav Tale
b7009e387b
feat: upgrade to tailwindcss v4 2025-05-29 11:16:47 -04:00
Aarnav Tale
e173376319
chore: update deps 2025-05-29 11:16:47 -04:00
Aarnav Tale
6be55ec686 fix: redirect /admin to /admin/ automatically 2025-05-25 11:02:19 -04:00
Aarnav Tale
c5e6a6c407 feat: switch away from websocket to stdout messaging for agent 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
f2e8c6ae4c
chore: update dep tooling 2025-04-04 16:06:22 -04:00
Aarnav Tale
fe2d7cb57a
chore: v0.5.10 2025-04-03 23:44:19 -04:00
Aarnav Tale
66c7d9a327
chore: v0.5.9 2025-04-03 23:24:13 -04:00
Aarnav Tale
69c6fc4847
chore: v0.5.8 2025-04-03 13:11:33 -04:00
Aarnav Tale
8596a56375
chore: v0.5.7 2025-04-02 14:47:50 -04:00
Aarnav Tale
83a69792ea
chore: v0.5.6 2025-04-02 13:47:45 -04:00
Aarnav Tale
80c987f383
feat: implement onboarding for non-registered users 2025-04-02 13:26:58 -04:00
Aarnav Tale
5918d0e501 fix: allow hostname passthrough for hono node 2025-03-24 16:15:38 -04:00
Aarnav Tale
03acebb23e fix: env variables did not resolve in prod 2025-03-24 16:15:38 -04:00
Aarnav Tale
b0a3f9d5fd chore: update deps 2025-03-24 16:15:38 -04:00
Aarnav Tale
08c25caca3 chore: add deps and include 2025-03-24 16:15:38 -04:00
Aarnav Tale
29424366a8
chore: v0.5.5 2025-03-18 00:46:54 -04:00
Aarnav Tale
8f7a85f47d
chore: v0.5.4 2025-03-18 00:34:49 -04:00
Aarnav Tale
e701e16112
chore: begin bundling all deps into the server 2025-03-17 10:39:38 -04:00
Aarnav Tale
79d83537d5
chore: track semver in package.json 2025-03-11 22:44:23 -04:00
Aarnav Tale
85c31ca5bf
feat: use new config env 2025-02-14 00:04:01 -05:00
Aarnav Tale
76d263b7e6
feat: switch to config file system 2025-02-13 12:35:12 -05:00
Aarnav Tale
2a1c795d46
feat: update to node 22, pnpm 10 2025-02-04 17:25:39 -05:00
Aarnav Tale
d1f6c450c0
feat: remove react-aria-components 2025-02-04 11:42:57 -05:00
Aarnav Tale
0f75636342
feat: add react-scan in dev 2025-01-25 12:51:32 -05:00
Aarnav Tale
8d3f31e7f9
chore: add lefthook for lint staged 2025-01-20 08:26:00 +00:00