/ignition

Quick start web service application framework for running on Openshift and MongoDB.

Primary LanguageRuby

Ignition

The Ignition project is a small effort to provide a Quickstart framework for building online web-based subscription services. This particular project is targeted to support Openshift deployment.

Components

The project is based on the following technology components:

  • Ruby On Rails 4

  • MongoDB using Mongoid ORM

  • Twitter Bootstrap

  • Devise authentication

  • Cancan authorization

  • Figaro environment variable utility

  • Rspec testing

  • Stripe.com subscription billing

  • Openshift PaaS hosting integration scripts

Build Status

We are using Travis CI for this project handle continuous integration services. The build status is shown below for:

Getting Started

To get this web-based application framework up and running, you will need to do the following:

  1. Create an account on the Openshift service.

  2. Set up your local machine with the RedHat client tools

  3. Create a rails application and check the results. You can name the application whatever you want. In the example, we use “someapp”.

    rhc app create someapp ruby-1.9 mongodb-2.2 rockmongo-1.1 --from-code https://github.com/alim/ignition.git
    rhc app show-app someapp
  4. Create a text file to hold environment varilables for setting up email and default administrator login. We will call this file ‘varaibles.txt’. This file should not be included in your git repository. Example file contents are below:

    SMTP_HOST=smtpout.someserver.net
    SMTP_PORT=3535
    SMTP_DOMAIN=somedomain.com
    SMTP_USER=someuser@somedomain.com
    SMTP_PASSWORD=somepassword
    
    ADMIN_FIRST_NAME=Some
    ADMIN_LAST_NAME=Admin
    ADMIN_PHONE=800.555.1212
    ADMIN_EMAIL=sadmin@example.com
    ADMIN_PASSWORD=somepassword
    
    TEST_API_KEY='your stripe test api/private key'
    TEST_PUB_KEY='your stripe test public key'
    PROD_API_KEY='your stripe production api/private key'
    PROD_PUB_KEY='your stripe production public key'
    
    export CONTACT_EMAILBOX='operations@example.com'
    export CONTACT_FROM='no-reply-mailbox@example.com'
    export CONTACT_SUBJECT='New Contact Request'
    
    export GROUP_FROM_EMAIL="no-reply-mailbox@example.com"
    export GROUP_EMAIL_SUBJECT="Group Membership Notification"
  5. Run the rhc command to install these environment variables for your application. You can then destroy the text file you created in the previous step.

    rhc set-env /path/to/variables.txt -a someapp
  6. Generate a new secret token and copy the output of the following command.

    cd someapp
    rake secret
    
  7. Replace the secret token stored in the config/initializers/secret_token.rb file with the one generated from the rake secret command.

  8. Commit the merged changes

    git add --all
    git commit -m "Put your commit message here"
  9. Push the application

    git push
    
  10. Point your browser to the applicatin URL. You should now be able to log into the application using the email and password that you entered in the application.yml file.

License

The Ignition project is available as GPLV3 licensed software. For more information on this license see here