{"id":46993429,"url":"https://github.com/raunot/plex-rewind","last_synced_at":"2026-05-11T10:01:38.811Z","repository":{"id":206963872,"uuid":"575291015","full_name":"RaunoT/plex-rewind","owner":"RaunoT","description":"Present Plex user statistics and habits in a beautiful and organized manner.","archived":false,"fork":false,"pushed_at":"2026-05-11T08:06:31.000Z","size":3579,"stargazers_count":294,"open_issues_count":7,"forks_count":14,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2026-05-11T09:29:12.821Z","etag":null,"topics":["docker","nextjs","plex","react","seerr","tailwind","tautulli","typescript","web","wrapped"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RaunoT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["RaunoT"],"patreon":"PlexRewind","custom":["paypal.me/raunot"]}},"created_at":"2022-12-07T07:15:14.000Z","updated_at":"2026-05-11T08:06:35.000Z","dependencies_parsed_at":"2024-02-29T21:27:02.471Z","dependency_job_id":"d2eae375-f421-459b-96a6-83e232d6bc47","html_url":"https://github.com/RaunoT/plex-rewind","commit_stats":null,"previous_names":["raunot/plex-rewind"],"tags_count":217,"template":false,"template_full_name":null,"purl":"pkg:github/RaunoT/plex-rewind","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaunoT%2Fplex-rewind","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaunoT%2Fplex-rewind/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaunoT%2Fplex-rewind/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaunoT%2Fplex-rewind/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RaunoT","download_url":"https://codeload.github.com/RaunoT/plex-rewind/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaunoT%2Fplex-rewind/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32889972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","nextjs","plex","react","seerr","tailwind","tautulli","typescript","web","wrapped"],"created_at":"2026-03-11T14:38:01.414Z","updated_at":"2026-05-11T10:01:38.805Z","avatar_url":"https://github.com/RaunoT.png","language":"TypeScript","funding_links":["https://github.com/sponsors/RaunoT","https://patreon.com/PlexRewind","paypal.me/raunot","https://paypal.me/raunot","https://www.patreon.com/PlexRewind"],"categories":[],"sub_categories":[],"readme":"# Plex Rewind\n\n[![Plex Rewind release status](https://img.shields.io/github/actions/workflow/status/RaunoT/plex-rewind/release.yml?label=Release)](https://github.com/RaunoT/plex-rewind/actions/workflows/release.yml)\n[\u003cimg src=\"https://img.shields.io/github/v/release/raunot/plex-rewind?label=latest\" alt=\"Plex Rewind latest release\"\u003e](https://github.com/RaunoT/plex-rewind/releases)\n[![Plex Rewind pre-release status](https://img.shields.io/github/actions/workflow/status/RaunoT/plex-rewind/pre-release.yml?include_prereleases=true\u0026label=Pre-release)](https://github.com/RaunoT/plex-rewind/actions/workflows/pre-release.yml)\n[\u003cimg src=\"https://img.shields.io/github/v/release/RaunoT/plex-rewind?include_prereleases\u0026label=develop\" alt=\"Plex Rewind develop release\"\u003e](https://github.com/RaunoT/plex-rewind/releases)\n\nA Plex Rewind application inspired by the likes of [Spotify Wrapped](https://www.spotify.com/us/wrapped) and [Tautulli](https://tautulli.com).\n\nPresent [Plex](https://plex.tv) user statistics and habits in a beautiful and organized manner - as a web application application powered by [Next.js](https://nextjs.org) and [Tailwind.css](https://tailwindcss.com), using data from [Tautulli](https://tautulli.com), [Overseerr](https://overseerr.dev) and [Plex](https://plex.tv). You can also disable the Rewind functionality and just use it as an easily sharable Dashboard for your Plex users or vice versa!\n\n## Features\n\n- 📱 Fully responsive - viewable, usable \u0026 enjoyable on desktop, tablet or mobile, courtesy of [Tailwind.css](https://tailwindcss.com).\n- 🔄 Fully dynamic - the data you're viewing will always be the latest available.\n- 🎭 Anonymization - anonymize user info for enchanced privacy.\n- 📆 Rewind - allows your users view their statistics and habits for a (customizable) time period.\n- 👀 Dashboard - provides an easily glanceable overview of activity on your server for all your libraries, personalized or general.\n- ⚡ Activity - see what's happening on your server in real time, enabled by [TanStack Query](https://tanstack.com/query/latest).\n- 📊 Fuelled by data from [Tautulli](https://tautulli.com) - the backbone responsible for the heavy lifting regarding statistics.\n- 🔗 Integrates with [Overseerr](https://overseerr.dev) - show request breakdowns and totals and display request buttons straight under deleted fan-favorite media items.\n- 🔐 Log in with Plex - uses [NextAuth.js](https://next-auth.js.org) to enable secure login and session management with your Plex account.\n- 🚀 PWA support - installable on mobile devices and desktops thanks to [Serwist](https://github.com/serwist/serwist).\n- 🐳 Easy deployment - run the application in a containerized environment with [Docker](https://www.docker.com).\n- ✨ Beautiful animations with [Motion](https://motion.dev).\n- 🌐 Multi-language support - currently supporting English, Estonian, French and German. See [translations](#translations) for more information.\n- ⭐ All of this and more - powered by [Next.js](https://nextjs.org).\n\nKeep an eye on the [issues page](https://github.com/RaunoT/plex-rewind/issues) to see what new features have already been requested or to make your own request!\n\n## Preview\n\n![Dashboard](https://i.imgur.com/6UKEp7v.png 'Dashboard')\n\n![Rewind](https://i.imgur.com/w536oB5.png 'Rewind')\n\n![Activity](https://i.imgur.com/AP8tu0m.png 'Activity')\n\n## Getting started\n\n1. Create a `docker-compose.yml` in your location of choice and run `docker compose up -d`. The app will be available at `http://localhost:8383`.\n\n```yml\nservices:\n  plex-rewind:\n    image: ghcr.io/raunot/plex-rewind:latest # :develop for the latest development version\n    container_name: plex-rewind\n    environment:\n      - NEXTAUTH_SECRET= # (required) used to encrypt auth JWT token, generate one with `openssl rand -base64 32`\n      - NEXTAUTH_URL=http://localhost:8383 # (required) change to your domain if you are exposing the app to the internet\n      - NEXT_PUBLIC_SITE_URL=http://localhost:8383 # (required) change to your domain if you are exposing the app to the internet\n    volumes:\n      - ./config:/app/config\n    ports:\n      - 8383:8383\n    restart: unless-stopped\n```\n\n\u003e _NOTE: If you run into authentication issues, try setting `NEXTAUTH_URL` and `NEXT_PUBLIC_SITE_URL` to your external Docker IP, instead of localhost. For example `http://192.168.1.1:8383`._\n\nFor those that need it, a simple status page is also available at `/api/status`.\n\n### Updating\n\nTo update, run `docker compose pull` and then `docker compose up -d`.\n\n## Translations\n\nTo help translate the application to your language, create a new `\u003clanguage-code\u003e.json` in the `messages` directory and translate the strings, using `en.json` as a reference. Once the translation is complete, create a pull request for review.\n\n## Donate\n\nIf you like this project and wish to support it, you can do so with a one-time donation via [PayPal](https://paypal.me/raunot) or a recurring one on [Patreon](https://www.patreon.com/PlexRewind) or [GitHub Sponsors](https://github.com/sponsors/RaunoT) (preferred). Thank you! ❤️\n\n### Supporters\n\n- NAS Assist\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/#RaunoT/plex-rewind\u0026type=date\u0026legend=top-left\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=RaunoT/plex-rewind\u0026type=date\u0026theme=dark\u0026legend=top-left\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=RaunoT/plex-rewind\u0026type=date\u0026legend=top-left\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=RaunoT/plex-rewind\u0026type=date\u0026legend=top-left\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraunot%2Fplex-rewind","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraunot%2Fplex-rewind","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraunot%2Fplex-rewind/lists"}