Hi @Bryan, thanks for getting back to me. Yes you’re right, my description was a bit poor.
The UI renders a couple of bits of static content (images) but fails to do anything else. Thinking further, I believe you are right, I need to take things up with the Panel project next.
(I hadn’t heard of Traefik until a year or so ago either, but now, having used it in front of our docker infrastructure, I’m super impressed, and their development progress seems good.)
Your notes about following the proxy needing to be configured to handle websockets may be helpful, I’ll follow that line next. I’ve changed the logging level in Panel from “error” to “trace”. There are bokeh log messages coming out there. But is there a more specific way of getting Bokeh logs? Or again is that more of a qustion for the Panel guys? These are the kind of logs I’m getting:
2021-10-31 21:17:19,113 Starting Bokeh server version 2.3.3 (running on Tornado 6.1)
2021-10-31 21:17:19,115 Host wildcard '*:9002' will allow connections originating from multiple (or possibly all) hostnames or IPs. Use non-wildcard values to restrict access explicitly
2021-10-31 21:17:19,118 User authentication hooks NOT provided (default user enabled)
2021-10-31 21:17:19,118 These host origins can connect to the websocket: ['*:9002']
2021-10-31 21:17:19,119 Patterns are:
2021-10-31 21:17:19,120 [('/oscillator_simulator_app/?',
2021-10-31 21:17:19,120 <class 'panel.io.server.DocHandler'>,
2021-10-31 21:17:19,120 {'application_context': <bokeh.server.contexts.ApplicationContext object at 0x7ff909c22790>,
2021-10-31 21:17:19,121 'bokeh_websocket_path': '/oscillator_simulator_app/ws'}),
2021-10-31 21:17:19,121 ('/oscillator_simulator_app/ws',
2021-10-31 21:17:19,121 <class 'bokeh.server.views.ws.WSHandler'>,
2021-10-31 21:17:19,121 {'application_context': <bokeh.server.contexts.ApplicationContext object at 0x7ff909c22790>,
2021-10-31 21:17:19,121 'bokeh_websocket_path': '/oscillator_simulator_app/ws',
2021-10-31 21:17:19,121 'compression_level': None,
2021-10-31 21:17:19,121 'mem_level': None}),
2021-10-31 21:17:19,121 ('/oscillator_simulator_app/metadata',
2021-10-31 21:17:19,121 <class 'bokeh.server.views.metadata_handler.MetadataHandler'>,
2021-10-31 21:17:19,121 {'application_context': <bokeh.server.contexts.ApplicationContext object at 0x7ff909c22790>,
2021-10-31 21:17:19,121 'bokeh_websocket_path': '/oscillator_simulator_app/ws'}),
2021-10-31 21:17:19,122 ('/oscillator_simulator_app/autoload.js',
2021-10-31 21:17:19,122 <class 'panel.io.server.AutoloadJsHandler'>,
2021-10-31 21:17:19,122 {'application_context': <bokeh.server.contexts.ApplicationContext object at 0x7ff909c22790>,
2021-10-31 21:17:19,122 'bokeh_websocket_path': '/oscillator_simulator_app/ws'}),
2021-10-31 21:17:19,122 ('/resources/(.*)',
2021-10-31 21:17:19,122 <class 'tornado.web.StaticFileHandler'>,
2021-10-31 21:17:19,122 {'path': '/usr/src/app/resources'}),
2021-10-31 21:17:19,122 ('/?',
2021-10-31 21:17:19,122 <class 'panel.io.server.RootHandler'>,
2021-10-31 21:17:19,122 {'applications': {'/oscillator_simulator_app': <bokeh.server.contexts.ApplicationContext object at 0x7ff909c22790>},
2021-10-31 21:17:19,122 'index': '/usr/local/lib/python3.8/site-packages/panel/io/../_templates/index.html',
2021-10-31 21:17:19,122 'prefix': '',
2021-10-31 21:17:19,122 'use_redirect': True}),
2021-10-31 21:17:19,122 ('/static/extensions/(.*)',
2021-10-31 21:17:19,122 <class 'bokeh.server.views.multi_root_static_handler.MultiRootStaticHandler'>,
2021-10-31 21:17:19,122 {'root': {'panel': '/usr/local/lib/python3.8/site-packages/panel/dist'}}),
2021-10-31 21:17:19,122 ('/static/(.*)',
2021-10-31 21:17:19,122 <class 'bokeh.server.views.static_handler.StaticHandler'>)]
2021-10-31 21:17:19,127 Bokeh app running at: http://localhost:9002/oscillator_simulator_app
2021-10-31 21:17:19,127 Starting Bokeh server with process id: 8
2021-10-31 21:17:34,143 Running stats log job
2021-10-31 21:17:34,143 [pid 8] 0 clients connected
2021-10-31 21:17:34,143 [pid 8] /oscillator_simulator_app has 0 sessions with 0 unused
2021-10-31 21:17:36,130 Running session cleanup job
2021-10-31 21:17:49,140 Running stats log job
snip, and then after hitting the site:
2021-10-31 21:28:19,138 [pid 8] /oscillator_simulator_app has 1 sessions with 1 unused
2021-10-31 21:28:22,132 Running session cleanup job
2021-10-31 21:28:25,131 Running keep alive job
2021-10-31 21:28:34,137 Running stats log job
2021-10-31 21:28:34,137 [pid 8] 0 clients connected
2021-10-31 21:28:34,137 [pid 8] /oscillator_simulator_app has 1 sessions with 1 unused
2021-10-31 21:28:39,133 Running session cleanup job
2021-10-31 21:28:39,133 Scheduling 1 sessions to discard
2021-10-31 21:28:39,133 Discarding session 'cPS1EOW1reHChbmF4sBsY4saYX1Z58f3Vvhrc0GHkTRk' last in use 30132.78970000008 milliseconds ago
2021-10-31 21:28:39,134 Deleting 1 modules for <bokeh.document.document.Document object at 0x7ff909c33370>
2021-10-31 21:28:39,157 Module <module 'bokeh_app_77dcdeae870d4677a6fa64127bc155db' from '/usr/src/app/oscillator_simulator_app.py'> has extra unexpected referrers! This could indicate a serious memory leak. Extra referrers: [<cell at 0x7ff909c33070: module object at 0x7ff90eb5e450>]
2021-10-31 21:28:39,233 Session 'cPS1EOW1reHChbmF4sBsY4saYX1Z58f3Vvhrc0GHkTRk' was successfully discarded
2021-10-31 21:28:49,138 Running stats log job
Ok, and I can also make sure I’m running the latest and greatest of Panel and Bokeh… so I’ll do that next.