[grade=B] DC-105: Smart defaults wizard — 'What do you want to self-host?'
CI / Test & Lint (push) Canceled after 0s
CI / Security audit (push) Canceled after 0s

3 endpoints:
- GET  /api/v1/wizard/categories — list 6 categories with icons
- POST /api/v1/wizard/recommend — get prioritized service list from selected categories
- POST /api/v1/wizard/apply — generate deployment plan

Categories: media-streaming, file-sync, home-network, smart-home, development, monitoring.
Hardware profiles: minimal (3 svcs), medium (6), powerful (12).
Cross-category dedup with priority sorting. 1633 tests pass.
This commit is contained in:
Hermes
2026-08-12 12:50:39 -07:00
parent 2595b6a456
commit 0cda298651
2 changed files with 178 additions and 0 deletions
+7
View File
@@ -64,6 +64,7 @@ const i18nRoutes = require('../routes/i18n');
const discoverRoutes = require('../routes/discover');
const discoverAdoptRoutes = require('../routes/discover-adopt');
const catalogRoutes = require('../routes/catalog');
const wizardRoutes = require('../routes/wizard');
const configRoutes = require('../routes/config');
const dnsRoutes = require('../routes/dns');
const notificationRoutes = require('../routes/notifications');
@@ -625,6 +626,12 @@ async function createApp() {
APP_TEMPLATES: require('./docker/app-templates'),
asyncHandler: ctx.asyncHandler,
}));
// DC-105: Smart defaults wizard
apiRouter.use(wizardRoutes({
APP_TEMPLATES: require('./docker/app-templates'),
asyncHandler: ctx.asyncHandler,
}));
apiRouter.use(updatesRoutes({
updateManager: ctx.updateManager,
selfUpdater: ctx.selfUpdater,