Giter Club home page Giter Club logo

peas's Introduction

Build Status Peas

PaaS for the People

Peas is a Heroku-style Platform as a Service written in Ruby using Docker. It is heavily inspired by Deis and Dokku.

Peas' philosophy is to be an accessible and easily hackable PaaS. It doesn't aim to be a complete enterprise solution. Instead it aims to be a relatively unopinionated, but solid starting place using all the goodness of Ruby; Rspec, Bundler, Guard, Rack, Puma, Grape, Sidekiq, GLI and more.

#Development Installation

Peas is at a very early stage and has only been tested locally and on Vagrant.

##Dependencies You will need Docker, Redis (OSX installation, Linux users can just use your package manager) and Mongo DB. All of these are generally installable via your system's package, no compiling should be necessary.

##Local

docker pull progrium/buildstep # This runs Heroku buildpacks against repos to create deployable app images
git clone https://github.com/tombh/peas.git
bundle install
bundle exec guard

##Vagrant There is a Vagrantfile in the root that attempts to get most of the setup done for you:

vagrant up # Takes a long time first time
vagrant ssh
cd peas
bundle exec guard

##CLI client gem install peas-cli

#Usage

Peas aims to follow the conventions and philosophies of Heroku as closely as possible. So it is worth bearing in mind that a lot of the Heroku documentation is relevant to Peas.

First thing is to set the domain that points to your Peas installation. If you're developing locally you can actually just rely on the default vcap.me which has wildcard DNS records to point all subdomains to 127.0.0.1

To use a different domain: peas settings --domain customdomain.com

Next thing is to get into your app's directory. Peas approaches git repos for apps differently from other PaaS projects. It does not have a git server so requires app repos to be remotely accessible. At the moment this is only web accessible repos like on Github and Bitbucket. But the plan is to allow pulling from local git paths as well.

Then:

peas create
peas deploy

You can scale processes using: peas scale web=3 worker=2

These are the only commands currently supported.

#Roadmap

  • Installation for production environments like AWS and Digital Ocean.
  • Users. Peas currently has absolutely no concept of users :/
  • Nodes, or 'pods' if we're keeping with the 'pea' theme. Therefore distributing containers over multiple servers.
  • App config variables. App logs. And so on...

peas's People

Contributors

dleehr avatar tombh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.