I developed a dashboard using JupyterDas for my work. My boss asked me how make other people use the dashboard within a company without installation of python and dash? I heard I can host it on a local server. How to do it? I did ask our IT and they don’t have any experience on it. Thanks
You just need a little WSGI knowledge. Covert Judah to a regular Dash. Drive it with gunicorn or uwsgi. Then let your IT colleague set up the proxy for you.
Thanks. I tried and got an error: ConnectionError: HTTPConnectionPool(host=‘0.0.0.0’, port=8888): Max retries exceeded with url: /_alive_4627937e-8baf-491f-89af-2cfafecf935c (Caused by NewConnectionError(’<urllib3.connection.HTTPConnection object at 0x000002D35679BCA0>: Failed to establish a new connection: [WinError 10049] The requested address is not valid in its context’))
Hi roudan,
first you have to move your code to regular script.py file, out of Jupyter.
When you have it done and running you have to share this with others. To do that your code, or rather output of your code must be available on your local network. Much depends on how big is your company. If just few people you can, I think, get away with development server (that one that gives you this warning about being not suitable for production). If there is more people itching to have a look at your app you should replace dev. server with smth like uWSGI or gunicorn to serve your app. If company is really big you should put smth like Apache or nginx in front of it.
If you haven’t done this before this process may take time and cause serious headaches. Your best option is to pass it on somebody from IT.
You also may consider publishing your app outside your local network - in public space. I think Adam has a tutorial how to publish dash app on Heroku (just check if legally everything is ok).
Rather do not expect a simple, one post, solution. You may find some tutorial that you can follow step by step and it will work for you - I highly doubt that - too much depends on local conditions (including how useful your app is and how much you want to spend on implementation).
Thinking… you may ‘simply’ dockerize your app and distribute among coworkers, but this involves installing dockerengine on each machine - then you do a keybinding or set a launcher so nobody has to deal with technicals… I guess there are other possibilities I can’t think of at the moment. If you have no experience it will be hard for you to see big picture. Not an easy task.
Sounds like a network connectivity error where your app is not able to make a web request successfully. Many reasons why this could be the case, such as being behind a Proxy and your environment not being configured to use it.
Try and see if you can run other command line tools that make external web connections in order to check. (could test using a couple of lines of Python using urllib3 to directly send a web request)
Hi Jim, it didn’t work, here is the error: ConnectionError: HTTPConnectionPool(host=‘0.0.0.0’, port=8888): Max retries exceeded with url: /_alive_4627937e-8baf-491f-89af-2cfafecf935c (Caused by NewConnectionError(’<urllib3.connection.HTTPConnection object at 0x000002D35679BCA0>: Failed to establish a new connection: [WinError 10049] The requested address is not valid in its context’))
Might be a little later here, but have you resolved your issue? if not, instead of using 0.0.0.0 try using your local adress (run an ipconfig and find it)
Thanks Anthony, yes if I use IPv4 address (from inconfig), no error in my pc and I can open the dashboard. Then I tried to log in from my the other pc using same IP address, it doesn’t work. It says this site cannot be reached. any suggestion? Thanks
Thanks anyone, I am still struggling with this issue. I heard that I can setup a local server that everyone in my department can access? how to set up this kind of server? Thanks
Can you try to use port 80 instead of 8888 and make sure everyone uses http and not https? I think the issue should be handled with your network administrator as since it’s at work it’s not a regular network, they might be limiting some things.
Thanks Anthony. I always got an error of port 80 already in use, , the error was: OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions. I tried port 81 then it is fine in my pc but same not connection from the other pc. any suggestion? Thanks
FWIW - We built Dash Enterprise for companies like yours -
Here’s how it works:
Contact us to get a software license for your company.
Install - We work with your company’s IT dept to install the Dash Enterprise platform on your server(s): Your IT department will provision a TLS certificate, a domain name, and a server(s) and then run the Dash Enterprise installation script (and our installation team is on standby to help out).
Upload & Share - Once installed, you simply log in to an internal company URL that hosts Dash Enterprise and upload your code to the platform to share the Dash app to your colleagues: no fuss.
Restrict Access - Plus, you can restrict access to certain people in your company if your data is sensitive within the Dash Enterprise UI.
Dash Enterprise comes with a ton of other features too, but sharing an app internally on restricted networks was the very first feature we built on the platform.
Port 80 is normally the http port, I suggested using it because a lot of entreprise admins block non standard ports. If your PC says it’s being used, that must mean there already is a web server running on your PC or some weird network configuration. Can you check what’s on port 80 or 443(https)?