{"id":29467906,"url":"https://github.com/maxdorninger/MediaManager","last_synced_at":"2025-07-14T10:03:28.401Z","repository":{"id":280339559,"uuid":"929498863","full_name":"maxdorninger/MediaManager","owner":"maxdorninger","description":"A modern selfhosted media management system for your media library","archived":false,"fork":false,"pushed_at":"2025-07-13T16:00:32.000Z","size":25781,"stargazers_count":532,"open_issues_count":9,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-13T16:24:11.684Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://maxdorninger.github.io/MediaManager/introduction.html","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maxdorninger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"maxdorninger","buy_me_a_coffee":"maxdorninger"}},"created_at":"2025-02-08T17:30:18.000Z","updated_at":"2025-07-13T16:21:53.000Z","dependencies_parsed_at":"2025-03-27T17:29:26.195Z","dependency_job_id":"2164947a-1d84-4c7c-a155-7fc6e9b856e6","html_url":"https://github.com/maxdorninger/MediaManager","commit_stats":null,"previous_names":["maxdorninger/mediamanager"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/maxdorninger/MediaManager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxdorninger%2FMediaManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxdorninger%2FMediaManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxdorninger%2FMediaManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxdorninger%2FMediaManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxdorninger","download_url":"https://codeload.github.com/maxdorninger/MediaManager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxdorninger%2FMediaManager/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265276464,"owners_count":23739202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-07-14T10:01:28.781Z","updated_at":"2025-07-14T10:03:28.386Z","avatar_url":"https://github.com/maxdorninger.png","language":"Python","funding_links":["https://github.com/sponsors/maxdorninger","https://buymeacoffee.com/maxdorninger"],"categories":["Python","others"],"sub_categories":[],"readme":"\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://maxdorninger.github.io/MediaManager\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/maxdorninger/MediaManager/refs/heads/master/Writerside/images/logo.svg\" alt=\"Logo\" width=\"260\" height=\"260\"\u003e\n  \u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003eMediaManager\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Modern management system for your media library\n    \u003cbr /\u003e\n    \u003ca href=\"https://maxdorninger.github.io/MediaManager/introduction.html\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/maxdorninger/MediaManager/issues/new?labels=bug\u0026template=bug_report.md\"\u003eReport Bug\u003c/a\u003e\n    \u0026middot;\n    \u003ca href=\"https://github.com/maxdorninger/MediaManager/issues/new?template=feature_request.md\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\nMediaManager is modern software to manage your TV and movie library. It is designed to be a replacement for Sonarr,\nRadarr, Overseer, and Jellyseer.\nIt supports TVDB and TMDB for metadata, supports OIDC and OAuth 2.0 for authentication and supports Prowlarr and\nJackett.\nMediaManager is built first and foremost for deployment with Docker, making it easy to set up.\n\nIt also provides an API to interact with the software programmatically, allowing for automation and integration with\nother services.\n\n## Quick Start\n\n```\n   wget -O docker-compose.yaml https://raw.githubusercontent.com/maxdorninger/MediaManager/refs/heads/master/docker-compose.yaml   \n   wget -O docker-compose.yaml https://raw.githubusercontent.com/maxdorninger/MediaManager/refs/heads/master/config.toml\n   # you probably need to edit the config.toml file, for more help see the documentation\n   docker compose up -d\n```\n\n### [View the docs for installation instructions and more](https://maxdorninger.github.io/MediaManager/configuration-overview.html#configuration-overview)\n\n## Support MediaManager\n\n\u003ca href=\"https://github.com/sponsors/maxdorninger\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Sponsor-Maximilian Dorninger-orange\" alt=\"Sponsor @maxdorninger\" /\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://buymeacoffee.com/maxdorninger\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\" alt=\"Buy Me A Coffee\" style=\"height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;\" \u003e\n\u003c/a\u003e\n\n\n## Check out the awesome sponsors of MediaManager ❤️\n\u003ca href=\"https://fosstodon.org/@aljazmerzen\"\u003e\u003cimg src=\"https://github.com/aljazerzen.png\" width=\"80px\" alt=\"Aljaž Mur Eržen\" /\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\n\u003ca href=\"https://github.com/ldrrp\"\u003e\u003cimg src=\"https://github.com/ldrrp.png\" width=\"80px\" alt=\"Luis Rodriguez\" /\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\n\n\n\u003c!-- ROADMAP --\u003e\n## Roadmap\n\n- [x] support for more torrent indexers\n- [x] fully automatic downloads\n- [x] add tests\n- [x] add more logs/errors\n- [x] make API return proper error codes\n- [x] optimize images for web in the backend\n- [x] responsive ui\n- [x] automatically update metadata of shows\n- [x] automatically download new seasons/episodes of shows\n- [x] add fallback to just copy files if hardlinks don't work\n- [x] add check at startup if hardlinks work\n- [x] create separate metadata relay service, so that api keys for TMDB and TVDB are not strictly needed\n- [x] support for movies\n- [x] expand README with more information and a quickstart guide\n- [x] improve reliability of scheduled tasks\n- [x] add notification system\n- [x] add sequence diagrams to the documentation\n- [x] add usenet support\n- [ ] provide example configuration files\n- [ ] make media sorting algorithm configurable\n- [ ] add in-depth documentation on the architecture of the codebase\n- [ ] make indexer module multithreaded\n- [ ] add support for deluge and transmission\n- [ ] add delete button for movies/TV shows\n- [ ] rework prowlarr module (select which indexers to use, etc.)\n- [ ] _maybe_ rework the logo\n- [ ] _maybe_ add support for configuration via toml/yaml config file\n\nSee the [open issues](hhttps://maxdorninger.github.io/MediaManager/issues) for a full list of proposed features (and known issues).\n\n## Screenshots\n\n![Screenshot 2025-07-02 174732](https://github.com/user-attachments/assets/49fc18aa-b471-4be8-983e-c0ab240dfb73)\n![Screenshot 2025-07-02 174342](https://github.com/user-attachments/assets/3a38953d-d0fa-4a7e-83d0-dd6e6427681c)\n![Screenshot 2025-07-02 174616](https://github.com/user-attachments/assets/c3af4be8-b873-448c-8a4d-0d5db863aec7)\n![Screenshot 2025-07-02 174416](https://github.com/user-attachments/assets/0d50f53b-64da-4243-8408-1d6fc85fe81b)\n![Screenshot 2025-06-28 222908](https://github.com/user-attachments/assets/193e1afd-dabb-42a2-ab28-59f2784371c7)\n\n\n## Developer Quick Start\n\n```bash\n  pip install uv\n  uv venv\n  # Activate the virtual environment\n  uv pip install -e .\n```\n```bash\ndocker compose up db -d\n```\n\n```bash\nuv run alembic upgrade head\n```\n\n### Get the frontend up and running\n\n```bash\ncd /web \u0026\u0026 npm install\n```\n\n### Now start the backend and frontend\n```bash\nfastapi dev /media_manager/main.py --reload --host\n```\n\n```bash\ncd /web \u0026\u0026 npm run dev\n```\n\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the AGPL 3.0. See `LICENSE.txt` for more information.\n\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n## Acknowledgments\n\n* [Thanks to Pawel Czerwinski for the image on the login screen](https://unsplash.com/@pawel_czerwinski)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxdorninger%2FMediaManager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxdorninger%2FMediaManager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxdorninger%2FMediaManager/lists"}