Skip to content

Choosing a Deployment

modernGraphTool supports four deployment paths. The first question is whether you already have a web server — if not, GitHub Pages gives you one for free. After that, pick based on how much control you need over updates and customization:

OptionBest forUpdatesCustomizationSubdirectory hosting
GitHub PagesOperators without hostingAutomaticConfig, theme, data, HTML metadataHandled automatically
CDN Deployment (recommended)Most operatorsAutomaticConfig, theme, dataRequires one config line (BASE_PATH)
Pre-built ReleaseControlled rollouts, airgappedManual (re-download)Config, theme, data, HTML metadataWorks out of the box
Building from SourceDevelopers, forksManual (git pull + build)EverythingWorks out of the box

Everything that isn’t the app bundle itself — data, config, theme — is identical across the options, so switching later is a matter of swapping index.html, not redoing your database.

Free hosting from GitHub, set up entirely in your browser — no server, no FTP, and nothing to install. You copy a template repository that already contains a working site, switch Pages on, and replace the demo measurements with your own. Under the hood it’s CDN deployment, so updates are automatic and the BASE_PATH problem below is solved for you.

This requires a public repository, so it isn’t an option for a private database.

Your server hosts only a minimal index.html loader plus your config.js, theme.css, data/, and assets/. The application code itself comes from jsDelivr and auto-updates when new versions ship. This is the simplest path — no manual updates, no re-uploads.

If your site lives under a subdirectory like /headphones/ (common on squig.link, where operators often run a root earphones database plus a /headphones/ headphones database on the same subdomain), you’ll need to set CDN_MODE.BASE_PATH in your config — it’s a one-line change, but easy to miss. See the CDN deployment guide for details.

Download a full dist/ folder and upload it to your server. You control exactly which version runs and when it changes — no runtime dependency on jsDelivr, works in airgapped environments, subdirectory hosting works without any extra config. The tradeoff is that updating to a new release means re-downloading and re-uploading.

Clone the repository, customize anything you like, and build your own dist/ folder. This is the developer path — use it if you need changes that go beyond what config.js exposes.

Apart from GitHub Pages, which is edited in the browser, every option needs:

  1. The project files — a release or a clone of the repository, depending on the option.
  2. A text editor for config.js, theme.css and phone_book.json. Visual Studio Code is free on Windows, macOS and Linux, and highlights mistakes as you type.

The Config Editor, phone_book.json Editor and Theme Generator cover most edits without hand-writing any of these files.