Introduces a Site Settings tab in the Settings page for admins to toggle user registration. Adds dynamic page title updates based on route, updates the favicon and meta tags, and conditionally shows the registration link on the login page based on the registration setting. Also adds a reusable usePageTitle hook.
Replaced usage of @text-* font size variables with @font-size-* equivalents in _downloads.less for consistency with variable naming conventions. Updated index.html asset references to latest build outputs.
Adds API key rotation, IP allowlisting, anomaly detection, and replay protection to the ServerKit agent system. Backend changes include new endpoints, models, and services for security alerts, nonce tracking, and anomaly detection, as well as updates to the server model and agent authentication logic. The agent now supports credential rotation and replay protection via nonces. Frontend updates add UI and API methods for managing allowed IPs, viewing security alerts, and rotating API keys. Documentation and environment setup instructions are included.
Implements remote terminal functionality across agent, backend, and frontend. Adds PTY session management in the agent using creack/pty, new protocol actions, and terminal manager. Backend exposes terminal session APIs and session tracking via TerminalService. Frontend introduces a RemoteTerminal component using xterm.js and related APIs for interactive remote shell access.
Implements backend API endpoints and a new ServerMetricsService for historical metrics, retention policies, aggregation, and multi-server comparison. Updates frontend ApiService with methods for metrics history, aggregation, comparison, retention stats, and cleanup. Updates integration plan to mark monitoring & metrics as complete.
Implements full remote Docker Compose project management, including listing, starting, stopping, restarting, pulling images, and viewing logs for compose projects. Updates the agent, backend API, service layer, frontend UI, and API client to support these operations for both local and remote servers.
Implements backend and frontend support for streaming Docker container logs from remote servers. Adds new API endpoints, agent handler, and UI controls for selecting log line count. Updates documentation to reflect the completed feature.
Introduces a new Downloads page in the frontend for ServerKit agent binaries and installation instructions. Updates navigation, API service, and styles to support direct downloads, quick install commands, manual installation steps, and checksum verification. Marks the UI download page as complete in the integration plan.
Introduces backend models, API endpoints, and services for remote server and agent management, including WebSocket agent gateway, server CRUD, metrics, command history, and remote Docker operations. Updates frontend to support server listing, detail pages, and related UI components and styles.
Implemented backend and frontend support for Fail2ban management, SSH key management, IP allowlist/blocklist, security audit reports, Lynis vulnerability scanning, and automatic security updates. Added new API endpoints and service methods for these features in the backend, and introduced corresponding tabs and UI components in the frontend Security page for comprehensive server security administration.
Moved firewall management UI from its own page into a new tab within the Security page for unified security management. Updated backend firewall service to improve detection of installed firewalls. Adjusted sidebar navigation and routing to remove the standalone Firewall page. Added new styles for the integrated firewall tab and updated roadmap to reflect these changes.
Introduces models and services for managing Git webhooks, deployment history, and Gitea repository interactions. Adds comprehensive API endpoints for webhook CRUD, repository browsing, deployment triggering, rollback, and log retrieval. Updates ROADMAP.md to remove version targets from planned features.
Introduces Nginx configuration for serving Gitea at the /gitea path, including creation and removal logic in NginxService. GitService now manages and reports the slug-based URL path, and the frontend Git page uses and displays the new /gitea path if available, falling back to port-based URLs for backward compatibility.
Introduces backend API endpoints and service logic for installing, managing, and uninstalling a Gitea-based Git server. Adds a new frontend page for Git server management, updates the sidebar and routing, and includes supporting API methods and styles for the new feature.
WorkflowBuilder now fetches and displays database nodes below Docker app nodes, connecting them visually. The main content layout also removes padding and overflow for fullscreen workflow pages to improve the UI.
Added system info API for admin, improved system metrics with cached memory and network I/O stats, and updated frontend dashboard with refresh controls and live/polling status. Workflow builder now supports loading full server infrastructure, adding real apps, and improved node palette. Docker app nodes and config panels display more details for real apps, and styles updated for new UI elements.
Redesigned the README with improved layout, badges, architecture overview, and updated quick start instructions. Added a comprehensive docs/ARCHITECTURE.md file detailing system design, request flow, template system, port allocation, database linking, file paths, and troubleshooting.
Replaces the multi-step CreateAppModal with a simplified template selection modal that navigates to the Templates page for installation. Updates the Templates page to auto-open the install modal when a template is selected via URL parameters, improving the user flow for creating new applications.
Refactors the ApplicationDetail page to use a modern two-column layout, adds custom icons for app types, and introduces a new live resource panel for Docker apps showing CPU and RAM usage. Adds a Routing Diagnostics panel for Docker apps, improves tab navigation, and updates styles for a more consistent UI. Also updates related LESS files for the new layout and visual enhancements.
Port variables in templates are now hidden and always auto-generated, never using user-supplied values. The TemplateService's port assignment checks both database and Docker for used ports, and removes obsolete Docker Compose version fields. Adds new CLI commands for cleaning up all applications, performing a factory reset, and listing applications. Minor update to AuthContext to mark setup as complete after registration.
Removed glow effects and active dot highlights from the metrics graph for a cleaner look. Updated dashboard header to display the actual hostname instead of a static label and removed the host detail line. Adjusted styles to remove unused badge and apply monospace font to the server identity.
Revamps the dashboard page with a new pro layout, including updated metric tiles, a new chart panel, and a spec panel for hardware info and quick actions. The MetricsGraph component now uses CPU, Memory, and Network (replacing Disk) with updated colors and filter legend. Sidebar user profile is restyled, and related LESS styles are updated for the new design.
Introduces backend API endpoints and service methods for retrieving and setting server time and timezone (admin only). Updates the dashboard to display current server time and timezone, and adds a timezone selector to the settings page for admins. Includes supporting API methods and frontend styles for the new UI components.
Added a 'Live' badge to each system metric card (CPU, Memory, Disk, Network) for clarity. Updated percentage values to display with one decimal place and corrected CPU core count to use 'count_logical'.
Introduces clickable filter buttons to toggle CPU, memory, and disk metrics in MetricsGraph, replacing the static legend. Refines app name validation in both backend and frontend for template installation, allowing 2+ character names and improving error handling. WorkflowBuilder now handles missing workflow data gracefully and supports a fullscreen layout. Updates related styles for new filter legend and fullscreen workflow view.
Switches from LineChart to AreaChart for main metrics graph, adds animated gradients and glow effects, and updates legend styling. Tooltip UI is improved with clearer layout, colored dots, and value formatting. Chart colors now use explicit hex values for better SVG compatibility, and LESS styles are updated for improved appearance and interactivity.
- Register ConnectionEdge as custom edge type
- Track selectedEdge state
- onEdgeClick handler
- Delete key/Backspace handler for edge deletion
- Pass onDelete to edge data for delete button
- Store connection metadata (sourceType, targetType)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Extends smoothstep edge with labels
- Shows connection type label (Routes to, Uses DB, etc.)
- Color-coded by connection type
- Selected state with glow effect
- Delete button on selection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Import connection validation utility
- Add isValidConnection callback using rules
- Add onConnectStart/onConnectEnd for error tracking
- Show connection error toast when invalid
- Auto-clear error after 3 seconds
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Sliding panel from right with open/close animation
- Panel header with type-specific border color
- Panel body with form styling
- Port list styles for Docker config
- btn-icon and btn-danger-ghost for remove buttons
- Fixed @shadow-2xl -> @shadow-lg
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Import all config panel components
- Track selectedNode state
- onNodeClick opens appropriate panel
- onPaneClick closes panel
- handleNodeDataChange updates node data in real-time
- renderConfigPanel switches by node type
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Name input
- Service type selector (Redis, Memcached, RabbitMQ, Queue)
- Auto-update port when type changes
- Status selector
- Description textarea
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Domain name input with hint
- SSL status selector (none/valid/expired)
- Conditional SSL expiry date picker
- DNS status selector (pending/propagated)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>