Files
twotalesanimation 7150c3f3d2
Deploy / deploy (push) Successful in 39s
Add /drops/: login-protected, view-only shot previews
- nginx basic auth on /drops/ (page and clips); login file and clips live
  on the server only (docker/auth, docker/drops), never in git or the image
- Fails closed: missing login file returns 500; no-store, noindex
- Page reads manifest.json from the server, shows "taken down" when empty
- Player hides download/cast/PiP, blocks right-click, confidential overlay
- DEPLOY.md step 8: how to share a drop and take it down

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 14:10:02 +02:00

29 lines
1.0 KiB
TypeScript

import type { Metadata, Viewport } from "next";
import Fox from "@/components/Fox";
import DropViewer from "@/components/drops/DropViewer";
import { site } from "@/content/site";
// Private screening room for vendors and clients. nginx puts the whole of /drops/ behind a
// login, and the clips plus their list (manifest.json) live on the server only, never in git
// (see DEPLOY.md). Not linked from the site, kept out of search and the sitemap.
export const metadata: Metadata = {
title: "Shot previews",
robots: { index: false, follow: false },
};
export const viewport: Viewport = {
themeColor: "#0a0a0b",
};
export default function DropsPage() {
return (
<main className="grain min-h-dvh bg-ink pb-24">
<header className="mx-auto flex max-w-6xl items-center gap-3 px-4 pt-6 md:px-8">
<Fox className="h-6 w-6 text-accent" />
<span className="font-mono text-[11px] tracking-[0.25em] text-muted uppercase">{site.name} · Private</span>
</header>
<DropViewer />
</main>
);
}