Quickstart

NGEE Tropics Archive is a Django app that acts as a data archive for the NGEE Tropics project. Use these instructions as a starting point for deploying the application. Please refer to Django documentation at https://docs.djangoproject.com for deployment configuration options.

Get the Source code

First the source code needs to be checked out:

git clone git@github.com:NGEET/ngt-archive.git
cd ngt-archive

Checkout the Tagged Version

Get the desired version:

git checkout <version_number>

Setup the App

(ngt-archive)$ pip install ".[deploy]"

Prepare Settings

Now you need to prepare your application settings:

$ touch ngeet_archive_settings.py

General Settings

Add the following to ngeet_archive_settings.py replacing the items in curly braces with your values. These are the main settings that will change depending on deployment environment (e.g. production, development, test):

from ngt_archive.settings import *

DEBUG = True # Change to False for production deployments

# Uncomment for Production (Add allowable hostnames)
#ALLOWED_HOSTS = []

# don't want emails while developing
# Production - added admins to email for errors
ADMINS = ()
MANAGERS = ADMINS

# Refer to the Django documentation for a list of
# available email backends
EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend'
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

SECRET_KEY = {{ random string for secret key }}

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

STATIC_URL = '/static/'
STATICFILES_DIRS = (

)
# Where the static files are physcially located
#STATIC_ROOT =

Archive API Settings

Below are the archive api settings. Customize these for different deployments (e.g production, development, test):

ARCHIVE_API = {
    'DATASET_ARCHIVE_ROOT': os.path.join(BASE_DIR, "archives/"),
    'DATASET_ARCHIVE_URL': '/archives/',  # not used
    'DATASET_ADMIN_MAX_UPLOAD_SIZE': 2147483648, # in bytes
    'DATASET_USER_MAX_UPLOAD_SIZE': 1073741824, # in bytes
    'EMAIL_NGEET_TEAM': ['ngeet-team@testserver'],
    'EMAIL_SUBJECT_PREFIX' : '[ngt-archive-test]'

}

Database Settings

Add the following to Postgres DB connection details to ngeet_archive_settings.py. Replace the items in curly braces with your values.:

DATABASES = {

'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'geo',
    'USER': '{{ db_user }} ',
    'PASSWORD': '{{ db_password }}',
    'HOST': 'localhost',
    'PORT': '',
    }
}

Migrate the App

Run python manage.py migrate to create the JAEA Geo models. This will create the materialized views and load the app’s plugins:

(ngt-archive)$ DJANGO_SETTINGS_MODULE=ngeet_archive_settings ./manage.py migrate

Static Files

Run python manage.py collectstatic to deploy the static files to the production server. Note that the pages will be deployed to STATIC_ROOT. If no value is supplied the static directory will be created in the current directory.:

(ngt-archive)$ DJANGO_SETTINGS_MODULE=ngt-archive_settings ./manage.py collectstatic

Create a Superuser

In order to access your development website, you need to create a superuser:

(ngt-archive)$ DJANGO_SETTINGS_MODULE=ngeet_archive_settings ./manage.py createsuperuser

Now you may start your development server and login.

Run the Server

Start the development server and visit http://127.0.0.1:8000/admin/ to manage a JAEA Geo users

(ngt-archive)$ ./manage.py runserver

Visit http://127.0.0.1:8000/api/v1 to to view the REST api.

For deployment options see the Django documentation at https://docs.djangoproject.com