Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/HeavyHorst/remco

remco is a lightweight configuration management tool
https://github.com/HeavyHorst/remco

confd config consul etcd remote template

Last synced: 2 months ago
JSON representation

remco is a lightweight configuration management tool

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/HeavyHorst/remco.svg?branch=master)](https://travis-ci.org/HeavyHorst/remco) [![Go Report Card](https://goreportcard.com/badge/github.com/HeavyHorst/remco)](https://goreportcard.com/report/github.com/HeavyHorst/remco) [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/HeavyHorst/remco/master/LICENSE)

# Remco

remco is a lightweight configuration management tool. It's highly influenced by [confd](https://github.com/kelseyhightower/confd).
Remcos main purposes are (like confd's):

- keeping local configuration files up-to-date using data stored in a key/value store like etcd or consul and processing template resources.
- reloading applications to pick up new config file changes

## Differences between remco and confd

- Multiple source/destination pairs per template resource - useful for programs that need more than one config file
- Multiple backends per template resource - get normal config values from etcd and secrets from vault
- [Pongo2](https://github.com/flosch/pongo2) template engine instead of go's text/template
- Zombie reaping support (if remco runs as pid 1)
- Additional backends can be provided as plugins.
- Create your own custom template filters easily with JavaScript.
- [Exec](https://heavyhorst.github.io/remco/details/exec-mode/) mode similar to consul-template.

## Overview

![remco overview](https://cdn.rawgit.com/HeavyHorst/remco/master/docs/images/Remco-overview.svg)

## Documentation

See: https://heavyhorst.github.io/remco/

## Installation
### Building from source

```shell
$ go get github.com/HeavyHorst/remco/cmd/remco
$ go install github.com/HeavyHorst/remco/cmd/remco
```

You should now have `remco` in your `$GOPATH/bin` directory

### Building from the repository

```shell
$ git clone https://github.com/HeavyHorst/remco
$ cd remco
$ make
$ ls bin/
remco
```

### Building a given release

```shell
$ export VERSION=v0.12.2
$ git checkout ${VERSION}
$ make release -j
$ ls bin/
remco_0.12.2_darwin_amd64.zip remco_0.12.2_linux_amd64.zip remco_0.12.2_windows_amd64.zip remco_darwin remco_linux remco_windows
```

### Using a pre-built release

Download the releases and extract the binary.

```shell
$ REMCO_VER=0.12.2
$ wget https://github.com/HeavyHorst/remco/releases/download/v${REMCO_VER}/remco_${REMCO_VER}_linux_amd64.zip
$ unzip remco_${REMCO_VER}_linux_amd64.zip
```

Optionally move the binary to your PATH

```shell
$ mv remco_linux /usr/local/bin/remco
```

Now you can run the remco command!

## Execution

run remco from local dir, configuration is read as default from `/etc/remco/config`

Command line params:

| parameter | description |
| --- | --- |
| -config | path to the configuration file |
| -onetime | flag to one run templating once, overriding "Onetime" flag for all backend resources |
| -version | print version and exit |

## Contributing

See [Contributing](https://github.com/HeavyHorst/remco/blob/master/CONTRIBUTING) for details on submitting patches.