Commit Graph
125 Commits
Author SHA1 Message Date
Juan Denis 5dec8ba81e Add site settings and dynamic page titles
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.
2026-01-22 20:23:33 -05:00
Juan Denis 4025f0256f Add xterm and related addons to dependencies
Added @xterm/xterm, @xterm/addon-fit, and @xterm/addon-web-links to the package-lock.json to support terminal emulation features in the frontend.
2026-01-22 19:29:20 -05:00
Juan Denis 688e2cc5fd Refactor font size variables in downloads styles
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.
2026-01-22 18:47:50 -05:00
Juan Denis bca7e29b57 Implement security features: key rotation, IP allowlist, anomaly detection
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.
2026-01-22 18:11:22 -05:00
Juan Denis fd90e2eead Add full-stack remote terminal/PTY support
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.
2026-01-22 16:44:06 -05:00
Juan Denis 78fee0ada0 Add server historical metrics API and service
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.
2026-01-22 08:51:31 -05:00
Juan Denis 4a34349ed4 Add remote Docker Compose management support
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.
2026-01-22 08:31:27 -05:00
Juan Denis 35deeb8882 Add remote Docker container logs streaming support
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.
2026-01-21 23:23:29 -05:00
Juan Denis 55b7d3704b Add downloads page for ServerKit agent
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.
2026-01-21 23:15:19 -05:00
Juan Denis 009fb12435 Add multi-server management and agent gateway
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.
2026-01-21 22:47:42 -05:00
Juan Denis 39aac19f59 Add advanced security management features
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.
2026-01-21 21:58:59 -05:00
Juan Denis d4b44b582f Integrate firewall management into Security page
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.
2026-01-21 21:44:07 -05:00
Juan Denis 5597521148 Add git webhook and deployment management APIs
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.
2026-01-21 21:31:57 -05:00
Juan Denis 5139fac360 Add Nginx /gitea path support for Gitea and update UI
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.
2026-01-21 20:56:13 -05:00
Juan Denis 2083c00a8b Add info color variables to LESS styles
Introduces @info, @info-bg, and @info-border variables for consistent usage of info colors throughout the application styles.
2026-01-21 20:06:09 -05:00
Juan Denis 39fc113eb7 Add integrated Git server (Gitea) management UI and API
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.
2026-01-21 18:25:50 -05:00
Juan Denis d72dae65ac Add database nodes to WorkflowBuilder canvas
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.
2026-01-19 21:23:21 -05:00
Juan DenisandClaude Opus 4.5 9efbe3f8ac Redesign Applications page with Docker-style layout
- Add stats row with app counts (total, running, stopped, docker)
- Add table view with CPU/RAM resource bars
- Add logs modal for viewing app/container logs
- Reuse Docker page CSS classes for consistent styling
- Add search and filter functionality

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 21:20:49 -05:00
Juan Denis 3b59478b7c Enhance dashboard and workflow with real app support
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.
2026-01-19 20:57:42 -05:00
Juan Denis 26da2c65e8 Revamp README and add architecture documentation
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.
2026-01-19 18:53:13 -05:00
Juan Denis 3020f23d5c Refactor app creation modal to use template selection
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.
2026-01-19 17:46:14 -05:00
Juan Denis abb72e53d3 Redesign ApplicationDetail page with new layout and Docker support
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.
2026-01-19 17:38:42 -05:00
Juan Denis f05d056678 Improve port variable handling and add app cleanup CLI
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.
2026-01-19 16:56:57 -05:00
Juan Denis 22e3b1dca5 Refine metrics graph visuals and dashboard header
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.
2026-01-19 16:22:36 -05:00
Juan Denis 7bf25f67c8 Redesign dashboard layout and metrics graph
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.
2026-01-19 16:13:34 -05:00
Juan Denis 46b6d5e7ad Add server time and timezone management features
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.
2026-01-19 14:06:44 -05:00
Juan Denis 99f1cc13eb Enhance metrics display with live badge and formatting
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'.
2026-01-19 13:51:48 -05:00
Juan Denis 85831b9b54 Add metric filter toggles and improve validation UX
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.
2026-01-19 13:43:46 -05:00
Juan Denis 44f3abe8d2 Enhance metrics graph visuals and tooltip UI
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.
2026-01-19 13:30:50 -05:00
Juan Denis d5cd57921c Update asset references in index.html
Changed script and stylesheet references in index.html to point to new asset files, likely after a new build.
2026-01-19 13:22:26 -05:00
Juan Denis ed390603cc fix: Replace undefined @shadow-xl with @shadow-lg 2026-01-19 13:21:42 -05:00
Juan Denis 643b5d1b14 feat(21-7): Add deployment styles 2026-01-19 12:40:56 -05:00
Juan Denis 6f377957e2 feat(21-5): Create DeploymentProgressModal component 2026-01-19 12:40:02 -05:00
Juan Denis c5fb178a77 feat(21-4): Add deploy button and progress UI 2026-01-19 12:39:33 -05:00
Juan Denis 19643830a9 feat(21-3): Add frontend deploy API method 2026-01-19 12:38:37 -05:00
Juan Denis 617ec1cb6a feat(20-7): Add import existing infrastructure feature 2026-01-19 12:29:28 -05:00
Juan Denis 1d7acf267c feat(20-6): Create WorkflowListModal component 2026-01-19 12:28:44 -05:00
Juan Denis 988aedebcf feat(20-5): Add save/load UI to WorkflowBuilder 2026-01-19 12:27:36 -05:00
Juan Denis 4e2e7ec031 feat(20-4): Add frontend workflow API methods 2026-01-19 12:26:43 -05:00
Juan DenisandClaude Opus 4.5 a1aec5fd4e plan(20): Workflow Save/Load execution plan
7 tasks planned:
- Workflow SQLAlchemy model (nodes, edges as JSON)
- CRUD API endpoints (/api/v1/workflows)
- Blueprint registration
- Frontend API methods
- Save/load UI with toolbar
- WorkflowListModal component
- Import existing infrastructure as nodes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:23:16 -05:00
Juan DenisandClaude Opus 4.5 fd547543d4 feat(19-6): Add connection styles
- Connection error toast with slide animation
- Edge label styles (visible on hover/select)
- Edge delete button styling
- Handle hover scale effect
- Valid/invalid handle highlighting during connect
- Selected edge white stroke effect

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:19:33 -05:00
Juan DenisandClaude Opus 4.5 cf1aa5e45e feat(19-5): Add edge selection and deletion
- 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>
2026-01-19 12:18:43 -05:00
Juan DenisandClaude Opus 4.5 7bad6c19e0 feat(19-4): Create custom ConnectionEdge component
- 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>
2026-01-19 12:17:32 -05:00
Juan DenisandClaude Opus 4.5 992d9cd14c feat(19-2): Wire isValidConnection and add connection feedback
- 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>
2026-01-19 12:17:05 -05:00
Juan DenisandClaude Opus 4.5 8a920fdc97 feat(19-1): Create connection validation utility
- Connection rules matrix defining valid source→target combinations
- isValidConnection() checks node types and handle IDs
- getConnectionError() returns human-readable error messages
- connectionLabels and connectionColors for edge styling
- Prevents self-connections and invalid node type combinations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:16:16 -05:00
Juan DenisandClaude Opus 4.5 d3db4258c9 plan(19): Connection Logic execution plan
6 tasks planned:
- Connection validation utility with rules matrix
- isValidConnection callback in WorkflowBuilder
- Visual feedback for connection attempts
- Custom ConnectionEdge component with labels
- Edge selection and deletion
- Connection styles

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:15:06 -05:00
Juan DenisandClaude Opus 4.5 69b2339e2b feat(18-7): Add configuration panel styles
- 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>
2026-01-19 12:09:40 -05:00
Juan DenisandClaude Opus 4.5 8b39d87a3f feat(18-6): Wire panel to node selection in WorkflowBuilder
- 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>
2026-01-19 12:08:23 -05:00
Juan DenisandClaude Opus 4.5 37ee145a7b feat(18-5): Create ServiceConfigPanel
- 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>
2026-01-19 12:07:41 -05:00
Juan DenisandClaude Opus 4.5 b803a3e638 feat(18-4): Create DomainConfigPanel
- 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>
2026-01-19 12:07:19 -05:00