Skip to content
14 changes: 14 additions & 0 deletions Studio/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,21 @@ The purpose of running Hackolade Studio in a Docker container is to operate the

The guide is designed to be understandable even if you've never used Docker before.

## 🎯 Using the Pre-built CLI Image (Recommended)

**Want to skip the build step?** We now provide a ready-to-use Docker image (`hackolade/hck-cli`) that includes Hackolade Studio and all plugins pre-installed. This is the fastest way to get started!

**Benefits:**
- ✅ No build step required - just pull and use
- ✅ Simplified data paths (`/data` instead of `/home/hackolade/Documents/...`)
- ✅ Secure secret management for license keys
- ✅ Always up-to-date with latest releases

**Get started:** See our [Getting Started Guide for the Pre-built CLI Image](./doc/getting-started-hck-cli.md) for complete instructions.

**When to use the pre-built image vs. building your own:**
- **Use pre-built image** (`hackolade/hck-cli`) if you want simplicity and all plugins included
- **Build your own** (instructions below) if you need specific plugin versions or customizations

## Repository structure
This repository contains files and instructions for running the [Hackolade Studio](https://hackolade.com) data modeling application, using the base image published on [Docker Hub](https://hub.docker.com/r/hackolade/studio):
Expand Down
96 changes: 96 additions & 0 deletions Studio/compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#
# Copyright © 2016-2026 by IntegrIT S.A. dba Hackolade. All rights reserved.
#
# The copyright to the computer software herein is the property of IntegrIT S.A.
# The software may be used and/or copied only with the written permission of
# IntegrIT S.A. or in accordance with the terms and conditions stipulated in
# the agreement/contract under which the software has been supplied.
#

# This file is an example of how to orchestrate the Hackolade CLI from a docker compose file
# leveraging our hck-cli docker image from Docker Hub
# This image contains the Hackolade Studio Release and all of the plugins already installed
# It's ready to be used.
#
# This compose.yml file is specifically designed for the pre-built hackolade/hck-cli image.
# For complete documentation and usage instructions, see: doc/getting-started-hck-cli.md
#
# If you are building your own image using hackolade/studio, use docker-compose.yml instead,
# which is designed for custom-built images. See doc/getting-started.md for building instructions.

services:
# Run a cli command (default to version)
# Pay attention to file paths as they must be paths inside the containers
# If a file needs to be made available from the host or another container, use the volumes section to mount the file or folders
# This compose exposes different manners to provide the License key or LicenseFile.xml for offline validation

# Example using online License key validation and the key stored in a secret file (file path from host) defined in the secrets section:
#
# docker compose run -t --rm validateKeyOnline
# docker compose run -t --rm hck-cli gendoc --format=HTML --model '/data/models/MongoDB/Yelp Challenge dataset.hck.json' --doc /data/output/doc-test --jsonSchema
hck-cli: &hck-cli
image: hackolade/hck-cli:8.9.2
command: ["version"]
restart: 'no'
# network_mode: 'none'
volumes:
- hackolade-studio-app-data:/home/hackolade/.config
- hackolade-studio-logs:/data/logs
- ${PWD}/models:/data/models
# - hackolade-studio-options:/data/options
- hackolade-studio-output:/data/output

showComputerIdForOfflineValidation:
extends: hck-cli
command: ["getComputerId"]

# validateKeyOfflineFromFile:
# extends: hck-cli
# network_mode: 'none'
# command:
# - validateKey
# - --file
# - /data/LicenseFile.xml
# volumes:
# - $HOME/Downloads/LicenseFile.xml:/data/LicenseFile.xml

# validateKeyOnlineFromFile:
# extends: hck-cli
# command:
# - validateKey
# - --key
# - /data/license-key.txt
# volumes:
# - $HOME/Downloads/license-key.txt:/data/license-key.txt


validateKeyOffline:
extends: hck-cli
network_mode: 'none'
command: ["validateKey"]
secrets:
- license_file

validateKeyOnline:
extends: hck-cli
command: ["validateKey"]
network_mode: host
secrets:
- license_key

volumes:
# This docker volume is mandatory if you want the licensing to work and be able to use the cli
hackolade-studio-app-data:
hackolade-studio-logs:
# This compose mounts the models folder from the host
# hackolade-studio-models:
# hackolade-studio-options:
hackolade-studio-output:

secrets: # Don't change the name of the secrets as the cli is looking for them by name with these values by default
license_key:
# Expects the license key to be put as content of the file path defined in the file variable
file: ${HOME}/Downloads/license-key.txt
license_file:
# Expects the license file to be put as content of the file path defined in the file variable
file: ${HOME}/Downloads/LicenseFile.xml
Loading