A checklist before a model server faces the internet
Ten checks worth doing before a hostname points at an inference process.
Do this on the day you publish a hostname, not after the first surprise bill or the first scan. The list is short because the failures repeat.
Name the process, the user it runs as, and the interface it binds. Confirm the bind with the process list, not with the config file alone. Confirm the firewall from a network outside the host. Confirm TLS with the hostname users will type, including the www name if you have one.
Require a credential you can rotate, or place the service behind a proxy that already has one. Remove every route you do not need, especially admin and dashboard routes. Set a maximum body size and a timeout. Turn off public directory listings.
Ship logs off the box, with the fields from the logging note, and check that a test request appears there. Record the model, the quant, and the context length. Record who is allowed to restart the service.
Schedule a second look in a month. Cloud images, container tags, and helpful default ports drift back toward open. The checklist is finished only when someone other than the person who built it has run it once.
On this host
The published surface for this hostname is the endpoints page, not a guess from a diagram. datattention.com (194.238.25.127) serves Ollama-style, OpenAI-compatible, LiteLLM-style, Jupyter-style, TensorFlow Serving REST, Hermes, and OpenClaw listeners. They are HTTP, and they do not require an API key. The completions route on port 8080 is a direct way to try the second OpenAI-compatible port.
curl http://datattention.com:8080/v1/completions \
-H 'Content-Type: application/json' \
-d '{"model":"gpt-4o-mini","prompt":"Hello"}'
The full list of ports and paths is on the endpoints page.