POST /templates/test-db-connection - validates MySQL connection
- Required: host, user, password, database
- Optional: port (default 3306)
- Returns success/error with detailed message
- Includes warning if pymysql not available
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add validate_mysql_connection() method to TemplateService
- Check port connectivity first, then full MySQL connection if pymysql available
- Falls back to port-only check if pymysql not installed
- Integrate validation into install_template() for wordpress-external-db
- Return clear error messages if database is unreachable
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add wordpress-external-db to templates registry with:
- Categories: cms, blog, website, development
- Description highlighting dev/prod support
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New template for WordPress with external database support:
- No bundled MySQL container
- Configurable DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD
- TABLE_PREFIX for multiple WordPress instances on same database
- Ideal for dev/prod environment sharing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tasks:
1. Create wordpress-external-db.yaml template
2. Register template in index.json
3. Add database connection validation to template_service.py
4. Add test-db-connection API endpoint
5. Add frontend API method
Enables WordPress with external DB for prod/dev sharing.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Introduces a detailed plan for Phase 9 improvements to the FileManager disk usage UI, including backend directory analysis, multi-mount support, directory and file type breakdowns, largest files listing, sidebar layout, icon updates, and responsive adjustments. Also updates frontend build output files.
- Add Phase 14 SUMMARY.md with implementation details
- Update STATE.md to mark Phase 14 completed
- Update ROADMAP.md phase status
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add dismissible "Star on GitHub" card in About section
- Shows for new users, remembers dismissal in localStorage
- Accent-colored design with star icon
- Links to github.com/jhd3197/ServerKit
- Mobile responsive layout
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add GitHub icon link between nav and user profile
- Lucide Github icon with hover effect
- Links to github.com/jhd3197/ServerKit
- Matches sidebar aesthetic with accent color on hover
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Backend:
- Add /system/check-update endpoint
- Fetch latest release from GitHub API
- Compare versions and return update_available flag
- Cache results for 1 hour to respect rate limits
Frontend:
- Add checkUpdate() API method
- Add "Check for Updates" button in About section
- Show update available notification with release link
- Show "You're up to date" when current
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix GitHub URL to github.com/jhd3197/ServerKit
- Add Documentation link to README
- Add Support & Issues link
- Add Discussions link
- Add Report a Bug link
- Replace inline SVGs with Lucide icons
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tasks:
1. Update About section links (fix GitHub URL, add docs/support)
2. Add version update check (GitHub releases API)
3. Add GitHub link to sidebar
4. Add Star on GitHub prompt for new users
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Archive milestone to .planning/milestones/v1.0-ROADMAP.md
- Collapse ROADMAP.md to one-line summary with link
- Update PROJECT.md with current shipped state
- Mark Phase 10 as skipped in STATE.md
Milestone 1 delivered:
- Docker/Domain debugging infrastructure
- Private URL system
- Dashboard historical metrics
- Templates, Applications, FileManager UI polish
109 commits | 94 files | +14,667/-2,836 lines
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Frontend:
- Multi-mount disk usage widget in collapsible sidebar
- Directory analysis panel with horizontal bar charts
- File type breakdown with Recharts PieChart
- Largest files list with click-to-select
- Lucide icons replacing all emoji file icons
- Responsive layout with mobile sidebar slide-in
- localStorage persistence for sidebar/disk states
- API methods: getAllDiskMounts, analyzeDirectory, getFileTypeBreakdown
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add get_all_disk_mounts() using psutil for multi-mount support
- Add analyze_directory_sizes() for directory size analysis
- Add get_file_type_breakdown() for file categorization by type
- Add recursive helpers with depth limits for performance
- New endpoints: /files/disk-mounts, /files/analyze, /files/type-breakdown
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace inline SVGs with Lucide React icons throughout
- Add sorting options: name (A-Z/Z-A), status, type, created date
- Add grid/list view toggle with localStorage persistence
- Add bulk selection with checkboxes and bulk action bar
- Add ConfirmModal component for destructive actions
- Improve status badges with animated pulse for running apps
- Add search filter for applications by name/type
- Enhance app cards with port, domain count, container info
- Add URL param persistence for search and sort filters
- Mobile responsive styles with collapsible toolbar
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Create execution plan with 8 tasks:
- Add Lucide icons to action buttons
- Add sorting options (name, status, type, created)
- Add grid/list view toggle with persistence
- Add bulk selection and actions
- Create confirmation modal for destructive actions
- Improve status indicators with animation
- Add search filter to applications list
- Improve app cards with more info
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>
- 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>
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>
- 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>
- 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>