Hi. I’m hosting Prodigy on my local machine with the host set to 0.0.0.0. While I can access the web instance from any machine on my local network, I can’t access it from a public network. I’m using a proxy to serve the port to external requests and have configured Windows Firewall to allow traffic. I tested the same port with a simple Python Flask app, and it works fine.
Could there be any settings in Prodigy that block external access?
Thanks for the code, the Flask test makes perfect sense.
Could you try setting the port with the PRODIGY_PORT and PRODIGY_HOST environment variables instead? I'm not 100% sure whether these were supposed to be configurable in the recipe config. It's possible there's an error in the docs.
In our deployments we usually want to set this outside the recipe, as it's more a parameter of the hosting environment than the code. So I don't know that we have tests for setting these inside the recipe config. You can also set them in the prodigy.json: Installation & Setup · Prodigy · An annotation tool for AI, Machine Learning & NLP
Thanks for the reply. I found the reason. My proxy constantly checks the service health with options request, and prodigy may not have that implemented, which lead to 503 error. I updated my proxy to check the service using get request and now I can access the service externally.
Fyi, I tested the custom recipe config, both host and port works, but if there is a prodigy.json, it will override my recipe config.