The Gigantum Client is a web application to manage the creation and sharing of data science projects. It is run locally and is delivered via a Docker container. The Client is the core component of a larger ecosystem of tools and services, including:
- Gigantum Cloud - A public repository for storage and sharing of Projects
- Gigantum Desktop - A desktop app to install and launch the Client
- Gigantum CLI - A simple command line tool to install and launch the Client
pip-installable, note that Docker needs to be installed (See instructions below). Once installed, just open your browser to http://localhost:10000!
pip install gigantum gigantum install && gigantum start
Gigantum can also be delivered as a convenient desktop application, available on our Downloads page.
Build and Run Gigantum from Source
1) Install Docker
Developing the Gigantum Client requires that you have Docker installed locally. Visit the Gigantum user docs for instructions if needed.
Note, Docker must be running to build/run/test the Client.
2) Clone gigantum-client
git clone firstname.lastname@example.org:gigantum/gigantum-client.git cd gigantum-client git submodule update --init --recursive
To get started, clone the
gigantum-client repository locally. If you plan to contribute, be sure to create a fork
first so you can easily create a PR.
integration branch is the current "working" branch with the latest functional changes that have yet to be
released as stable.
master branch is the last version released as stable (i.e. what you get when you install the Gigantum Desktop
3) Create virtual environment
python -m venv gtm-env source gtm-env/bin/activate ( cd gtm && pip install -e . )
gtm is a command line tool to help build and configure the Client. This is a Python 3 application, so you must have
Python 3 installed. For detailed instruction see gtm/README.md.
gtm is now available. Run
gtm -h to see available commands.
4) Configure your development environment
gtm dev setup
gtm must be configured before use. This will ask a few questions and write configuration data to disk for future use.
"Backend" development mode is a configuration primarily used when working on the API. It configures the development container so that when started, the UI is served but the API does not start automatically.
5) Build application client container and start working
gtm dev -v build
Once complete, you'll have a container available for use either via your terminal or from PyCharm.
6) Starting and stopping the gigantum client from terminal
gtm dev start
In a new console session, enter the container and kick off the application:
gtm dev attach /opt/setup.sh python3 service.py
Open your web browser to http://localhost:10000 to access the application.
When finished, run:
gtm dev stop
7) Starting and stopping the gigantum client from PyCharm
See Pycharm dev notes for more details on how to set up Pycharm to use the development container
Installing the Client
If you are simply interested in using the Gigantum Client, please follow the download instructions at gigantum.com. For most users, installing then Desktop app is the recommended way of getting the Client.
Try It Out
If you want to try out Gigantum before installing, you can use the online demo at https://try.gigantum.com.
This demo will stop any Project container that runs longer than 1 hr and remove your work after ~1 day.
Overview of Monorepo Structure
gigantum-client is organized as a monorepo, which means it contains multiple packages. While this has a few drawbacks
(e.g. larger repo, code possibly looks more intimidating, can't pip/npm install from Github), it has lots of benefits.
By bundling all of the components and tooling into a single repository, it makes it easier to develop, build, and release
the Gigantum Client. It also provides a single place to report issues, makes it easier to coordinate complex changes
across components, and makes testing easier. Finally, by maintaining parts of the code base as independent,
but related packages, it makes it easier re-use code in different parts of the platform.
Due to the added complexity of managing multiple packages in a single repository,
gigantum-client includes a developer
gtm. This tool manages building, testing, and deploying the Gigantum Client in several different
configurations. Refer to gtm README for more details.
The repo is organized as follows:
docs/: Additional documentation and instructions for developers (in progress and possibly out of date)
gtm/: A python package containing the developer tool
packages/confhttpproxy: A python package for interfacing with the configurable proxy currently used by the Client
packages/gtmapi: A python package containing the Client's GraphQL API.
packages/gtmcore: A python package with many subpackages that make up the "core" library used by the Client. This package will be broken up in the future into more granular, related packages.
resources/client: Files and configuration data required for building the "production" configured container
resources/developer: Files and configuration data required for building the "developer" configured container
resources/docker: Dockerfiles for building the Client container
You can view contributors by visiting the contributors page on GitHub.
If you want to contribute to the Gigantum Client, the best place to start is the contributing guide.
The Gigantum Client is released under an MIT license