Static Astro site that records every movie and series I log. Entries live as Markdown content collections, enriched via the TMDB API, styled with Bootstrap, and shipped inside a node:20-alpine container for Coolify.
- Astro 4 with Markdown content collections
- Bootstrap 5 + custom SCSS tokens
- CLI entry generator powered by TMDB and
tsx - Docker (node:20-alpine build stage, Caddy runtime) ready for Coolify deployment
cp .env.example .env # add TMDB Read Access Token (v4)
npm install
npm run devVisit http://localhost:4321 for the dev server.
The CLI accepts non-interactive flags for automation pipelines.
npm run add -- --title "Severance" --media-type tv --status "mid-season" \
--watch-date 2025-12-28 --tags thriller,sci-fi --rating "10/10"Flags:
--title(required)--media-type(movie|tv, defaultmovie)--status,--rating,--progress,--watch-date--tagscomma separated--tmdb-idoptional explicit TMDB id--yearhint for TMDB search--poster-url,--backdrop-urlmanual overrides when TMDB art is missing--notesMarkdown body fallback
With a TMDB API key configured the CLI searches (or looks up an explicit id), pulls overview text, poster/backdrop art, and hyperlinks to TMDB, then writes Markdown files into src/content/watchlog/. When run in an interactive terminal the CLI will show the top TMDB matches so you can pick the exact title; add --non-interactive (or pass --tmdb-id) to skip the prompt for CI pipelines.
Located in src/content/config.ts. Required fields: title, mediaType, status. Everything else is optional free text (strings, arrays, or URLs) so the CLI can stay flexible.
npm run build
docker build -t watchinglog:latest .
docker run -p 8080:80 watchinglog:latestThe container now copies the static dist/ output into a tiny caddy:2-alpine image and serves it via caddy file-server on port 80. When deploying to Coolify (or similar), expose port 80 and map it to whatever host port you prefer.
npm run dev– Astro dev servernpm run build– static build intodist/npm run preview– preview servernpm run check– Astro type + content checksnpm run add– TMDB-backed CLI
- Add RSS/JSON feeds for updates
- Better tag filtering UI
- Deploy pipeline definition for Coolify