From 29e8654b01c4587b423a702addbd711197eb0767 Mon Sep 17 00:00:00 2001 From: jlightner Date: Sat, 4 Apr 2026 09:35:46 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20Added=20GET=20/robots.txt=20route=20ret?= =?UTF-8?q?urning=20disallow-all=20and=20meta=20robot=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - "src/server/routes/health.ts" - "src/frontend/index.html" GSD-Task: S02/T02 --- src/frontend/index.html | 1 + src/server/routes/health.ts | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/frontend/index.html b/src/frontend/index.html index 707f4d0..1d840fb 100644 --- a/src/frontend/index.html +++ b/src/frontend/index.html @@ -4,6 +4,7 @@ Tubearr + diff --git a/src/server/routes/health.ts b/src/server/routes/health.ts index bf163ac..b6c10a3 100644 --- a/src/server/routes/health.ts +++ b/src/server/routes/health.ts @@ -17,6 +17,13 @@ export async function healthRoutes(fastify: FastifyInstance): Promise { return { status: 'ok' }; }); + // robots.txt — disallow all crawlers (private media manager) + fastify.get('/robots.txt', async (_request, reply) => { + return reply + .type('text/plain') + .send('User-agent: *\nDisallow: /\n'); + }); + // Authenticated component health fastify.get('/api/v1/health', async (_request, _reply) => { const components: ComponentHealth[] = [];