Announcing DoltLab Enterprise Offline mode

DOLTLABFEATURE RELEASE
4 min read

Today we're excited to announce the release of DoltLab v2.3.5 which includes support for running DoltLab Enterprise in "offline" mode. Prior versions of DoltLab Enterprise, which support "online" mode only, required customers to allow egress access on their Enterprise hosts.

This was because DoltLab Enterprise "online" needs to make outbound http requests in order to validate an Enterprise license.

Now, with DoltLab >= v2.3.5, DoltLab Enterprise can run totally offline. In October, we showed you how to run DoltLab Community edition "offline" but until 2.3.5, Enterprise needed the internet.

Today's post covers how to set up a DoltLab Enterprise instance that runs in "offline" mode.

DoltLab Enterprise offline

On the DoltLab host, you will need a version of DoltLab and its service images >= v2.3.5.

Ensure that DoltLab's dependencies are installed on the host as well.

Next, unzip DoltLab's service images and load them into Docker.

$ unzip doltlab-service-images-v2.3.5.zip -d service-images
Archive:  doltlab-service-images-v2.3.5.zip
  inflating: service-images/envoy-v1.28-latest.tar  
  inflating: service-images/pull-merge-v2.3.5.tar  
  inflating: service-images/dolt-ci-v2.3.5.tar  
  inflating: service-images/dolthubapi-server-v2.3.5.tar  
  inflating: service-images/dolt-sql-server-v2.3.5.tar  
  inflating: service-images/doltremoteapi-server-v2.3.5.tar  
  inflating: service-images/query-job-v2.3.5.tar  
  inflating: service-images/dolthub-server-v2.3.5.tar  
  inflating: service-images/dolthubapi-graphql-server-v2.3.5.tar  
  inflating: service-images/fileserviceapi-server-v2.3.5.tar  
  inflating: service-images/file-importer-v2.3.5.tar

# load all service images into docker

$ docker load < envoy-v1.28-latest.tar
...
$ docker load < pull-merge-v2.3.5.tar
...
$ $ docker load < dolt-ci-v2.3.5.tar
...

After loading all the images, unzip DoltLab and edit the installer_config.yaml. In addition to specifying the host and passwords to use, supply the offline license keys in the enterprise section of the file. The DoltHub team will provide you with the values for these fields.

# installer_config.yaml
host: "my-doltlab.instance.com"
...
enterprise:
  offline_api_key: "my-offline-api-key"
  offline_shared_key: "my-offline-shared-key"
  offline_license_key: "my-offline-license-key"
  offline_product_code: "my-offline-product-code"
  request_offline_activation: true

Ensure that request_offline_activation has a value of true. This tells the installer to generate a request file for offline activation that you will need to send back to the DoltHub team in order to complete your offline activation. Run the installer to generate this file.

$ ./installer 
2025-01-06T19:29:08.273Z	INFO	metrics/emitter.go:111	Successfully sent DoltLab usage metrics
2025-01-06T19:29:08.275Z	INFO	cmd/main.go:601	Please provide the generated offline activation request file to the DoltHub team:	{"file": "/home/ubuntu/doltlab/0ed1d18_offline_activation.req"}

You should then send the DoltHub team the generated file ending in .req. Once the team responds, they will provide you with a valid license file. Upload this file to your DoltLab Enterprise host.

In our example, the license file provided to us by the DoltHub team is /home/ubuntu/doltlab/0ed1d18_doltlabv1.json.

Our final step will be to edit the installer_config.yaml, specifying the path to the license file in the offline_license_file field, and removing the request_offline_activation field or setting it to false.

# installer_config.yaml
...
enterprise:
  offline_api_key: "my-offline-api-key"
  offline_shared_key: "my-offline-shared-key"
  offline_license_key: "my-offline-license-key"
  offline_product_code: "my-offline-product-code"
  offline_license_file: "/home/ubuntu/doltlab/0ed1d18_doltlabv1.json"

Next, we re-run the installer to generate the DoltLab Enterprise assets.

$ ./installer 
2025-01-06T20:34:24.777Z	INFO	metrics/emitter.go:111	Successfully sent DoltLab usage metrics

2025-01-06T20:34:24.777Z	INFO	cmd/main.go:607	Successfully configured DoltLab	{"version": "v2.3.5"}

2025-01-06T20:34:24.777Z	INFO	cmd/main.go:613	To start DoltLab, use:	{"script": "/home/ubuntu/doltlab/start.sh"}
2025-01-06T20:34:24.777Z	INFO	cmd/main.go:618	To stop DoltLab, use:	{"script": "/home/ubuntu/doltlab/stop.sh"}

We can now start DoltLab Enterprise normally with the start.sh script, and the instance will be fully operational without making any http outbound requests!

Conclusion

As always, the basic version of DoltLab is totally free and you can get it up and running in under 30 minutes. For those requiring the full enterprise experience, we'd be happy to provide you with a free trial, just pop by our Discord and ask! We'd love to chat with you and learn more about how you want to use DoltLab.

Thanks for reading and don't forget to check out each of our cool products below:

SHARE

JOIN THE DATA EVOLUTION

Get started with Dolt

Or join our mailing list to get product updates.