Public | Automated Build

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

Chameleon User Portal

Dependencies

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.

Configuration

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., https://example.com/REST/1.0/
  • 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., database.example.com
  • 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.

Development

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 git@github.com:ChameleonCloud/reference-api.git
cd reference-api
docker build -t referenceapi .

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

Finally, from this repository run:

docker-compose up

If you need to rebuild the image, simply run:

docker-compose build

Production

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:

portal:
  image: mrhanlon/chameleon_portal:v#.#.#
  env_file:
    - /path/to/chameleon.env
  volumes:
    - /path/to/certs/certs0:/etc/ssl/chameleoncloud.org
    - /path/to/certs/certs1:/etc/ssl/www.chameleon.tacc.utexas.edu
    - /path/to/certs/certs2:/etc/ssl/api.chameleoncloud.org
    - /path/to/dhparams.pem:/etc/ssl/dhparams.pem
    - /path/to//media:/project/media
  ports:
    - 80:80
    - 443:443
  links:
    - referenceapi:referenceapi
  log_driver: syslog
  log_opt:
    syslog-tag: portal
referenceapi:
  image: referenceapi:latest
  ports:
    - 8000:8000
  log_driver: syslog
  log_opt:
    syslog-tag: referenceapi

Release History

See the Changelog.

Docker Pull Command
Owner
chameleoncloud
Source Repository

Comments (0)