Commit Graph
123 Commits
Author SHA1 Message Date
github-actions[bot] 6bc60269de chore: bump version to 1.2.16 [skip ci] 2026-01-19 08:06:41 +00:00
Juan DenisandClaude Opus 4.5 97b6d4b49d fix: Add missing @bg-elevated variable
The variable was used in metrics-graph and templates styles
but not defined in the variables file, causing build failure.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 03:05:54 -05:00
Juan DenisandClaude Opus 4.5 a11962d829 docs(7): Complete Templates Page Polish phase
- Create SUMMARY.md with implementation details
- Update STATE.md marking Phase 7 complete
- Update ROADMAP.md status

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 03:04:22 -05:00
Juan DenisandClaude Opus 4.5 342b660f32 feat(7): Polish templates page with icons, filters, and sorting
- Add Lucide icon mappings for all 60+ templates as fallbacks
- Track failed icon loads and gracefully switch to fallbacks
- Persist filters (category, search, sort) in URL params
- Add active filter chips with remove buttons and "Clear All"
- Add featured badge for curated templates (10 featured)
- Enhanced template cards with version styling, link indicators
- Improved modal with requirements section, section icons
- Add search icon to search input with clear button
- Add results count and sort dropdown (A-Z, Z-A, Featured)
- Responsive styles for mobile

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 03:03:07 -05:00
Juan DenisandClaude Opus 4.5 cb5e4b77b0 Plan Phase 7: Templates Page Polish
Create execution plan with 8 tasks:
- Add Lucide icon mappings as fallback
- Icon error handling with state
- URL param persistence for filters
- Active filter chips with clear button
- Enhanced template cards
- Improved detail modal
- Search icon styling
- Results count and sort options

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 02:58:54 -05:00
github-actions[bot] 53b8808aca chore: bump version to 1.2.15 [skip ci] 2026-01-19 07:56:34 +00:00
Juan Denis 967114428d Merge branch 'main' of https://github.com/jhd3197/ServerKit 2026-01-19 02:56:25 -05:00
Juan DenisandClaude Opus 4.5 453697a2d2 docs: Complete Phase 6 - Dashboard Historical Metrics
- Create Phase 6 SUMMARY.md with implementation details
- Update STATE.md marking Phase 6 complete
- Document API response format and file changes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 02:56:07 -05:00
Juan DenisandClaude Opus 4.5 acbf79abf6 Add styles for MetricsGraph component
- Create _metrics-graph.less with chart card styling
- Support for loading, error, and empty states
- Tooltip styling matching design system
- Summary row for averages display
- Legend and responsive breakpoints

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 02:54:57 -05:00
Juan DenisandClaude Opus 4.5 900ac73b7a Integrate MetricsGraph into Dashboard
Add historical metrics graph component below the real-time metrics
cards on the dashboard for trend visualization.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 02:54:00 -05:00
Juan DenisandClaude Opus 4.5 131757fe07 Add MetricsGraph component for historical metrics
- Create MetricsGraph component with LineChart visualization
- Support multiple time periods (1h, 6h, 24h, 7d, 30d)
- Show CPU, Memory, and Disk trends with averages
- Compact and full display modes
- Add API methods for metrics history endpoints

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 02:53:33 -05:00
Juan DenisandClaude Opus 4.5 189dead603 Add metrics API endpoints and auto-start collection
- Create metrics API blueprint with history, stats, and collection
  control endpoints
