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.
Expanded the cleanup and factory reset commands to remove orphaned Docker containers, networks, and volumes while preserving ServerKit infrastructure. Improved the list-apps command to optionally display all Docker containers with a new --all flag, and updated documentation and CLI help to reflect these changes.
Added new commands to the ServerKit CLI documentation, including logs, update, list-users, init-db, migrate-db, list-apps, cleanup-apps, and factory-reset. Improved descriptions and reorganized sections for clarity.
Introduces new commands to manage applications and perform database migrations: `cleanup-apps`, `factory-reset`, and `migrate-db`. Updates documentation and help output to reflect these additions, and refactors `list-apps` to use the CLI for consistency.
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.
Introduces a new 'migrate_db' command to the CLI that checks for and adds missing columns to the 'applications' table. This helps keep the database schema up to date without requiring manual intervention or full migrations.
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.
Updated STATE.md to mark the Log Viewer UI phase as 'Planning Complete' and added a detailed execution plan in phases/23-log-viewer-ui/PLAN.md. The plan outlines architecture, tasks, component structure, and success criteria for implementing a real-time container log viewer with ANSI color support and streaming controls.
- Add compose_up() call to start containers after creating docker files
- Update app status to 'running' on successful container start
- Pass database password (DB_PASSWORD) to app environment variables
- Store credentials in created_resources for proper propagation
- Return warning if containers fail to start (app still created)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add subscribe_container_logs event for real-time log streaming
- Add unsubscribe_container_logs event to stop streaming
- Stream logs via docker logs --follow subprocess
- Parse log lines with timestamp and level detection
- Emit container_log events to room logs_{app_id}
- Handle container_log_ended when container stops
- Clean up processes on disconnect or unsubscribe
- Support service selection for compose apps
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add GET /apps/{id}/container-logs with tail, since, timestamps, format params
- Add GET /apps/{id}/containers to list containers for compose apps
- Support 'raw' and 'json' output formats
- Include container state and available services in response
- Cap log lines at 10000 for performance
- Handle service selection for multi-container compose apps
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add stream_container_logs() for real-time log streaming via subprocess
- Add get_app_container_id() to resolve container ID from app model
- Add get_all_app_containers() for compose apps with multiple containers
- Add parse_log_line() to extract timestamp and detect log level
- Add parse_logs_to_lines() for batch parsing
- Add get_container_state() to check if container is running
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.
- GET /workflows - List all workflows for user
- GET /workflows/<id> - Get single workflow
- POST /workflows - Create new workflow
- PUT /workflows/<id> - Update workflow
- DELETE /workflows/<id> - Delete workflow
- JWT authentication and access control
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>