{"id":28141526,"url":"https://github.com/jaypyles/anirra","last_synced_at":"2025-10-17T03:18:25.210Z","repository":{"id":288998521,"uuid":"965728463","full_name":"jaypyles/anirra","owner":"jaypyles","description":"Anirra is a completely self-hosted anime watchlist, search, and recommendations app. It allows anime enthusiasts to manage their watchlists, discover new anime, and receive personalized recommendations, all from a single platform.","archived":false,"fork":false,"pushed_at":"2025-07-14T01:45:16.000Z","size":10943,"stargazers_count":64,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-14T04:03:27.689Z","etag":null,"topics":["anime","self-hosted","watchlist"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaypyles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2025-04-13T19:27:41.000Z","updated_at":"2025-07-14T01:45:14.000Z","dependencies_parsed_at":"2025-07-14T03:08:06.337Z","dependency_job_id":"637bfa48-c861-460e-8d3e-05288265ce09","html_url":"https://github.com/jaypyles/anirra","commit_stats":null,"previous_names":["jaypyles/anirra"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/jaypyles/anirra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaypyles%2Fanirra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaypyles%2Fanirra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaypyles%2Fanirra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaypyles%2Fanirra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaypyles","download_url":"https://codeload.github.com/jaypyles/anirra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaypyles%2Fanirra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279276037,"owners_count":26138688,"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","status":"online","status_checked_at":"2025-10-17T02:00:07.504Z","response_time":56,"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":["anime","self-hosted","watchlist"],"created_at":"2025-05-14T18:13:52.413Z","updated_at":"2025-10-17T03:18:25.205Z","avatar_url":"https://github.com/jaypyles.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Anirra\n\nAnirra is a completely self-hosted anime watchlist, search, and recommendations app. It allows anime enthusiasts to manage their watchlists, discover new anime, and receive personalized recommendations, all from a single platform.\n\n## Features\n\n- **Watchlist Management**: Keep track of the anime you plan to watch, are currently watching, or have completed.\n- **Search Functionality**: Easily search for anime by title or tags.\n- **Personalized Recommendations**: Get suggestions based on your watchlist and preferences.\n- **Integration with Sonarr and Radarr**: Seamlessly add series and movies to your media server.\n- **Convert your MAL list**: Upload your MAL XML file from [MAL XML Exporter](https://myanimelist.net/panel.php?go=export), and easily move to using Anirra.\n- **Rate your Anime**: Easily rate your anime when you're done watching.\n- **Export your watchlist**: Easily export your watchlist if you were to ever choose to leave Anirra.\n\n## Screenshots\n\nTo give you a better idea of what Anirra looks like, here are some screenshots of the app in action:\n\n### Main Page (Logged In)\n![Main Page](docs/images/main-page-logged-in.png)\n\n### Anime Page\n![Anime Page](docs/images/anime-page.png)\n\n### Search Page\n![Search Page](docs/images/search-page.png)\n\n### Watchlist Page\n![Watchlist Page](docs/images/watchlist-page.png)\n\n### Sonarr Integration\n![Sonarr](docs/images/sonarr.png)\n\n### Radarr Integration\n![Radarr](docs/images/radarr.png)\n\n## Launching the App\n\nTo launch the app, use the `docker-compose.yml` file located in the root directory of the project. Ensure you have `make` and `docker` installed, then run the following command in your terminal:\n\n```bash\nmake pull up\n```\n\n### Default User Credentials\n\nThe default user credentials are:\n\n```\nuser: admin\npassword: admin\n```\n\nBut if you would like to, you can create a new user with a more secure password.\n\n## Configuration\n\nThere are a few set of environment variables you can use to customize the app (all are completely optional). \n\n```\nAPP_LEVEL=(DEV || PROD) # defaults to PROD in the docker-compose.yml\nDATABASE_URL=whatever you want here if you don't want to use the sqlite database that the app comes with\nJSON_DATA_PATH=wherever the `anime_offline_database.json` is located, by default its at /data\nJWT_SECRET=a secret used to encode the user jwt\nAPI_URL=if you somehow got the api to run anywhere else\nNEXTAUTH_SECRET=a secret used to encode the next jwt\n```\n\n### Sonarr and Radarr configuration\n\nSetup the `config.yaml` at the root of the project:\n\n```yaml\nsonarr:\n  url: http://\u003cip_or_address\u003e:\u003cport\u003e\n  api_key: 123456\n\nradarr:\n  url: http://\u003cip_or_address\u003e:\u003cport\u003e\n  api_key: 123456\n```\n\n## Example Docker Compose\n\n```yaml\nservices:\n  anirra:\n    container_name: anirra\n    image: jpyles0524/anirra:latest\n    build:\n      context: .\n      dockerfile: Dockerfile\n    command: bash /start.sh\n    environment:\n      - APP_LEVEL=PROD\n      - NEXTAUTH_URL=\u003cyour_deployment_url\u003e\n    volumes:\n      - ./data:/project/data\n      - ./config.yaml:/project/config.yaml\n    ports:\n      - 3000:3000\n      - 8000:8000\n```\n\n## Coming Soon\n\n- **Mobile Support**: Simplified UI for mobile viewing\n- **Watchlist Rating**: Rate the anime and get better recommendations based off of what you like\n- **Jellyfin Integration**: Automatically sync the anime you are watching on Jellyfin\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaypyles%2Fanirra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaypyles%2Fanirra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaypyles%2Fanirra/lists"}