Post Installation Actions
After deploying HEAVY.AI — whether via the Build from Source path or the Migration from Legacy Enterprise Edition path — complete the following actions before going live. None of these are strictly required for a functional installation, but all are strongly recommended for security and usability.
Manage API Keys
Immerse requires two API keys for full map chart functionality: a Mapbox access token and a Google Maps Geocoding API key.
Obtain a Mapbox Access Token
Mapbox provides basemap tiles for pointmap, choropleth, linemap, and other geo charts.
- Sign in at account.mapbox.com.
- Open Tokens → Create a token and give it a descriptive name.
- Use a public token (begins with
pk.). Do not use a secretsk.token — Immerse runs in the browser. - Enable at minimum these scopes:
STYLES:READ,STYLES:TILES,FONTS:READ,DATASETS:READ.DATASETS:READis only required if you use custom Mapbox Studio styles.
- Optionally add URL restrictions to limit where the token can be used:
- Copy the token and add it to heavy.conf
Warning: Mapbox charges per map load and tile request beyond the free tier. URL restrictions and your own token are strongly recommended over any shared or vendor-supplied default.
Offline alternative: If you cannot or do not want to use Mapbox, leave mapbox-token out of heavy.conf and set "offline": true in servers.json to use built-in country-outline basemaps instead.
Obtain a Google Maps Geocoding API key
The Google Maps Geocoding API powers the zoom-to address search box on map charts.
- Open Google Cloud Console and create or select a project.
- Go to APIs & Services → Library, search for Geocoding API, and enable it.
- Go to APIs & Services → Credentials → Create credentials → API key.
- Copy the key.
- Apply key restrictions appropriate for your IT policy:
- Under Application restrictions, HTTP referrer restrictions are generally preferable to IP restrictions for browser-side keys — the key is used directly within the end user’s browser, so any IP-based restrictions must account for the full range of your users’ client IP addresses rather than server IPs:
- Under API restrictions, limit to Geocoding API only.
- Ensure billing is enabled on the project. Google requires this even when usage stays within the free credit tier.
- Add the key to
heavy.confas shown above.
Offline alternative: Leave google-api-key out of heavy.conf and set "ui/enable_local_geocoder": true in feature_flags (inside servers.json) to use the HeavyAI /geocoder endpoint (requires server-side geocoder support).
Configure API keys in heavy.conf
Both API keys are set in the [web] section of heavy.conf:
Restart the service after editing heavy.conf for changes to take effect:
Configure servers.json
Immerse’s default connection behavior, feature flags, UI element visibility, and branding are all controlled through a servers.json file.
Step 1: Reference servers.json in heavy.conf
In the [web] section of heavy.conf, add:
Step 2: Create servers.json
Create servers.json in your storage directory. At minimum, set the default database connection:
Installing libgeos
In order to use ST_* SQL functions, you will need to have the libgeos installation package. There are a few possible scenarios based on your use case:
- If you built heavydb from source, the dependency container build process creates a libgeos package for you. In order to install it, you can simply unpack the generated archive to the correct location as below:
- If you are migrating from an old version of HeavyAI, you likely already have them installed in this exact location. Any version previously used with HeavyDB 8.4-9.0 will still work.
- If you are not using an ST_* database functions, you are not required to have the libgeos libraries installed.
- You can manually compile libgeos libraries if required.
Change the Admin Password
The default admin password (HyperInteractive) must be changed before exposing HeavyAI to any users.
Via Immerse: Log in as admin using the default password, then navigate to Admin Portal → Users → admin → Edit and set a new password. You can also add and manage additional users from this interface.
Via heavysql (Docker):
Via heavysql (systemd):
Launch Configurations
HeavyAI can be configured to startup automatically using either Docker or your host operating system. Below is some guidance for initialization in different scenarios, as well as reference configurations:
Bare-Metal Installation
For bare-metal deployments without Docker, extract the HeavyAI release archive to your target path (typically /opt/heavyai) and configure systemd services using the provided installation script.
- Extract the binary package to
/opt/heavyai-<version>:
- Create or update the symbolic link
/opt/heavyaito point to the active version directory:
- Run the systemd installation script from
<HEAVYAI_PATH>/systemdto register service definitions:
- Enable and start the
heavydbandheavy_web_serversystemd services:
By using the /opt/heavyai symlink, systemd service files remain static across platform upgrades. During an upgrade, update the symlink to the new directory version and restart services without reinstalling unit files:
Docker Compose Installation
Single Container
For basic deployments, HeavyAI can be run within a single Docker container containing both heavydb and heavy_web_server services managed together.
Example minimal docker-compose.yml file
Example minimal heavy.conf file
See configuration parameters for heavydb, heavy web server.
Example minimal servers.json file
See HeavyImmerse Customization.
Troubleshooting
References
- Configuration Parameters Overview
- Configuration Parameters for HEAVY.AI Web Server
- Using Services
- Using Utilities
- HeavyAI Immerse Customization Guide — servers.json reference, feature flags, UI keys, branding, custom basemaps
- Mapbox access tokens
- Google Geocoding API