Skip to content

alexkravets/venice

Repository files navigation

Venice

GitHub version Code Climate

Where art meets technology.

v e n i c e — website boilerplate and blog implementation based on Character library. It's used as foundation for new Rails projects or quick prototypes.

Homepage: https://github.com/alexkravets/venice

Installation

It assumes you have a machine equipped with Ruby & Mongodb.

  1. Install the Venice gem using the RubyGems package manager:
gem install venice-chr
  1. Then kick off a new project & start local server:
venice new your-project-name
cd your-project-name
venice setup
rails s

Default admin account is user@example.com:password.

Deploy to Heroku

  1. Create Heroku account
  1. Login to Heroku
heroku login
  1. Generate local ssh keys (if you don't have ones)
ssh-keygen -t rsa
  1. Add local ssh keys to Heroku
heroku keys:add
  1. Choose available APPLICATION_NAME on heroku, check using url APPLICATION_NAME.herokuapp.com

  2. Create AWS account

  1. Create access KEY and SECRET for AWS account
  1. Add AWS S3 service to your AWS account
  1. Pick REGION for Heroku application and S3 bucket: us-east-1 (default) or eu-west-1
  1. Deploy application to Heroku
venice deploy heroku APPLICATION_NAME [REGION]
bin/heroku/add-s3 KEY SECRET BUCKET [REGION]

IMPORTANT: Default admin account: is user@example.com:password. After deploy is finished, please login and create a new account, then remove default one.

Deploy to Digital Ocean

  1. Create Digital Ocean account
  1. Generate local ssh keys (if you don't have ones)
ssh-keygen -t rsa
  1. Add local ssh keys to Digital Ocean account
pbcopy < ~/.ssh/id_rsa.pub
  1. Create Ubuntu 14.04 droplet, use Add your SSH keys option
  1. Get DROPLET_IP
  1. Deploy application to Digital Ocean
venice deploy digital-ocean DROPLET_IP

IMPORTANT: Default admin account: is user@example.com:password. After deploy is finished, please login and create a new account, then remove default one.

Under the Hood

Venice is based on a bunch of open source gems. You might be interested to have a look into those to get better understanding of how things do work inside:

  • Character: Powerful responsive javascript CMS for apps
  • Formagic: Building forms with CoffeeScript
  • Journal: Posts and pages implementation with templates and CMS modules
  • Tape: Basic RSS reader that integrates into CMS
  • Ants: Utility gem with helpers and concerns that are used on the backend and CMS
  • Loft: Media assets manager for Character CMS
  • Mongosteen: An easy way to add CRUD actions for Mongoid models
  • Devise: Flexible authentication solution for Rails with Warden

Contributing

If you'd like to contribute a feature or bugfix: Thanks! To make sure your fix/feature has a high chance of being included, please read the following guidelines:

  1. Fork the repository
  2. Make your changes
  3. Push your branch to your fork
  4. Post a pull request.

Thank you to all the contributors!