Public | Automated Build

Last pushed: 7 months ago
Short Description
The User Portal for the Chameleon Cloud project.
Full Description

Chameleon User Portal


Most dependencies are specified in requirements.txt and can
be installed via pip. External depdencies not available via pip:

These are configured as git submodules and can be checked out using

git submodule update --recursive --init

If using the Docker container to run the portal, the submodules should be
checked out before building the image.


The following environment variables must be configured for pytas:

The following environment variables must be configured for djangoRT:

  • RT_HOST: the hostname for the RT instance's REST endpoint, e.g.,
  • RT_USERNAME: the RT account username
  • RT_PASSWORD: the RT account password
  • RT_DEFAULT_QUEUE: The default queue to which tickets will be submitted

If you omit the DB_* environment variables, Django will create and use
the default SQLite database. This is intended only for development/testing.
For production, provide the following environment variables to configure the
MySQL database connection:

  • DB_HOST: The hostname to connect to, e.g.,
  • DB_PORT: The MySQL port, e.g., 3306
  • DB_NAME: The database name
  • DB_USER: The username to authenticate
  • DB_PASSWORD: The password to authenticate

Running the portal

Use the docker container! See the Dockerfile Use Docker Compose! The portal now uses the reference-api container for Resource Discovery. See docker-compose.yml and the reference-api repository.


The docker-compose.yml included in this repo is setup for running the composition locally. First, clone the reference-api repository and build that image:

git clone
cd reference-api
git submodule init && git submodule update
docker build -t referenceapi .

Copy the chameleon_env.sample file to .chameleon_env and configure the variables as necessary.

Finally, from the root portal projecct folder, run:

docker-compose up

If you need to (re)build the image, simply run:

docker-compose build


There are a few additional requirements for running the composition in production. We want
to run Django with uWSGI and Nginx in production
(not with the development server!)
so the ports and command are different. We also need to mount in certificates and sensitive
configuration for SSL/TLS and the media directory for Django.

The Production docker-compose.yml would look more like the following:

  image: mrhanlon/chameleon_portal:v#.#.#
    - /path/to/chameleon.env
    - /path/to/certs/certs0:/etc/ssl/
    - /path/to/certs/certs1:/etc/ssl/
    - /path/to/certs/certs2:/etc/ssl/
    - /path/to/dhparams.pem:/etc/ssl/dhparams.pem
    - /path/to//media:/project/media
    - 80:80
    - 443:443
    - referenceapi:referenceapi
  log_driver: syslog
    syslog-tag: portal
  image: referenceapi:latest
    - 8000:8000
  log_driver: syslog
    syslog-tag: referenceapi

Release History

See the Changelog.

Docker Pull Command
Source Repository