Running Slicer on headless server (Installing Extensions and more...)

Ok, I moved to Slicer 4.11. Same procedure as before: installed slicer, installed extension, installed kernel. Kernel is available in Jupyter, but hangs in the connection and never becomes operational.

Usually when a kernel is hanging in the init / conn stage it’s a websocket issue, I had it before. But here the Python kernels are working, and Slicer 4.10 was working with the same webserver configuration. If I manually run the headless slicer it doesn’t crash, so it looks really like a communication problem.

Is there anything different between the two versions of Slicer and the extension?

Something I’ve noticed is that v. 4.11 has a kernel-configure.py script. Is that important? How do I run it?
Here’s my kernel.json:

{
    "display_name": "Slicer 4.11",
    "language" : "python",
    "argv": [
        "xvfb-run",
        "-a",
        "/opt/slicer/Slicer",
        "--no-splash",
        "--python-code",
        "connection_file=r'{connection_file}'; print('Jupyter connection file: ['+connection_file+']'); slicer.modules.jupyterkernel.startKernel(connection_file);slicer.util.mainWindow().showMinimized()"
    ]
}

My revision number is now 29074.

EDIT: it’s definitely a websocket problem, I get Javascript errors on the browser’s console.

EDIT #2: I have re-installed Slicer 4.10 in parallel, now I see both kernels. 4.10 works, 4.11 has WS issues.