- Register blueprint at /api/v1/metrics
- Auto-start background metrics collection on app startup

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 02:51:58 -05:00
Juan Denis d6f0ee9b8f feat(phase6): add MetricsHistoryService for data collection
Service provides metrics recording, querying by period, automatic
aggregation (minute to hour/day), and retention-based cleanup.
2026-01-19 02:50:17 -05:00
Juan Denis 8a54630124 feat(phase6): add MetricsHistory model for historical metrics
SQLite model with aggregation levels (minute/hour/day) for storing
CPU, memory, disk metrics with composite indexes for efficient queries.
2026-01-19 02:49:15 -05:00
github-actions[bot] 7488b60365 chore: bump version to 1.2.14 [skip ci] 2026-01-19 07:48:47 +00:00
Juan Denis 2224d8d37a Merge branch 'main' of https://github.com/jhd3197/ServerKit 2026-01-19 02:48:36 -05:00
Juan Denis e550cd7642 docs(phase6): create Dashboard Historical Metrics plan
9 tasks covering:
- MetricsHistory model with aggregation levels
- Background collection service
- Historical metrics API
- MetricsGraph React component
- Dashboard integration with period selector
2026-01-19 02:47:32 -05:00
Juan Denis aa9af3a29c docs(phase5): complete Private URL System plan
- Created SUMMARY.md with implementation details and commits
- Updated STATE.md to mark phase 5 completed
- Updated ROADMAP.md with success criteria checked
2026-01-19 02:42:04 -05:00
Juan Denis 2bb90cbcc5 feat(phase5): add private URL indicator to applications list
Shows a link icon and 'Private URL' badge when an app has a
private URL enabled.
2026-01-19 02:40:44 -05:00
Juan Denis 17babbc1d8 feat(phase5): integrate PrivateURLSection into app detail
Add PrivateURLSection component to OverviewTab for Docker apps
with port configuration.
2026-01-19 02:40:17 -05:00
Juan Denis f090f2bfe0 feat(phase5): add PrivateURLSection frontend component
React component for managing private URLs with enable/disable,
custom slug input, regenerate, and copy to clipboard. Includes
API methods and LESS styles.
2026-01-19 02:39:01 -05:00
Juan Denis 48534dc5ea feat(phase5): register private URLs API blueprint
Register private_urls_bp for /api/v1/apps/* private URL endpoints.
2026-01-19 02:37:10 -05:00
Juan Denis 9a16753ed8 feat(phase5): add Nginx private URL configuration
Adds methods to generate and manage Nginx configs for private URL
routing via /p/{slug}/ paths with automatic config regeneration.
2026-01-19 02:36:40 -05:00
Juan Denis 85cb72c685 feat(phase5): add private URL API endpoints
Endpoints for enabling, updating, disabling, and regenerating
private URLs. Includes public resolver endpoint for slug lookup.
2026-01-19 02:35:55 -05:00
Juan Denis 5b0af3b27e feat(phase5): add PrivateURLService for slug generation
Provides cryptographically secure slug generation and validation
with support for custom slugs and uniqueness checking.
2026-01-19 02:35:18 -05:00
Juan Denis d40f82ed27 feat(phase5): add private URL fields to Application model
Add private_slug and private_url_enabled fields to support
shareable private URLs for applications.
2026-01-19 02:34:53 -05:00
github-actions[bot] 5c7709b37c chore: bump version to 1.2.13 [skip ci] 2026-01-19 07:24:48 +00:00
Juan Denis fde6da2800 Merge branch 'main' of https://github.com/jhd3197/ServerKit 2026-01-19 02:24:39 -05:00
Juan DenisandClaude Opus 4.5 4d9ad82400 fix(3): handle all docker compose ps output formats
The compose_ps function now handles:
- NDJSON: One JSON object per line (newer docker versions)
- JSON Array: Single line with array of objects
- Warning messages: Skip lines starting with 'time=' or 'WARN'
- Both dict and list parsed results

This fixes 'str' object has no attribute 'get' error when
docker compose outputs warnings before JSON.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 02:22:50 -05:00
Juan DenisandClaude Opus 4.5 8e91970d50 docs(3): add PHP app template testing plan
Phase 3 plan for testing PHP app template:
- Verify template exists and is valid
- Install PHP app via API
- Validate Bug 1 fix (container detection)
- Test PHP execution and Nginx routing
- Document results

Includes validation of Phase 2 NDJSON parsing fix.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 02:05:32 -05:00
github-actions[bot] 3d77a07d63 chore: bump version to 1.2.12 [skip ci] 2026-01-19 07:04:24 +00:00
Juan DenisandClaude Opus 4.5 84576b01b1 docs(2): complete WordPress template testing plan
- SUMMARY.md: Document test results, bugs found and fixed
- STATE.md: Mark Phase 2 complete, update current phase to 3
- ROADMAP.md: Update Phase 2 status to completed

WordPress deployment verified working. Critical NDJSON parsing
bug fixed that affected container detection across the codebase.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:59:49 -05:00
Juan DenisandClaude Opus 4.5 4ba0afee97 fix(2): load .env file in CLI before app initialization
CLI commands failed with "unable to open database file" because
environment variables weren't loaded from .env before create_app().

Now checks multiple .env locations:
- Same directory as cli.py
- Parent directory
- /opt/serverkit/.env (production)
- /opt/serverkit/backend/.env

Add --debug flag to show which env file was loaded.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:57:39 -05:00
Juan DenisandClaude Opus 4.5 3f9884c055 fix(2): parse NDJSON output from docker compose ps
docker compose ps --format json outputs NDJSON (one JSON object per
line), not a JSON array. Parse each line separately to correctly
detect running containers.

This fixes container detection in app status and diagnostics.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:56:43 -05:00
github-actions[bot] 5b0e665f12 chore: bump version to 1.2.11 [skip ci] 2026-01-19 06:22:05 +00:00
Juan Denis a4323b1cbc Enhance README with server kit image
Added an image to the README for visual enhancement.
2026-01-19 01:21:58 -05:00
github-actions[bot] 547c991f89 chore: bump version to 1.2.10 [skip ci] 2026-01-19 06:18:20 +00:00
Juan DenisandClaude Opus 4.5 910967f0e8 docs(2): add WordPress template testing plan
Phase 2 plan for testing WordPress template end-to-end:
- Verify template exists and is valid
- Install WordPress via API
- Verify container and database status
- Test Nginx routing and domain access
- Access WordPress installation wizard
- Document results and issues

Uses Phase 1 diagnostic tools for troubleshooting.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:15:22 -05:00
Juan DenisandClaude Opus 4.5 721e8a33f6 docs(1-1): complete Docker & Domain Debugging plan
- SUMMARY.md: Document all changes, commits, and testing checklist
- STATE.md: Mark Phase 1 complete, update current phase to 2
- ROADMAP.md: Update Phase 1 status to completed

Phase 1 delivered diagnostic tools for identifying routing issues
between domains, Nginx, and Docker containers.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:10:10 -05:00
Juan DenisandClaude Opus 4.5 eeec611fc4 chore(1-1): add routing test script
Shell script to test the full Docker app routing chain:
- Port accessibility check
- Nginx config existence and enablement
- Nginx syntax validation
- Service status check
- Direct backend HTTP request
- Domain routing via Host header
- Docker container status and port bindings

Provides colored output and actionable hints for failures.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:08:59 -05:00
Juan DenisandClaude Opus 4.5 9a072fb4b9 feat(1-1): add routing diagnostics UI to application detail
- Show port accessibility status in overview
- Add RoutingDiagnosticsCard component for Docker apps
- Run full diagnostics with health checks
- Display Nginx config status, Docker status, issues and recommendations
- Show Nginx config content for debugging
- Add corresponding LESS styles

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:08:12 -05:00
Juan DenisandClaude Opus 4.5 47acb0914c feat(1-1): add port accessibility to app status endpoint
GET /api/v1/apps/{id}/status now returns:
- port: The configured port number
- port_accessible: Boolean indicating if the port is reachable

Helps frontend display real-time routing health status.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:06:37 -05:00
Juan DenisandClaude Opus 4.5 5ac5a85e90 feat(1-1): verify port accessibility after template installation
- Wait for containers to start after docker compose up
- Check if configured port is accessible
- Include port status in installation response
- Log warning if port not accessible (may need more startup time)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:06:11 -05:00
Juan DenisandClaude Opus 4.5 1a2c39065c fix(1-1): validate port configuration on domain creation
- Require Docker apps to have a port configured before adding domains
- Check port accessibility and include warning if port not reachable
- Provides actionable error messages with hints for resolution

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:05:33 -05:00
Juan DenisandClaude Opus 4.5 cb809ee4dd feat(1-1): add routing diagnostic API endpoints
New endpoints for debugging domain/container routing:
- GET /api/v1/domains/debug/diagnose/{app_id}: Full diagnostic report
  with app config, domains, nginx status, docker containers, health
  assessment and actionable recommendations
- POST /api/v1/domains/debug/test-routing/{app_id}: Active routing
  tests to verify traffic flow

Both endpoints require admin access.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:05:05 -05:00
Juan DenisandClaude Opus 4.5 f14af7107e feat(1-1): add Nginx config diagnostics and routing checks
Add diagnostic methods to NginxService:
- get_site_config(): Get config content, enabled status, parsed info
- diagnose_site(): Full diagnostic with health check and recommendations
- check_site_routing(): Test the complete routing chain

Includes automatic health assessment and actionable recommendations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:04:29 -05:00
Juan DenisandClaude Opus 4.5 5182d2326c feat(1-1): add port accessibility and container network diagnostics
Add diagnostic methods to DockerService:
- check_port_accessible(): Test if a port has something listening
- get_container_port_bindings(): Get port mappings for a container
- get_container_network_info(): Get full network settings including IPs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:03:51 -05:00
Juan DenisandClaude Opus 4.5 ba4f4213c9 Add Phase 1 execution plan for Docker & Domain debugging
- Detailed 8-task plan to fix port mapping and domain routing
- Adds diagnostic methods to DockerService and NginxService
- New debug endpoint for full routing diagnosis
- Frontend diagnostic UI for ApplicationDetail page
- Test script for manual verification

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:02:31 -05:00
Juan DenisandClaude Opus 4.5 0e78b56a3a Add comprehensive enhancement roadmap and project plan
- PROJECT.md: Define enhancement goals and success criteria
- ROADMAP.md: 10-phase plan covering Docker debugging, template
  testing, private URLs, and UI polish
- STATE.md: Track progress across all phases
- Replace strategic roadmap with actionable implementation plan

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 00:59:46 -05:00
github-actions[bot] d4148bef4e chore: bump version to 1.2.9 [skip ci] 2026-01-19 05:38:29 +00:00