Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Login to the Nginx server.  If you are using the project key pair it will look like this (make sure you have the key in your .ssh folder, get it from Nebula interface https://nebula.ncsa.illinois.edu/dashboard/project/access_and_security/:

    Code Block
    ssh -i ~/.ssh/<key> ubuntu@<vm floating ip address>


  2. Install Nginx:

    Code Block
    apt-get install nginx


  3. Edit nginx config 

    1. create and edit

      Code Block
      sudo vim /etc/nginx/sites-available/gltg 	# creates file name gltg and opens vim editor (change to your key name)


    2. populate config (this is bare min without ssl, more docs coming)

      Code Block
      server {
        listen 80;
        client_max_body_size 0;
      
        proxy_read_timeout 300;  # answer from server, 5 min
        proxy_send_timeout 300;  # chunks to server, 5 min
      
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        port_in_redirect   off;
      
        root /usr/share/nginx/html;
        index index.html index.htm;
      
        # Deny all attempts to access hidden files
        # such as .htaccess, .htpasswd, .DS_Store (Mac).
        location ~ /\. {
          deny all;
        }
      
        location / {
            try_files $uri $uri/ /index.html;
        }
      
        rewrite ^/geodashboard$ /geodashboard/ permanent;
        location /geodashboard {
          proxy_pass http://<geodashboard floating IP>:9000;				# replace <geodashboard floating IP> with the floating IP of your geodashboard machine
        }
      
        rewrite ^/clowder$ /clowder/ permanent;
        location /clowder/ {
          proxy_pass http://<clowder floating IP>:9000;					# replace <clowder floating IP> with the floating IP of your geodashboard machine
        }
      }


    3. delete (soft link) of default config and enable new config

      Code Block
      sudo rm /etc/nginx/sites-enabled/default
      sudo ln -s /etc/nginx/sites-available/gltg /etc/nginx/sites-enabled/gltg


    4. Add (Edit) index file to root

      1. For the tutorial we will only put a redirect to the /geodashboard route.  If you want to put in a static web page with links to /geodashboard, /clowder, etc, please do - everyone will love you.

        Code Block
        sudo vim /usr/share/nginx/html			# This is the root path in the config we just created



      2. Add this text to file

        Code Block
        <meta http-equiv="refresh" content="0; url=http://<Floating IP>/geodashboard" />       <!-- <Floating IP> is of the nginx server where you are doing this -->


  4. Install geodashboard-v3 (as of this documentation, geodashboard-v2 runs on the geodashboard server, but uses the v3 search page which is installed on the nginx server)

    1. In the nginx root directory (where we put the redirect above), create a directory 'gd3' which contains the build files bundle.js, config.js, index.html.

      Code Block
      ls /usr/share/nginx/html/gd3						# if gd3 directory is in correct nginx root path, 'ls' will show you the v3 build files 
      bundle.js  config.js  index.html


Setup Clowder

...

Server 

  1. Setup Puppet (Getting started - Marcus will need to do before docs will be good)
    1. Login to foreman https://gonzo-foreman.ncsa.illinois.edu/hosts
      1. verify existence of host - the name will be <name of vm>.os.ncsa.edu
      2. puppet env
        1. production
      3. puppet classes
        1. clowder
        2. what about java?
    2. maybe service puppet restart on host machine
  2. configure clowder
    1. login to clowder machine

      Code Block
      hostIp="141.142.210.210"
      
      permissions = public
      application.context="/clowder/"
      
      initialAdmins=""   		# add admin emails between quotes
      smtp.host="smtp.ncsa.illinois.edu"
      
      # securesocial customization
      securesocial.onLoginGoTo=/clowder/
      securesocial.onLogoutGoTo=/clowder/login
      securesocial.ssl=false
      securesocial.cookie.idleTimeoutInMinutes=1440
      
      # rabbitmq
      clowder.rabbitmq.uri="amqp://clowder:***********@rabbitmq.ncsa.illinois.edu/clowder" 	# you'll need the security code
      clowder.rabbitmq.exchange="gltg-clowder-dev"
      
      # mongodb      These are the IP addresses for the
      host hit "Edit
       current mongodb servers
      mongodbURI="mongodb://141.142.209.172:27017,141.142.209.173:27017,141.142.209.174:27017/gltg?replicaSet=GLTG&maxpoolsize=100"
      
      # postgres
      postgres.user="***********"			# you'll need the postgres username
      postgres.password="**************"  # you'll need the postgres user password
      postgres.host="141.142.209.176"		# This is the IP of the current postgres vm
      postgres.db="geostream-dev"         # you can start by using one of the existing databases - this is for gltg-dev
      
      # cache
      geostream.cache=/home/clowder/cache
      
      # security options
      
      application.secret="******************************************************"  	# you'll need to create and application.secret (random)
      commKey=************															# you'll need to create	commKey (random)
      
      
      # storage
      service.byteStorage=services.filesystem.DiskByteStorageService
      clowder.diskStorage.path="/home/clowder/data"