7150c3f3d2
Deploy / deploy (push) Successful in 39s
- 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>
29 lines
1.0 KiB
TypeScript
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>
|
|
);
|
|
}
|