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:
| Option | Best for | Updates | Customization | Subdirectory hosting |
|---|---|---|---|---|
| GitHub Pages | Operators without hosting | Automatic | Config, theme, data, HTML metadata | Handled automatically |
| CDN Deployment (recommended) | Most operators | Automatic | Config, theme, data | Requires one config line (BASE_PATH) |
| Pre-built Release | Controlled rollouts, airgapped | Manual (re-download) | Config, theme, data, HTML metadata | Works out of the box |
| Building from Source | Developers, forks | Manual (git pull + build) | Everything | Works 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.
What you’ll need
Section titled “What you’ll need”Apart from GitHub Pages, which is edited in the browser, every option needs:
- The project files — a release or a clone of the repository, depending on the option.
- A text editor for
config.js,theme.cssandphone_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.