- express.static(thumbnailsPhysicalPath, { maxAge: STATIC_MAX_AGE.SERVER, fallthrough: false }) // 404 if the file does not exist
-)
-
-// robots.txt service
-staticRouter.get('/robots.txt',
- asyncMiddleware(cacheRoute()(ROUTE_CACHE_LIFETIME.ROBOTS)),
- (_, res: express.Response) => {
- res.type('text/plain')
- return res.send(CONFIG.INSTANCE.ROBOTS)
- }
-)
-
-staticRouter.all('/teapot',
- getCup,
- asyncMiddleware(serveIndexHTML)
-)
-
-// security.txt service
-staticRouter.get('/security.txt',
- (_, res: express.Response) => {
- return res.redirect(HttpStatusCode.MOVED_PERMANENTLY_301, '/.well-known/security.txt')
- }
-)
-
-staticRouter.get('/.well-known/security.txt',
- asyncMiddleware(cacheRoute()(ROUTE_CACHE_LIFETIME.SECURITYTXT)),
- (_, res: express.Response) => {
- res.type('text/plain')
- return res.send(CONFIG.INSTANCE.SECURITYTXT + CONFIG.INSTANCE.SECURITYTXT_CONTACT)
- }
-)
-
-// nodeinfo service
-staticRouter.use('/.well-known/nodeinfo',
- asyncMiddleware(cacheRoute()(ROUTE_CACHE_LIFETIME.NODEINFO)),
- (_, res: express.Response) => {
- return res.json({
- links: [
- {
- rel: 'http://nodeinfo.diaspora.software/ns/schema/2.0',
- href: WEBSERVER.URL + '/nodeinfo/2.0.json'
- }
- ]
- })
- }
-)
-staticRouter.use('/nodeinfo/:version.json',
- asyncMiddleware(cacheRoute()(ROUTE_CACHE_LIFETIME.NODEINFO)),
- asyncMiddleware(generateNodeinfo)
-)
-
-// dnt-policy.txt service (see https://www.eff.org/dnt-policy)
-staticRouter.use('/.well-known/dnt-policy.txt',
- asyncMiddleware(cacheRoute()(ROUTE_CACHE_LIFETIME.DNT_POLICY)),
- (_, res: express.Response) => {
- res.type('text/plain')
-
- return res.sendFile(join(root(), 'dist/server/static/dnt-policy/dnt-policy-1.0.txt'))
- }
-)
-
-// dnt service (see https://www.w3.org/TR/tracking-dnt/#status-resource)
-staticRouter.use('/.well-known/dnt/',
- (_, res: express.Response) => {
- res.json({ tracking: 'N' })
- }
-)
-
-staticRouter.use('/.well-known/change-password',
- (_, res: express.Response) => {
- res.redirect('/my-account/settings')
- }
-)
-
-staticRouter.use('/.well-known/host-meta',
- (_, res: express.Response) => {
- res.type('application/xml')
-
- const xml = '<?xml version="1.0" encoding="UTF-8"?>\n' +
- '<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">\n' +
- ` <Link rel="lrdd" type="application/xrd+xml" template="${WEBSERVER.URL}/.well-known/webfinger?resource={uri}"/>\n` +
- '</XRD>'
-
- res.send(xml).end()
- }