Skip to content

jeromeberg/watched

Repository files navigation

Watched

TypeScript React Vite NestJS PostgreSQL Prisma Docker

A full-stack movie/TV watchlist app, using the TMDB API.

Features

  • User accounts and profiles
  • Library: watched / to watch
  • Filter, sort and view library as grid/list
  • Collections: organize your library
  • Rate titles and add notes
  • TV shows: track episodes per season
  • Search, get data and posters from TMDB

Stack

  • Frontend: React, Vite, Tailwind CSS
  • Backend: NestJS
  • Database: PostgreSQL
  • ORM: Prisma
  • Containerization: Docker, Docker Compose
  • Nginx

Screenshots

Profile

Profile

Movies library

Movies

TV Show (episodes)

Show

Collections

Collections

Instructions

Requirements

  • Docker
  • Docker Compose
  • make

Quick start

⚠️ A TMDB API key is required.

# copy and fill env
cp .env.example .env

# start in dev mode
make dev

# start in prod mode
make prod

Cloudflare Tunnel

Expose the app publicly via Cloudflare Tunnel.

CLOUDFLARE_TOKEN, CLOUD_URL and CLOUD_API_URL need to be filled in .env.

Both CLOUD_URL and CLOUD_API_URL override production values when running make cloud.

# build prod and start tunnel
make cloud

⚠️ The API should be exposed on its own domain or single-level subdomain (e.g. api.yourdomain.com) so it is covered by Cloudflare's SSL certificate.

Commands

Command Description
make dev Start in dev mode
make prod Start in prod mode
make cloud Prod + Cloudflare Tunnel
make down Stop all containers
make redev Rebuild and start dev
make reprod Rebuild and start prod
make recloud Rebuild and start cloud
make logs Tail logs (dev)
make backend-shell Open backend shell (dev)
make db-shell Open db shell (dev)
make migrate Prisma migration (dev)
make prisma Open Prisma Studio (dev)
make db-dump Dump database (dev)
make db-restore FILE=path Restore a dump (dev)
make db-wipe Delete db volume (dev)

About

A full-stack movie/TV watchlist app, using the TMDB API.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors