_serveUserUibIndex() {
        this.uibRouter.get('/apps', (req, res, next) => {
            // Build the web page
            let page = `
                <!doctype html><html lang="en"><head>
                    <meta charset="utf-8">
                    <meta name="viewport" content="width=device-width, initial-scale=1">
                    <title>App Index</title>
                    <link rel="icon" href="../uibuilder/images/node-blue.ico">
                    <link type="text/css" rel="stylesheet" href="../uibuilder/uib-brand.min.css">
                    <style>
                        li > div {
                            border-left:5px solid var(--surface5);
                            padding-left: 5px;
                        }
                    </style>
                </head><body class="uib"><div class="container">
                    <h1>List of available apps</h1>
                    <div><ul>
            `

            if ( Object.keys(this.uib.instances).length === 0 ) {
                page += '<p>Instance list not yet ready, please try again</p>'
            } else {
                for ( let [url, data] of sortApps(Object.entries(this.uib.apps)) ) { // eslint-disable-line prefer-const
                    const title = data.title.length === 0 ? '' : `: ${data.title}`
                    const descr = data.descr.length === 0 ? '' : `<div>${data.descr}</div>`
                    page += `
                        <li>
                            <a href="../${url}">${url}${title}</a>${descr}
                        </li>
                    `
                }
            }

            page += `
                    </ul></div>
                </div></body></html>
            `

            res.statusMessage = 'Apps listed'
            res.status(200).send( page )
        })

        // Record this endpoint for use on details page
        this.routers.user.push( {
            name: 'Apps (Instances)',
            path: `${this.uib.httpRoot}/uibuilder/apps`,
            desc: 'List of all uibuilder apps (instances)',
            type: 'Get',
            // folder: uib.commonFolder
        } )
    }
Return a dynamic index page of all uibuilder user-accessible endpoints on /uibuilder/apps
param {express.Request} req Express request object
param {express.Response} res Express response object
param {Function} next Function to pass to next handler