- express.static(thumbnailsPhysicalPath, { maxAge: STATIC_MAX_AGE, fallthrough: false }) // 404 if the file does not exist
-)
-
-const avatarsPhysicalPath = CONFIG.STORAGE.AVATARS_DIR
-staticRouter.use(
- STATIC_PATHS.AVATARS,
- express.static(avatarsPhysicalPath, { maxAge: STATIC_MAX_AGE, fallthrough: false }) // 404 if the file does not exist
-)
-
-// We don't have video previews, fetch them from the origin instance
-staticRouter.use(
- STATIC_PATHS.PREVIEWS + ':uuid.jpg',
- asyncMiddleware(getPreview)
-)
-
-// We don't have video captions, fetch them from the origin instance
-staticRouter.use(
- STATIC_PATHS.VIDEO_CAPTIONS + ':videoId-:captionLanguage([a-z]+).vtt',
- asyncMiddleware(getVideoCaption)
-)
-
-// 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)
- }
-)
-
-// security.txt service
-staticRouter.get('/security.txt',
- (_, res: express.Response) => {
- return res.redirect(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: CONFIG.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' })
- }