Let users host arbitrary .well-known paths

This commit is contained in:
Alex Gleason 2024-11-04 17:17:41 -06:00
parent d46af51604
commit e3aed99605
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7

View file

@ -169,6 +169,11 @@ const app = new Hono<AppEnv>({ strict: false });
const debug = Debug('ditto:http'); const debug = Debug('ditto:http');
/** User-provided files in the gitignored `public/` directory. */
const publicFiles = serveStatic({ root: './public/' });
/** Static files provided by the Ditto repo, checked into git. */
const staticFiles = serveStatic({ root: './static/' });
app.use('*', rateLimitMiddleware(300, Time.minutes(5))); app.use('*', rateLimitMiddleware(300, Time.minutes(5)));
app.use('/api/*', metricsMiddleware, paginationMiddleware, logger(debug)); app.use('/api/*', metricsMiddleware, paginationMiddleware, logger(debug));
@ -362,13 +367,10 @@ app.get('/api/v1/conversations', emptyArrayController);
app.get('/api/v1/lists', emptyArrayController); app.get('/api/v1/lists', emptyArrayController);
app.use('/api/*', notImplementedController); app.use('/api/*', notImplementedController);
app.use('/.well-known/*', notImplementedController); app.use('/.well-known/*', publicFiles, notImplementedController);
app.use('/nodeinfo/*', notImplementedController); app.use('/nodeinfo/*', notImplementedController);
app.use('/oauth/*', notImplementedController); app.use('/oauth/*', notImplementedController);
const publicFiles = serveStatic({ root: './public/' });
const staticFiles = serveStatic({ root: './static/' });
// Known frontend routes // Known frontend routes
app.get('/:acct{@.*}', frontendController); app.get('/:acct{@.*}', frontendController);
app.get('/:acct{@.*}/*', frontendController); app.get('/:acct{@.*}/*', frontendController);