Skip to content

kmuriki/coldfront

 
 

Repository files navigation

ColdFront - Resource Allocation System

Documentation Status

ColdFront is an open source resource allocation system designed to provide a central portal for administration, reporting, and measuring scientific impact of HPC resources. ColdFront was created to help HPC centers manage access to a diverse set of resources across large groups of users and provide a rich set of extensible meta data for comprehensive reporting. ColdFront is written in Python and released under the GPLv3 license.

Features

  • Allocation based system for managing access to resources
  • Collect Project, Grant, and Publication data from users
  • Define custom attributes on resources and allocations
  • Email notifications for expiring/renewing access to resources
  • Integration with 3rd party systems for automation and access control
  • Center director approval system and annual project reviews

Plug-in Documentation

Contact Information

If you would like a live demo followed by QA, please contact us at [email protected]. You can also contact us for general inquiries and installation troubleshooting.

If you would like to join our mailing list to receive news and updates, please send an email to [email protected] with no subject, and the following command in the body of the message:

subscribe [email protected] first_name last_name

Installation Demo

Installation

Click here for more demos

Quick Install

  1. ColdFront requires Python 3.6, memcached, and redis.

CentOS (7)

Install EPEL then install required packages:

sudo yum install epel-release
sudo yum install python36 python36-devel memcached redis

# Install SQLite >= 3.8.3 from source since it is absent from the CentOS software repositories
wget https://sqlite.org/2020/sqlite-autoconf-XXXXXXX.tar.gz
tar -xzf sqlite-autoconf-XXXXXXX
cd sqlite-autoconf-XXXXXXX
./configure
make
make install

#Check version
sqlite3 --version

CentOS (8)

Install EPEL then install required packages:

sudo yum install epel-release
sudo yum install python36 python36-devel memcached redis

Ubuntu (16.04)

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6 python3.6-venv memcached redis-server
  1. Clone ColdFront in a new directory and create a Python virtual environment for ColdFront
mkdir coldfront_app
cd coldfront_app
git clone https://github.com/ubccr/coldfront.git
python3.6 -mvenv venv
  1. Activate the virtual environment and install the required Python packages
source venv/bin/activate
cd coldfront
pip install wheel
pip install -r requirements.txt

  1. Copy coldfront/config/local_settings.py.sample to coldfront/config/local_settings.py.
cp coldfront/config/local_settings.py.sample coldfront/config/local_settings.py
  1. Copy config/local_strings.py.sample to config/local_strings.py and update if desired.
cp coldfront/config/local_strings.py.sample coldfront/config/local_strings.py
  1. Run initial setup
python manage.py initial_setup
  1. OPTIONAL: Add some test data
python manage.py load_test_data
  1. Start development server
python manage.py runserver 0.0.0.0:8000
  1. Point your browser to http://localhost:8000

You can log in as admin with password test1234. You can log in as a PI using username cgray with password test1234. You can log in as another PI using username sfoster with password test1234.

Password for all users is also test1234.

Directory structure

  • coldfront
    • core - The core ColdFront application
      • field_of_science
      • grant
      • portal
      • project
      • publication
      • resource
      • allocation
      • user
      • utils
    • libs - Helper libraries
    • plugins - Plugins that can be configured in ColdFront
      • freeipa
      • iquota
      • ldap_user_search
      • mokey_oidc
      • slurm
      • system_monitor

ColdFront Demonstration

Adding a Project

Adding Project

Adding Users

Adding Users

Requesting an Allocation

Requesting an Allocation

Adding a Grant

Adding a Grant

Adding Publications

Adding Publications

Adding a User to an Allocation

Adding a User to Allocation

Managing an Allocation as an Admin

Managing an Allocation as and Admin

Adding a Resource

Adding a Resource

Generate Slurm Association Data

Generate Slurm Association Data

License

ColdFront is released under the GPLv3 license. See the LICENSE file.

Packages

No packages published

Languages

  • Python 76.0%
  • HTML 23.3%
  • Other 0.7%