Jupyter for model experiments, without a shared kernel
Use notebooks for exploration. Do not leave the notebook server on a public port.
A notebook is a good place to try a prompt, plot a latency number, or inspect a tokenizer. It is a poor place to serve traffic. The kernel can run whatever the notebook file contains, and the server that hosts it is an admin interface whether you think of it that way or not.
Run Jupyter on localhost, or on a host you reach through SSH. Port 8888 is the usual default. If that port answers on a public address, treat it as an incident, not as a convenience. Tokens in a URL are not a substitute for keeping the port private.
Give each person their own kernel. A shared kernel means a shared working directory and a shared set of secrets that someone exported into the environment. Separate users, separate home directories, and a requirement that tokens stay out of the notebook file.
When an experiment becomes a service, rewrite it as a small program with a fixed entry point. Copy the prompt template into the program on purpose. Do not point production at the notebook.
Shut the server down when the experiment is over. A notebook left running over a weekend is the one that still has yesterday’s credentials in memory.
On this host
The notebook-style server on this host is public on port 8888. No token is required. GET /api returns the version, and GET /api/status returns the idle status document. It is the Jupyter-shaped process on datattention.com, not a kernel shared with the chat ports.
curl http://datattention.com:8888/api/status
The full list of ports and paths is on the endpoints page.