Giter Site home page Giter Site logo

dokku-rethinkdb-plugin's Introduction

dokku-rethinkdb-plugin

This project provides a plugin for Dokku to create linked RethinkDB containers for apps.

Features

  • No dependencies (other than a recent development version of Dokku.) Wow!
  • Deletes cleanly with apps. Oh my!
  • Survives reboots, cleanups, and redeploys. Holy cow!
  • Can add before or after pushing an app. Am I dreaming?
  • Allows access to admin ports through binding to host interfaces. Is this real life?

Vince McMahon reacts to dokku-rethinkdb-plugin

dokku-rethinkdb-plugin: The Gary Strydom of Dokku datastore plugins.

Installation

cd /var/lib/dokku/plugins
git clone https://github.com/stuartpb/dokku-rethinkdb-plugin rethinkdb
dokku plugins-install

Simple usage

Create a new container for a named app:

$ dokku rethinkdb:create foo # or "ssh dokku@server -t" client-side

-----> Creating new container: rethinkdb/foo

Deploy an app to that name (client side):

$ git remote add dokku dokku@server:foo
$ git push dokku master
Counting objects: 155, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (70/70), done.
Writing objects: 100% (155/155), 22.44 KiB | 0 bytes/s, done.
Total 155 (delta 92), reused 131 (delta 80)
remote: -----> Building foo ...
remote:        Ruby/Rack app detected
remote: -----> Using Ruby version: ruby-2.0.0

... blah blah blah ...

remote: -----> Deploying foo ...
remote: -----> Starting linked container rethinkdb_foo ...
remote:        Container ID: 99797e35d7b9
remote:        Container IP: 172.16.0.104
remote: -----> Deploy complete!
remote: -----> Cleaning up ...
remote: -----> Cleanup complete!
remote: =====> Application deployed:
remote:        http://foo.server

These steps can be done in either order - if an app has been pushed to the server, "rethinkdb:create" will re-deploy it with the RethinkDB container linked.

The container will be exposed in the config/app environment as RETHINKDB_HOST and RETHINKDB_PORT, as well as RDB_HOST and RDB_PORT (the names used by the RethinkDB example apps).

Advanced usage

All of these commands are detailed when running dokku help.

Bind a port on the host to the Web Admin UI for a RethinkDB container:

dokku rethinkdb:bind-webui <app> [host port]

Bind a port on the host to the cluster port (as used by the RethinkDB CLI) for a RethinkDB container:

dokku rethinkdb:bind-cluster <app> [host port]

Release a RethinkDB container's bindings to host ports (does not affect links to the associated app):

dokku rethinkdb:unbind <app>

Unlink and delete the RethinkDB container and data for an app:

dokku rethinkdb:delete <app>

Read app RethinkDB container logs:

dokku rethinkdb:logs <app>

Get RethinkDB container ID, IP, and any bound ports:

dokku rethinkdb:info <app>

(Re)start a RethinkDB container independently of a running app:

dokku rethinkdb:start <app>

Stop an app's running RethinkDB container:

dokku rethinkdb:stop <app>

(Re)set environment variables to direct to a linked RethinkDB container:

dokku rethinkdb:link <app>

dokku-rethinkdb-plugin's People

Contributors

janicduplessis avatar joliv avatar stuartpb avatar

Watchers

 avatar  avatar  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.