caravel

Version, currently master branch1 version
  • master branchlatestMay 28, 2019

github.com/caravel-tool/caravel

Deploy your apps in production, effortlessly.

17 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  caravel:
    github: caravel-tool/caravel
    branch: master

master is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
0.27.2
License
MIT
Author
Claudio Holanda <claudiohw@gmail.com>
Target
  • caravel from src/caravel.cr

Dependencies

Runtime Dependencies

  • admiral*github: jwaldrip/admiral.cr

README

<p align="center">
  <br>
  <br>
  <img src="logo.svg" width="100" style="margin: 50px 0">
  <br>
  <br>
  <br>
  <b>Caravel</b>: Deliver simple things, with simplicity.
  <br>
  <br>
</p>

Caravel is a tool (still in early development) to help devs publish and update code at production servers.

The idea is simple: Small projects (such as simple Node apps or static websites) doesn't consume lot's of resources in order to build. So instead of hiring CI/CD paid plans or wasting time building robust config stacks, devs can make use of their own VPS to build and publish updates.

## Installation

As of today Caravel only supports being compiled from source. In the future, binaries will be released for Linux.

Make sure you have *git*, *SQLite* and *Crystal*.

Installing git and SQLite (Ubuntu):

```
apt-get install git-core sqlite3 
```

Installing Crystal (Ubuntu):

```
curl -sSL https://dist.crystal-lang.org/apt/setup.sh | sudo bash
```

And then:

```
sudo apt install crystal
```

If you face any issues, please [read this guide](https://crystal-lang.org/reference/installation/).


Then you can build the project:

```
cd caravel/
crystal build src/caravel
sudo cp ./caravel /usr/local/bin
```

Now you can check if Caravel is available by running:

```
caravel help
```

## Usage

In order to use Caravel you first need a recipe file.

### Recipes

Caravel always looks for a `caravel.yml` file when run on a directory.

Here is a minimal example of a config file (also called recipe):

```yaml
name: your-repo
repo: git@github.com:you/your-repo
trigger: tag
run:
  - npm install
  - npm run build
  - cp -R dist /www/var/html/
```

Once you have a recipe, you can call Caravel with the command:
```
caravel start
```

More details on recipes soon.

----

This README is still in work.