mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-11-02 10:07:29 +09:00
Lets a panel link itself to a master ServerKit panel as a worker WITHOUT installing the standalone Go agent: the panel registers via the master's existing token flow, then runs an embedded agent client (HMAC auth + HTTP long-poll transport) that dispatches agent commands (file:write, docker:compose:up/ps/logs, system:info/metrics) onto its own local services. The master needs zero changes — a linked panel is just another agent-backed Server row with scoped, revocable credentials. - linked_panel_config table (migration 077) + Fernet-encrypted secret - embedded agent client: connect/poll/result loop, heartbeat metrics, per-command threads, allowed-roots guard on file:write - API: GET/POST/DELETE /api/v1/linked-panel (+ startup resume hook) - Servers page: LinkedPanelCard (link form, live status, unlink)
React Dashboard Template
A modern React dashboard application boilerplate built with Vite, featuring routing, charts, and a sidebar layout for building data-driven web interfaces.
Features
- React 18 with functional components and hooks
- Vite for fast development and building
- React Router for client-side routing
- Recharts for data visualization
- Lucide React for icons
- ESLint for code linting
- Responsive sidebar layout
- Dashboard page with sample components
Getting Started
Prerequisites
- Node.js 16+ and npm
Installation
- Clone or download this template
- Install dependencies:
npm install
Development
Start the development server:
npm run dev
The app will be available at http://localhost:41921.
Building for Production
Build the app for deployment:
npm run build
The output will be in the dist/ directory.
Preview Production Build
npm run preview
Project Structure
src/
├── App.jsx # Main app with routing
├── main.jsx # Entry point
├── index.css # Global styles
├── components/
│ └── Sidebar.jsx # Navigation sidebar
├── layouts/
│ └── DashboardLayout.jsx # Main layout wrapper
└── pages/
└── Dashboard.jsx # Main dashboard page
Customization
- Modify components in
src/components/ - Add new pages in
src/pages/ - Update routes in
App.jsx - Customize styles in
index.cssor component files
Environment Variables
Create a .env file in the root for environment variables:
VITE_API_URL=https://api.example.com
Access them in code via import.meta.env.VITE_API_URL.
Contributing
See the documentation files for AI agent permissions and guidelines.