{"id":25922011,"url":"https://github.com/nickheyer/discoflix","last_synced_at":"2025-03-03T16:16:59.684Z","repository":{"id":50442874,"uuid":"385112600","full_name":"nickheyer/DiscoFlix","owner":"nickheyer","description":"A simple media-requesting, Radarr/Sonarr-interfacing, movie and tv show-listing Chat Bot web-app for your media server.","archived":false,"fork":false,"pushed_at":"2025-03-02T04:54:10.000Z","size":107717,"stargazers_count":52,"open_issues_count":6,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T05:26:30.774Z","etag":null,"topics":["discord","emby-server","javascript","media","plex","python","radarr","sonarr","telegram"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nickheyer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2021-07-12T03:20:08.000Z","updated_at":"2025-02-03T02:01:27.000Z","dependencies_parsed_at":"2024-06-02T06:39:31.630Z","dependency_job_id":"514b360a-4424-4af1-97f2-d10cc0cef5fc","html_url":"https://github.com/nickheyer/DiscoFlix","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickheyer%2FDiscoFlix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickheyer%2FDiscoFlix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickheyer%2FDiscoFlix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickheyer%2FDiscoFlix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nickheyer","download_url":"https://codeload.github.com/nickheyer/DiscoFlix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241696160,"owners_count":20004748,"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":["discord","emby-server","javascript","media","plex","python","radarr","sonarr","telegram"],"created_at":"2025-03-03T16:16:58.637Z","updated_at":"2025-03-03T16:16:59.668Z","avatar_url":"https://github.com/nickheyer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DiscoFlix\n![image](https://user-images.githubusercontent.com/60236014/230698969-6d09c60e-b265-4ef2-8e79-08140e04d3bc.png)\n\n\n### The ideal way for you and your users to request media via Discord.\nCompatible with Radarr \u0026 Sonarr. Includes a [REST API](https://www.postman.com/galactic-equinox-215583/workspace/discoflixpublic/documentation/23251960-1f000df7-56aa-495e-9a00-fd0eeefe33ab).\n\n\u003chr /\u003e\n\n![Peek 2023-04-07 20-39](https://user-images.githubusercontent.com/60236014/230701633-986cf0d0-0534-498e-8f4b-26e413c2b241.gif)\n\n\u003chr /\u003e\n\u003cbr /\u003e\n\n\n## General Requirements\nRunning the discord bot requires a [discord developer account](https://discord.com/developers/applications), and a bot created/invited (via your developer account) to your chosen discord server.\n\nAs this application is intended to interface with [Sonarr](https://sonarr.tv) and [Radarr](https://radarr.video), you will need one or both installed. If you are installing to a machine that is not also hosting your Radarr/Sonarr, you must be able to access Radarr/Sonarr from the host (locally or remotely).\n\n\u003cbr /\u003e\n\n\n## Installation (Recommended Method)\n\n### Linux (Fully Automated)\n\n```bash\nwget https://raw.githubusercontent.com/nickheyer/DiscoFlix/main/auto_install_update.sh\nsudo ./auto_install_update.sh\n```\n\n### Installation Using Docker CLI (All Operating Systems)\n\n\n#### Download Docker Image\n\nTo get the latest version of Discoflix, run:\n\n```bash\ndocker image pull nickheyer/discoflix:latest\n```\n\n#### Run Docker Container\n\nTo run Discoflix in a container, use the following command. Make sure to mount a volume to `/app/data` in the container so that your data persists across container restarts. Here's how to do it:\n\n**Example**:  \n```bash\ndocker run -d -p 5454:5454 --name discoflix -v /opt/discoflix/data:/app/data nickheyer/discoflix\n```\n\n**On Other Platforms**:  \nYou can replace `/opt/discoflix/data` with an appropriate path on your local system. For Windows and macOS, specify the full path you want to use for data storage.\nThis allows DiscoFlix's database to remain on your pc even if you delete or update your container!\n\n##### The server within the docker container can be accessed locally at [http://127.0.0.1:5454](http://127.0.0.1:5454)\n\n\n### Installation Using Docker-Compose\n\n#### Prep\n\nFirst, get the compose file:\n\n```bash\nmkdir -p /opt/discoflix/data \u0026\u0026 cd /opt/discoflix\nwget https://raw.githubusercontent.com/nickheyer/DiscoFlix/main/docker-compose.yml\n```\n\n#### Start the Container Using Docker Compose\n\nWith Docker Compose installed on your system, you can start Discoflix by running:\n\n```bash\ndocker-compose -f /opt/discoflix/docker-compose.yml up -d\n```\n\nThis will pull the latest Discoflix image and run it, mounting the volume specified in the `docker-compose.yml` file. This will use the default /opt/discoflix/data, so modify this path if needed.\n\n##### The server within the docker container can be accessed locally at [http://127.0.0.1:5454](http://127.0.0.1:5454)\n\n**To stop the service**, use:\n\n```bash\ndocker-compose -f /opt/discoflix/docker-compose.yml down\n```\n\n\u003chr /\u003e\n\u003cbr /\u003e\n\n\n## Installation From Source (Not Recommended)\n\n### Prerequisites, Dependencies, and Requirements\n**_NOTE:_**  Installation from source using Windows has been deprecated with the introduction of web-socket functionality, gevent, and other integral parts of this application that are not currently supported by Microsoft.\n\n1. Python - Download and install Python [here](https://www.python.org/downloads/). Make sure that you choose \"Add Python to environmental variables\" during installation.\n2. Git - Download and install Git [here](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)\n\n### Next Steps\n\n1. Change directory to preferred install location\n```bash \ncd /where/you/want/this/installed\n```\n\n2. Clone DiscoFlix\n\n```bash \ngit clone https://github.com/nickheyer/DiscoFlix\n```\n \n3. Change directory to DiscoFlix\n```bash \ncd ./DiscoFlix\n```\n\n4. Install Requirements\n```bash \npip install -r requirements.txt\n```\n\n5. Run Migrations\n```bash \npython manage.py migrate\n```\n\n6. Run DiscoFlix\n```bash\nsh ./run.sh\n```\n\n\u003chr /\u003e\n\u003cbr /\u003e\n\n## General Instructions\n\n\n### Accessing The Web-UI\n\n![Peek 2023-04-07 20-49](https://user-images.githubusercontent.com/60236014/230701931-2bf15aaa-93e5-4060-89a8-60233f0ac211.gif)\n\n#### *You will need to get the IP address of the computer hosting DiscoFlix. On Windows, you would typically type `ipconfig` on the host machine and look for your `ipv4`.*\n\n\u003e If you are hosting DiscoFlix (using Docker) on the same machine that you are hosting Radarr \u0026 Sonarr, you might not be able to access your Radarr \u0026 Sonarr using `http://localhost:\u003cport\u003e`, as that would be referencing the localhost of the docker container itself. Instead, use `http://host.docker.internal:\u003cport\u003e` - consider this the `localhost` of the machine hosting the docker container. In some cases, this may not be an issue.\n\n#### *If you would like to access DiscoFlix remotely, as in not on the same network as the host machine, you will need to do some port forwarding to expose port 5454 to the internet. Run into trouble? Feel free to join the [Discord](https://discord.com/invite/6Z9yKTbsrP)!*\n\n\u003chr /\u003e\n\n### Configuration\n\n![Peek 2023-04-07 19-50](https://user-images.githubusercontent.com/60236014/230700291-5b3149af-2eb6-4d41-99d9-50c93a5049b7.gif)\n#### *DiscoFlix requires a small amount of configuration before you can begin making requests. Discord Token + Radarr and/or Sonarr URL and Token, depending on your use case. If you plan to only use Radarr, disable the Sonarr switch in your configuration menu. Same goes for only using Sonarr.*\n\n\u003chr /\u003e\n\n#### *To get your Discord Token, go to the \"bot\" tab in your developer portal. You may need to click \"reset Token\" and/or enter authentication code if you have 2FA enabled. Make sure to enable all `Privileged Gateway Intents`)*\n![Peek 2023-05-22 22-06](https://github.com/nickheyer/DiscoFlix/assets/60236014/b197418d-ef70-4a74-9b0d-d43d6802f45b)\n\n#### *If you haven't already, now is also a good time to invite the bot to the server or servers you would like to monitor, you can do that via the Discord Developer Portal. Admin access is the only level we have tested. Anything less may result in errors.*\n![Peek 2023-04-07 20-01](https://user-images.githubusercontent.com/60236014/230700480-36a89984-59ea-4c65-a269-1d4e34230872.gif)\n\n\u003chr /\u003e\n\n\u003cbr /\u003e\n\n## Usage\n\n\n### Add Yourself As An Admin\n\n![Peek 2023-04-07 20-10](https://user-images.githubusercontent.com/60236014/230700808-3e6c6663-4d42-467f-9130-542f054b73ce.gif)\n\n\n\n\n### Test That The Bot Is Running\n\nType the following into a discord chat message that the bot can see:\n\n```\n!df test\n```\n\n![Peek 2023-04-07 20-15](https://user-images.githubusercontent.com/60236014/230700917-a54846b6-804c-461f-83df-fa2c6b003e64.gif)\n\n### Your First Request\nTest that the bot is able to access Radarr/Sonarr by making your first test request. Let's use \"Dark Phoenix\" as an example.\n\n```\n!df movie Dark Phoenix\n```\n![Peek 2023-04-07 20-21](https://user-images.githubusercontent.com/60236014/230701093-3d2afff4-605a-4f04-97af-446fba9e79c7.gif)\n\nWe can also test our Sonarr requests. Let's try \"Cyberpunk Edgerunners\".\n\n```\n!df show Cyberpunk Edgerunners\n```\n![Peek 2023-04-07 20-23](https://user-images.githubusercontent.com/60236014/230701137-9c13eb0d-88b1-4fce-9479-e3288742f615.gif)\n\n*Looks like we already have that on our server, or it's already being monitored!*\n\n\n### Available Commands\n\nTo see the commands available to you, type `!df help`. DiscoFlix should respond with a table containing some or all of the below commands.\n\n\n| Command | Aliases                       | Description                               | Usage                     |\n|---------|-------------------------------|-------------------------------------------|---------------------------|\n| Test    | test                          | Confirm bot is on and listening           | `!df test`           |\n| Help    | help                          | Display all authorized commands.          | `!df help`                |\n| Echo    | echo                          | Confirm bot is handling input as intended.| `!df echo \u003ctext to echo\u003e`|\n| Error   | error, err, raise             | Confirm bot is handling errors as intended| `!df error [-s]`          |\n| Log     | log, add-log                  | Confirm bot is logging information to console as intended | `!df log \u003ctext to log\u003e`|\n| Movie   | movie, add-movie              | Request a movie                           | `!df movie \u003ctitle\u003e`       |\n| Show    | show, add-show, tv-show, add-tv-show, tv, tvshow | Request a tv-show   | `!df show \u003ctitle\u003e`         |\n| User    | user, add-user, add | Add a user   | `!df user \u003cuser_to_add\u003e`         |\n\n\u003e The above commands assume that your command prefix is set to the default `!df`. Adjust accordingly.\n\n\u003e Keep in mind that you will need to mark yourself as \"server owner\" in the user control panel to use the debug commands.\n\n\u003cbr /\u003e\n\n## API\n\n[![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/23251960-1f000df7-56aa-495e-9a00-fd0eeefe33ab?action=collection%2Ffork\u0026collection-url=entityId%3D23251960-1f000df7-56aa-495e-9a00-fd0eeefe33ab%26entityType%3Dcollection%26workspaceId%3Ded14656f-43d1-4444-affa-ebb323d67835)\n\nOr just view the [docs](https://www.postman.com/galactic-equinox-215583/workspace/discoflixpublic/documentation/23251960-1f000df7-56aa-495e-9a00-fd0eeefe33ab).\n\n\u003cbr /\u003e\n\n## Further Notes\n\n\n- For any other comments or questions, feel free to reach me on discord via NicholasHeyer#4212\n- Feel free to join the [Discord](https://discord.com/invite/6Z9yKTbsrP)!\n\n\n\u003cbr /\u003e\n\n## Authors\n\n- [@nickheyer](https://www.github.com/nickheyer)\n\n\n## Contributing\n\nContributions are always welcome!\n\nEmail `nick@heyer.app` for ways to get started.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickheyer%2Fdiscoflix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnickheyer%2Fdiscoflix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickheyer%2Fdiscoflix/lists"}