2015-09-03 13:31:52 -04:00
|
|
|
# Rookeries
|
|
|
|
|
2018-08-16 13:03:42 -04:00
|
|
|
A developer and designer friendly headless CMS and static site management tool for
|
|
|
|
building gorgeous websites.
|
2015-09-03 13:31:52 -04:00
|
|
|
|
|
|
|
**Rookeries** is:
|
|
|
|
|
2018-09-04 17:57:31 -04:00
|
|
|
- Powered by Rust and PostgreSQL on the server side.
|
2017-11-02 09:19:23 -04:00
|
|
|
- Uses preact, mobx, ES2017 and webpack to build responsive single page apps.
|
2016-04-09 08:55:14 -04:00
|
|
|
- Licensed under the Affero GNU General Public License (AGPL) version 3.0.
|
2015-09-03 13:31:52 -04:00
|
|
|
|
2016-10-25 17:47:05 -04:00
|
|
|
## Build Status:
|
2015-09-03 13:31:52 -04:00
|
|
|
|
2016-12-16 23:13:53 -05:00
|
|
|
- **CircleCI**: [![CircleCI](https://circleci.com/bb/dorianpula/rookeries.svg?style=svg)](https://circleci.com/bb/dorianpula/rookeries "CircleCI builds")
|
2017-03-15 11:15:52 -04:00
|
|
|
- **Docker**:
|
|
|
|
[![](https://img.shields.io/docker/automated/dorianpula/rookeries.svg)](https://hub.docker.com/r/dorianpula/rookeries/ "Docker Hub")
|
|
|
|
[![](https://img.shields.io/docker/pulls/dorianpula/rookeries.svg)](https://hub.docker.com/r/dorianpula/rookeries/ "Docker Hub")
|
|
|
|
[![](https://img.shields.io/docker/stars/dorianpula/rookeries.svg)](https://hub.docker.com/r/dorianpula/rookeries/ "Docker Hub")
|
|
|
|
[![](https://images.microbadger.com/badges/image/dorianpula/rookeries.svg)](https://microbadger.com/images/dorianpula/rookeries "Rookeries Docker size courtesy of microbadger.com")
|
2016-04-09 08:55:14 -04:00
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
2017-10-25 01:00:28 -04:00
|
|
|
*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.
|
2016-04-09 08:55:14 -04:00
|
|
|
|
|
|
|
## Development
|
|
|
|
|
|
|
|
*Rookeries* uses the following technologies:
|
|
|
|
|
2018-08-08 16:42:22 -04:00
|
|
|
- Rust 1.27+
|
|
|
|
- NodeJS 10 + ES2017
|
2017-10-25 01:00:28 -04:00
|
|
|
- CouchDB 2x
|
2018-09-04 17:57:31 -04:00
|
|
|
- PostgreSQL 10.5
|
2016-10-25 17:42:56 -04:00
|
|
|
- Docker + docker-compose
|
2016-04-09 08:55:14 -04:00
|
|
|
|
|
|
|
### Getting Started
|
|
|
|
|
2017-10-25 01:00:28 -04:00
|
|
|
**Rookeries** requires newer versions of Docker (<1.9.0) and
|
|
|
|
docker-compose (<1.8.0).
|
2016-04-09 08:55:14 -04:00
|
|
|
|
2016-10-25 17:47:05 -04:00
|
|
|
1. [Install docker-compose](https://docs.docker.com/compose/install/)
|
2018-08-16 13:03:42 -04:00
|
|
|
1. Install [cargo-make](https://sagiegurari.github.io/cargo-make)
|
2018-09-04 17:57:31 -04:00
|
|
|
1. Install [diesel_cli](https://github.com/diesel-rs/diesel/tree/master/diesel_cli)
|
|
|
|
1. Install the Postgres headers > 10.5: e.g. `sudo apt install libpq-dev` on Ubuntu 18.04
|
|
|
|
1. Install diesel_cli: `cargo install diesel_cli --no-default-features --features postgres`
|
2018-09-24 08:59:18 -04:00
|
|
|
1. Setup the Rookeries database with the diesel migration tool: `diesel migration run`
|
2018-08-16 13:03:42 -04:00
|
|
|
1. Build Rookeries: `cargo build`
|
2018-08-16 14:32:22 -04:00
|
|
|
1. Run local server: `cargo make run-dev-server --env-file=dev.env`
|
|
|
|
1. Run API server tests: `cargo make docker-test-api`
|
|
|
|
1. Alternatively, start a local server.
|
2018-09-26 08:58:42 -04:00
|
|
|
1. Start a local Postgres instance: `docker-compose up -d db`
|
2018-08-16 14:32:22 -04:00
|
|
|
1. Initialize the database with `cargo make init-test-db`
|
|
|
|
1. Then run the tests locally with `cargo test`
|
2018-08-16 13:03:42 -04:00
|
|
|
1. Run UI tests: `cargo make test-ui`
|
2018-08-12 00:04:35 -04:00
|
|
|
|
|
|
|
### Local Server Setup
|
|
|
|
|
|
|
|
To run the Rust server locally, remember to initialize the local dev environment
|
|
|
|
variables using: `export $(cat dev.env | xargs)`
|