# Rookeries

A developer and designer friendly web platform for building gorgeous sites, blogs and portfolios.

**Rookeries** is:

- Powered by Flask, Python and PostgreSQL on the server side.
- Uses React, Redux, ES6 and LESS to build responsive single page apps.
- Licensed under the Affero GNU General Public License (AGPL) version 3.0.

## Build Status:

- **CircleCI**: [![CircleCI](https://circleci.com/bb/dorianpula/rookeries.svg?style=svg)](https://circleci.com/bb/dorianpula/rookeries "CircleCI builds")
- **Docker (API)**:
[![](https://img.shields.io/docker/automated/dorianpula/rookeries-api.svg)](https://hub.docker.com/r/dorianpula/rookeries-api/ "Docker Hub")
[![](https://img.shields.io/docker/pulls/dorianpula/rookeries-api.svg)](https://hub.docker.com/r/dorianpula/rookeries-api/ "Docker Hub")
[![](https://img.shields.io/docker/stars/dorianpula/rookeries-api.svg)](https://hub.docker.com/r/dorianpula/rookeries-api/ "Docker Hub") 
[![](https://images.microbadger.com/badges/image/dorianpula/rookeries-api.svg)](https://microbadger.com/images/dorianpula/rookeries-api "Rookeries API Docker size courtesy of microbadger.com")
- **Docker (Webapp)**:
[![](https://img.shields.io/docker/automated/dorianpula/rookeries-webapp.svg)]((https://hub.docker.com/r/dorianpula/rookeries-webapp/ "Docker Hub"))
[![](https://img.shields.io/docker/pulls/dorianpula/rookeries-webapp.svg)](https://hub.docker.com/r/dorianpula/rookeries-webapp/ "Docker Hub")
[![](https://img.shields.io/docker/stars/dorianpula/rookeries-webapp.svg)](https://hub.docker.com/r/dorianpula/rookeries-webapp/ "Docker Hub")
[![](https://images.microbadger.com/badges/image/dorianpula/rookeries-webapp.svg)](https://microbadger.com/images/dorianpula/rookeries-webapp "Rookeries Webapp Docker size courtesy of microbadger.com")

## Installation

*Rookeries* is heavily under development and once things stabilize there will be a user friendly installation guide.
In the meantime, please refer to the development guide below.

## Development

*Rookeries* uses the following technologies:

- Python 2.7
- NodeJS 6.9 + ES6
- PostgreSQL 9.6
- Docker + docker-compose
- Make

### Getting Started

**Rookeries** requires newer versions of Docker (<1.6.0) and docker-compose (<1.5.0).

1. [Install docker-compose](https://docs.docker.com/compose/install/)
1. Build Rookeries: `make build`
1. Run tests: `make test`
1. Run demo: `make demo`
1. Run the invoke scripts on the API container with: `docker-compose exec api inv $MY_TASK`
    - Use `inv -l` to list the available invoke tasks.
1. Run the npm scripts on the webapp container with: `docker-compose exec webapp npm run $MY_TASK`
1. When running the demo, navigate to the main Rookeries page in a browser: [http://localhost:5000/](http://localhost:5000/)
