Naidan
Guides

Serve the Hosted ZIP with your own HTTP server

The Hosted ZIP lets you serve Naidan’s interface from your own HTTP server. Start on this computer with Python, then use the same extracted files with another static server if you prefer.

Open the latest release (external site)

Open Naidan from the extracted ZIP

  1. Download and extract the Hosted ZIP

    On the release page, select the Hosted asset. For example, a v0.24.1 release has naidan-hosted-v0.24.1.zip rather than the Standalone ZIP. Extract the whole archive.

    Inside, the versioned folder is naidan-hosted-0.24.1/ in this example. Keep index.html and its assets together.

  2. Serve the folder containing index.html

    Open a terminal in the extracted folder that contains index.html, then run:

    python3 -m http.server 8000 --bind 127.0.0.1

    This step requires Python 3. On Windows, if the python3 command is unavailable, run py -m http.server 8000 --bind 127.0.0.1 instead.

    Leave this terminal running while you use Naidan. Press Ctrl+C there to stop the server.

  3. Open the local address in your browser

    In your browser, open http://127.0.0.1:8000/. The Naidan screen confirms that the files are being served.

Use another static server

With Nginx, npx serve, or another static HTTP server, publish the directory containing index.html and its supporting files at your chosen URL or path, then open that URL in the browser. If the parent directory is published, the app can also live at a subpath; open the path to the versioned folder. On a non-loopback HTTP address, browser features that require a secure context may be unavailable; use HTTPS if you need them.

Choose a model after the screen opens

The static server sends app files to your browser. It does not run inference. To get an answer, prepare a supported model in your browser or connect a separately running engine such as Ollama. Select the model in Naidan and send a short message to check it.

The HTTP server supplies the interface files. Naidan runs in the browser; a browser model or a separate inference engine produces the answer.

Follow the in-browser model guide, the GGUF setup guide, or the local engine guide for the next steps.

Why use the Hosted ZIP?

An HTTP URL gives the page a normal web origin. A directly opened file:// page can send Origin: null, which some inference servers reject under their CORS rules. An HTTP origin does not grant every connection automatically: the browser and the chosen inference server still apply their connection rules.

Update the files at the same address

Extract the newer Hosted ZIP into its own folder. Stop the Python server with Ctrl+C, start it from the new folder containing index.html on the same address and port, then reopen the same URL. With another static server, switch the published files while keeping the app URL and base path the same.

Browser-stored data belongs to the site origin (scheme, host, and port), not the extracted folder. Keep the same origin for stored conversations, subject to the storage mode you selected: Ephemeral loses its chats and settings on reload. If you change origins, back up the conversation data you need first. That backup does not include downloaded model files or model caches.

If Naidan shows an update notice, follow its instructions. For the PWA preparation and offline check, see Use Naidan offline as a PWA. That guide uses the public Hosted address as its example. For your own server, use the same served URL and browser throughout the check. Having a ZIP alone does not confirm offline operation.