mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-11-08 21:14:47 +09:00
chore: create Milestone 2 - Multi-Environment WordPress & Community Features
Milestone 2 (v1.1) with 5 phases: - Phase 11: Shared Database WordPress Template - Phase 12: Multi-Environment App Linking - Phase 13: Environment Switching UI - Phase 14: GitHub & Community Links - Phase 15: WordPress Dev Workflow Testing Goals: - Create WordPress template with external DB support - Enable prod/dev environment linking with shared database - Add environment switching UI with theme sync - Add GitHub repository and community resource links Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
208860763f
commit
99291eb13b
2 files changed
+220
-98
No files matched your search
+201
-6
@@ -11,21 +11,216 @@ Completed 2026-01-19 | 9 phases | 109 commits | +14,667/-2,836 lines
|
||||
|
||||
## Current Milestone
|
||||
|
||||
*No active milestone. Run `/gsd:new-milestone` to plan the next version.*
|
||||
> **Milestone 2**: Multi-Environment WordPress & Community Features
|
||||
> **Version**: v1.1
|
||||
> **Started**: 2026-01-19
|
||||
> **Status**: In Progress
|
||||
|
||||
---
|
||||
|
||||
## Phase Overview
|
||||
|
||||
| Phase | Name | Status | Goal |
|
||||
|-------|------|--------|------|
|
||||
| 11 | Shared Database WordPress Template | pending | Create WordPress template with external DB support |
|
||||
| 12 | Multi-Environment App Linking | pending | Link prod/dev apps to share database |
|
||||
| 13 | Environment Switching UI | pending | UI to manage prod/dev environments |
|
||||
| 14 | GitHub & Community Links | pending | Add GitHub link, community resources to app |
|
||||
| 15 | WordPress Dev Workflow Testing | pending | End-to-end testing of the dev workflow |
|
||||
|
||||
---
|
||||
|
||||
## Phase 11: Shared Database WordPress Template
|
||||
**Goal**: Create a WordPress template variant that connects to an external database instead of its own
|
||||
|
||||
### Research Needed
|
||||
- [ ] How WordPress handles external MySQL connections
|
||||
- [ ] Best practices for shared database credentials
|
||||
|
||||
### Tasks
|
||||
1. **Create WordPress-External-DB template**
|
||||
- New template in templates marketplace
|
||||
- Docker Compose without MySQL container
|
||||
- Environment variables for external DB connection (DB_HOST, DB_NAME, DB_USER, DB_PASSWORD)
|
||||
- Documentation for connecting to existing database
|
||||
|
||||
2. **Add database connection validation**
|
||||
- Test database connection on template installation
|
||||
- Show clear error if database is unreachable
|
||||
- Validate WordPress tables exist or can be created
|
||||
|
||||
3. **Add table prefix support**
|
||||
- Allow custom table prefix (e.g., `wp_dev_`, `wp_prod_`)
|
||||
- Enable multiple WordPress instances on same database
|
||||
- Prevent table collision
|
||||
|
||||
### Success Criteria
|
||||
- [ ] WordPress template can connect to external MySQL
|
||||
- [ ] Connection errors shown clearly during install
|
||||
- [ ] Table prefix configurable
|
||||
|
||||
---
|
||||
|
||||
## Phase 12: Multi-Environment App Linking
|
||||
**Goal**: Allow apps to be linked as prod/dev pairs sharing a database
|
||||
|
||||
### Tasks
|
||||
1. **Database schema updates**
|
||||
- Add `linked_app_id` field to Application model
|
||||
- Add `environment_type` field (prod/dev/staging)
|
||||
- Add `shared_resource_config` JSON field for shared resources
|
||||
|
||||
2. **App linking API**
|
||||
- `POST /api/v1/apps/{id}/link` - Link two apps
|
||||
- `GET /api/v1/apps/{id}/linked` - Get linked apps
|
||||
- `DELETE /api/v1/apps/{id}/link` - Unlink apps
|
||||
- Validation: only same-type apps can link
|
||||
|
||||
3. **Shared database configuration**
|
||||
- When linking, propagate database credentials
|
||||
- Auto-configure table prefixes to avoid collision
|
||||
- Show shared resources in app detail
|
||||
|
||||
### Success Criteria
|
||||
- [ ] Apps can be linked as prod/dev pairs
|
||||
- [ ] Linked apps share database credentials automatically
|
||||
- [ ] Table prefixes prevent collision
|
||||
|
||||
---
|
||||
|
||||
## Phase 13: Environment Switching UI
|
||||
**Goal**: UI to manage and switch between prod/dev environments
|
||||
|
||||
### Tasks
|
||||
1. **Environment badge in app list**
|
||||
- Show "PROD" / "DEV" / "STAGING" badge
|
||||
- Color coding (green=prod, blue=dev, yellow=staging)
|
||||
- Filter apps by environment type
|
||||
|
||||
2. **Linked apps section in app detail**
|
||||
- Show linked apps with quick navigation
|
||||
- Environment comparison (running status, version, etc.)
|
||||
- Quick action: "Copy theme from dev to prod"
|
||||
|
||||
3. **Environment configuration panel**
|
||||
- Set environment type for existing apps
|
||||
- Link/unlink apps UI
|
||||
- Shared resource visualization
|
||||
|
||||
4. **Theme sync feature (WordPress-specific)**
|
||||
- Copy theme files from dev to prod
|
||||
- Preview changes before sync
|
||||
- Rollback capability
|
||||
|
||||
### Success Criteria
|
||||
- [ ] Environment type visible in UI
|
||||
- [ ] Easy navigation between linked apps
|
||||
- [ ] Theme sync works for WordPress apps
|
||||
|
||||
---
|
||||
|
||||
## Phase 14: GitHub & Community Links
|
||||
**Goal**: Add GitHub repository link and community resources to the application
|
||||
|
||||
### Tasks
|
||||
1. **Add GitHub link to UI**
|
||||
- GitHub icon in header/footer
|
||||
- Link to repository (github.com/jhd3197/ServerKit)
|
||||
- "Star on GitHub" prompt for new users
|
||||
|
||||
2. **Add documentation links**
|
||||
- Link to README/Wiki
|
||||
- Quick start guide link
|
||||
- API documentation link (if available)
|
||||
|
||||
3. **Add community section to Settings page**
|
||||
- GitHub Issues link for bug reports
|
||||
- Discussions link for questions
|
||||
- Contributing guidelines link
|
||||
|
||||
4. **Add version info with update check**
|
||||
- Show current version in Settings
|
||||
- Check for new releases via GitHub API
|
||||
- "Update available" notification
|
||||
|
||||
### Success Criteria
|
||||
- [ ] GitHub link visible in main UI
|
||||
- [ ] Documentation accessible from Settings
|
||||
- [ ] Version check shows update availability
|
||||
|
||||
---
|
||||
|
||||
## Phase 15: WordPress Dev Workflow Testing
|
||||
**Goal**: End-to-end testing of the complete dev workflow
|
||||
|
||||
### Tasks
|
||||
1. **Create test plan**
|
||||
- Document full workflow steps
|
||||
- Define success criteria for each step
|
||||
- Prepare test data
|
||||
|
||||
2. **Test: Deploy prod WordPress**
|
||||
- Install WordPress with standard template
|
||||
- Configure domain
|
||||
- Create sample content
|
||||
|
||||
3. **Test: Deploy dev WordPress (shared DB)**
|
||||
- Install WordPress-External-DB template
|
||||
- Link to prod app
|
||||
- Verify shared database connection
|
||||
- Verify separate table prefixes
|
||||
|
||||
4. **Test: Theme development workflow**
|
||||
- Install different theme on dev
|
||||
- Make theme customizations
|
||||
- Sync theme to prod
|
||||
- Verify prod unchanged until sync
|
||||
|
||||
5. **Document workflow**
|
||||
- Create user guide for multi-environment setup
|
||||
- Add examples to documentation
|
||||
- Note any limitations or gotchas
|
||||
|
||||
### Success Criteria
|
||||
- [ ] Full workflow completes without errors
|
||||
- [ ] Data isolation works correctly
|
||||
- [ ] Theme sync works as expected
|
||||
- [ ] Documentation is complete
|
||||
|
||||
---
|
||||
|
||||
## Dependencies
|
||||
|
||||
```
|
||||
(Previous milestone dependencies archived)
|
||||
Phase 11 (Shared DB Template) ──► Phase 12 (App Linking)
|
||||
│
|
||||
▼
|
||||
Phase 12 ────────────────────► Phase 13 (Environment UI)
|
||||
│
|
||||
▼
|
||||
Phase 13 ────────────────────► Phase 15 (Testing)
|
||||
|
||||
Phase 14 (GitHub Links) ─────► Phase 15 (Testing)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- Milestone 1 archived to `milestones/v1.0-ROADMAP.md`
|
||||
- All critical infrastructure fixes shipped
|
||||
- Private URL system fully functional
|
||||
- Dashboard, Templates, Applications, FileManager UI all polished
|
||||
- Phases 11-13 are the core multi-environment feature
|
||||
- Phase 14 (GitHub links) can be done independently
|
||||
- Phase 15 should run last after all features implemented
|
||||
- Table prefix approach avoids complexity of separate databases
|
||||
- Consider backup strategy before theme sync operations
|
||||
|
||||
---
|
||||
|
||||
## Estimated Complexity
|
||||
|
||||
| Phase | Complexity | Files Changed |
|
||||
|-------|------------|---------------|
|
||||
| 11 | Medium | 3-5 (template + validation) |
|
||||
| 12 | High | 6-8 (model, API, service) |
|
||||
| 13 | High | 5-7 (UI components) |
|
||||
| 14 | Low | 2-4 (UI only) |
|
||||
| 15 | Low | 0 (testing + docs) |
|
||||
+19
-92
@@ -1,112 +1,39 @@
|
||||
# ServerKit Enhancement - State
|
||||
|
||||
## Current Status
|
||||
- **Milestone**: 1 - Infrastructure Fixes, Private URLs & UI Polish
|
||||
- **Current Phase**: Complete
|
||||
- **Phase Status**: Milestone Complete
|
||||
- **Milestone**: 2 - Multi-Environment WordPress & Community Features
|
||||
- **Current Phase**: 11 - Shared Database WordPress Template
|
||||
- **Phase Status**: Pending
|
||||
- **Last Updated**: 2026-01-19
|
||||
|
||||
## Phase Progress
|
||||
|
||||
| Phase | Status | Started | Completed |
|
||||
|-------|--------|---------|-----------|
|
||||
| 1 | completed | 2026-01-19 | 2026-01-19 |
|
||||
| 2 | completed | 2026-01-19 | 2026-01-19 |
|
||||
| 3 | completed | 2026-01-19 | 2026-01-19 |
|
||||
| 4 | skipped | - | - |
|
||||
| 5 | completed | 2026-01-19 | 2026-01-19 |
|
||||
| 6 | completed | 2026-01-19 | 2026-01-19 |
|
||||
| 7 | completed | 2026-01-19 | 2026-01-19 |
|
||||
| 8 | completed | 2026-01-19 | 2026-01-19 |
|
||||
| 9 | completed | 2026-01-19 | 2026-01-19 |
|
||||
| 10 | skipped | - | - |
|
||||
| 11 | pending | - | - |
|
||||
| 12 | pending | - | - |
|
||||
| 13 | pending | - | - |
|
||||
| 14 | pending | - | - |
|
||||
| 15 | pending | - | - |
|
||||
|
||||
## Phase 9 Summary
|
||||
FileManager disk usage UI fully implemented:
|
||||
- Backend: analyze_directory_sizes, get_file_type_breakdown, get_all_disk_mounts
|
||||
- Multi-mount disk usage widget with color-coded progress bars
|
||||
- Directory analysis panel with horizontal bar charts
|
||||
- File type breakdown with Recharts PieChart
|
||||
- Largest files list with navigation
|
||||
- Collapsible sidebar with localStorage persistence
|
||||
- Lucide icons replacing all emoji file icons
|
||||
- Responsive layout with mobile sidebar slide-in
|
||||
## Milestone 2 Overview
|
||||
Multi-Environment WordPress & Community Features (v1.1)
|
||||
|
||||
## Phase 8 Summary
|
||||
Applications UI polish fully implemented:
|
||||
- Lucide icons replacing all inline SVGs
|
||||
- Sorting options (name A-Z/Z-A, status, type, created)
|
||||
- Grid/list view toggle with localStorage persistence
|
||||
- Bulk selection with checkboxes and action bar
|
||||
- ConfirmModal component for destructive actions
|
||||
- Enhanced status badges with animated pulse for running apps
|
||||
- Search filter with URL param persistence
|
||||
- Improved app cards with port, domain count, container info
|
||||
- Mobile responsive design
|
||||
|
||||
## Phase 7 Summary
|
||||
Templates page polish fully implemented:
|
||||
- Lucide icon mappings for 60+ templates as fallbacks
|
||||
- Icon error handling with graceful fallback to Lucide icons
|
||||
- URL param persistence for category, search, and sort filters
|
||||
- Active filter chips with remove buttons and "Clear All"
|
||||
- Featured badge for 10 curated templates
|
||||
- Enhanced cards with version styling and link indicators
|
||||
- Improved modal with requirements section and icons
|
||||
- Search input with icon and clear button
|
||||
- Results count and sort dropdown (A-Z, Z-A, Featured)
|
||||
|
||||
## Phase 6 Summary
|
||||
Dashboard historical metrics fully implemented:
|
||||
- MetricsHistory model with minute/hour/day aggregation levels
|
||||
- MetricsHistoryService with background collection every 60 seconds
|
||||
- Auto-aggregation (minute→hour→day) and cleanup per retention policy
|
||||
- REST API endpoints for history, stats, and collection control
|
||||
- MetricsGraph component with Recharts LineChart
|
||||
- Period selector (1h, 6h, 24h, 7d, 30d)
|
||||
- Integrated into Dashboard below real-time metrics
|
||||
|
||||
## Phase 5 Summary
|
||||
Private URL system fully implemented:
|
||||
- Database schema with private_slug and private_url_enabled fields
|
||||
- PrivateURLService for secure slug generation and validation
|
||||
- API endpoints for enable/disable/update/regenerate
|
||||
- Nginx integration for /p/{slug} routing
|
||||
- Frontend component with copy, regenerate, custom slug support
|
||||
- Visual indicator in applications list
|
||||
|
||||
## Phase 2 Summary
|
||||
WordPress deployment tested successfully. Found and fixed 2 critical bugs:
|
||||
- Bug 1: NDJSON parsing in compose_ps (affected container detection)
|
||||
- Bug 2: CLI .env loading (affected CLI commands)
|
||||
- Bug 3: Consequence of Bug 1, resolved by same fix
|
||||
|
||||
## Phase 1 Summary
|
||||
Completed all 8 tasks:
|
||||
- Added port accessibility checks to DockerService
|
||||
- Added Nginx config diagnostics
|
||||
- Created debug API endpoints for routing diagnosis
|
||||
- Added port validation on domain creation
|
||||
- Added port verification after template installation
|
||||
- Enhanced app status API with port info
|
||||
- Added routing diagnostics UI to frontend
|
||||
- Created test-routing.sh script
|
||||
**Goals:**
|
||||
- Create WordPress template with external database support
|
||||
- Enable prod/dev environment linking with shared database
|
||||
- Add environment switching UI with theme sync
|
||||
- Add GitHub and community resource links
|
||||
|
||||
## Blockers
|
||||
None currently identified.
|
||||
|
||||
## Notes
|
||||
- Phase 9 complete - FileManager now has comprehensive disk visualization
|
||||
- All UI pages polished: Dashboard, Templates, Applications, FileManager
|
||||
- Ready for Phase 10 (Integration Testing)
|
||||
- Milestone 1 nearly complete - only testing phase remains
|
||||
- Milestone 1 (v1.0) completed 2026-01-19
|
||||
- Phase numbering continues from Milestone 1 (11-15)
|
||||
- Phase 14 (GitHub Links) can be done independently of 11-13
|
||||
|
||||
## Quick Links
|
||||
- [ROADMAP.md](./ROADMAP.md)
|
||||
- [PROJECT.md](./PROJECT.md)
|
||||
- [Phase 1 Summary](./phases/01-docker-domain-debugging/SUMMARY.md)
|
||||
- [Phase 5 Summary](./phases/05-private-urls/SUMMARY.md)
|
||||
- [Phase 6 Summary](./phases/06-dashboard-historical-metrics/SUMMARY.md)
|
||||
- [Phase 7 Summary](./phases/07-templates-page-polish/SUMMARY.md)
|
||||
- [Phase 8 Summary](./phases/08-applications-ui-polish/SUMMARY.md)
|
||||
- [Phase 9 Summary](./phases/09-filemanager-disk-usage/SUMMARY.md)
|
||||
- [Milestone 1 Archive](./milestones/v1.0-ROADMAP.md)
|
||||
Reference in new issue
Block a user