Move Tailscale, Semaphore, and Gitea to their own top-level pages

Same move as Docker: each was buried inside the generic Integrations
browsing view, sharing one "pick any integration" dropdown across six
unrelated types. Give them dedicated pages instead.

New web/src/pages/{Tailscale,Semaphore,Gitea}.tsx each reuse the
existing, unchanged API routes and adapters (no server changes) with
their own integration picker scoped to just that type. Added matching
nav items (Tailscale, Semaphore, Gitea, right after Docker) and routes.

Removed the corresponding state/handlers/tables from Integrations.tsx
entirely (374 lines). Adding, editing, enabling/disabling, and
deleting each credential itself still happens under Integrations ->
Manage integrations, same as Proxmox and Synology, which stay on the
Integrations page. Selecting one of these three types in Integrations'
generic browsing dropdown now points to its new page instead of
rendering a table there too.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
bobbanandClaude Sonnet 5 committed 2026-09-16 00:09:02 +02:00
1 parent 35afcc4a37
commit 8fef68c27a
7 files changed
+646 -382

No files matched your search

+19 -14
View File
@@ -34,20 +34,25 @@ All modules from the original plan are built:
Proxmox for VM/LXC-backed servers, or from the agent's own hardware
report for everything else. Proxmox-linked servers also get
start/stop/restart buttons right on the detail page.
- **Integrations → Tailscale** — device list with online/authorized status,
and authorize/deauthorize/remove actions; a live device-count widget.
- **Integrations → Gitea** — repo list with each repo's last CI run status,
and re-running just the failed jobs in a run; a live repo-count widget
(with a failing-build warning).
- **Docker** (its own top-level page, backed by the Dockhand
integration) — container status across every Docker host Dockhand
manages (one credential covers all of them), with start/stop/restart
actions and a live running/total widget. Add/edit/remove the
Dockhand credential itself under Integrations → Manage integrations
as with every other integration.
- **Integrations → Semaphore** — Ansible run status per template across
every project, with a "Run" action to trigger a template; a live
template-count widget (with a last-failed warning).
- **Tailscale**, **Semaphore**, **Gitea**, and **Docker** each get their
own top-level page (backed by the matching integration) instead of
living inside a shared Integrations browsing view:
- **Tailscale** — device list with online/authorized status, and
authorize/deauthorize/remove actions; a live device-count widget.
- **Semaphore** — Ansible run status per template across every
project, with a "Run" action to trigger a template; a live
template-count widget (with a last-failed warning).
- **Gitea** — repo list with each repo's last CI run status, and
re-running just the failed jobs in a run; a live repo-count widget
(with a failing-build warning).
- **Docker** — container status across every Docker host Dockhand
manages (one credential covers all of them), with
start/stop/restart actions, a host filter, and a live
running/total widget.
Add/edit/enable/disable/remove each integration's credential itself
under Integrations → Manage integrations, same as Proxmox and
Synology (which stay on the Integrations page).
- **Integrations → Proxmox** — VM/LXC status across every node in the
cluster, with start/stop/restart actions; a live running/total widget.
Supports self-signed certificates (common in homelab Proxmox setups).