Metadata-Version: 2.1
Name: coldfront
Version: 0.0.2
Summary: HPC Resource Allocation System 
Home-page: http://coldfront.io
Author: Andrew E. Bruno, Dori Sajdak, Mohammad Zia
License: GNU General Public License v3 (GPLv3)
Project-URL: Bug Tracker, https://github.com/ubccr/coldfront/issues
Project-URL: Documentation, https://ubccr.github.io/coldfront-docs/
Project-URL: Source Code, https://github.com/ubccr/coldfront
Keywords: high-performance-computing resource-allocation
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Framework :: Django :: 2.1
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Description-Content-Type: text/markdown
Requires-Dist: arrow (==0.12.1)
Requires-Dist: bibtexparser (==1.0.1)
Requires-Dist: blessed (==1.15.0)
Requires-Dist: certifi (==2018.10.15)
Requires-Dist: chardet (==3.0.4)
Requires-Dist: Django (==2.1.2)
Requires-Dist: django-crispy-forms (==1.7.2)
Requires-Dist: django-model-utils (==3.1.2)
Requires-Dist: django-picklefield (==1.1.0)
Requires-Dist: django-q (==1.0.1)
Requires-Dist: django-simple-history (==2.5.1)
Requires-Dist: django-sslserver (==0.20)
Requires-Dist: django-su (==0.8.0)
Requires-Dist: doi2bib (==0.3.0)
Requires-Dist: future (==0.16.0)
Requires-Dist: humanize (==0.5.1)
Requires-Dist: idna (==2.7)
Requires-Dist: pyparsing (==2.2.2)
Requires-Dist: python-dateutil (==2.7.3)
Requires-Dist: python-memcached (==1.59)
Requires-Dist: pytz (==2018.5)
Requires-Dist: redis (==2.10.6)
Requires-Dist: requests (==2.20.0)
Requires-Dist: six (==1.11.0)
Requires-Dist: urllib3 (==1.24)
Requires-Dist: wcwidth (==0.1.7)

# Coldfront - Resource Allocation System

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/Subscription based system for managing access to resources
- Collect Project, Grant, and Publication data from users
- Define custom attributes on resources and subscriptions
- 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


## Quick Install
1. Coldfront requires Python 3.6, memcached, and redis. 

### CentOS (7.5)

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
``` 

2. 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
```

3. Activate the virtual environment and install the required Python packages
```
source venv/bin/activate
cd coldfront
pip install wheel
pip install -r requirements.txt

```

4. Copy config/local_settings.py.sample to config/local_settings.py. 
```
cp config/local_settings.py.sample config/local_settings.py
```
Open config/local_settings.py and update the following:
* Update `SECRET_KEY`. Consider making the length at least 50 characters long. 
* Update `TIME_ZONE` if necessary


5. Copy config/local_strings.py.sample to config/local_strings.py and update if desired. 
```
cp config/local_strings.py.sample config/local_strings.py
```

6. Run initial setup
```
python manage.py initial_setup
```

7. Setup an admin user
```
python manage.py createsuperuser
```

8. Optional: Add some test data
```
python manage.py load_test_data
```

9. Start development server
```
python manage.py runserver 0.0.0.0:8000
```

10. 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 `ccollins` with password `test1234`.
You can log in as center director using username `michardson` with password `test1234`.

Password for all users is also `teset1234`. 


## Directory structure

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

## License

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


