basecamp/orc

Name: orc

Owner: Basecamp

Description: Orc(hestrator) - A really bad pow.cx clone for linux

Created: 2015-08-21 04:36:27.0

Updated: 2017-05-03 09:24:24.0

Pushed: 2017-01-05 17:58:25.0

Homepage: null

Size: 310

Language: Shell

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Orc(hestrator)

This is a script to emulate some of pow's functionality.

For it all to work, it requires:

  1. A functional nginx installation (provided)
  2. A functional dnsmasq installation (provided)
  3. An app that listens on $app_dir/tmp/app.sock or a static site that places it's content under $app_dir/public
  4. Some familiarity with the command line
Installation
  1. Check out orc into ~/.orc.

    t clone https://github.com/basecamp/orc.git ~/.orc
    
  2. Add orc init to your shell to enable shims and autocompletion.

    ho 'eval "$(~/.orc/bin/orc init -)"' >> ~/.bash_profile
    

    Use ~/.bashrc on Ubuntu, or ~/.zshrc for Zsh.

  3. Restart your shell so that PATH changes take effect. (Opening a new terminal tab will usually do it.) Now check if orc was set up:

    pe orc
    "orc is a aliased to _orc_wrapper"
    
  4. Start the web and dns processes:

    c install
    

    This will configure our DNS resolver to use our new dns server for the *.devel domain. Here's how we're doing it on OS X:

    ho nameserver 127.0.0.1 | \
    do tee /etc/resolver/devel /etc/resolver/staging
    

    For Linux, please install dnsmasq and add the following to your config:

    ess=/.devel/127.0.0.1
    
Uninstalling
c uninstall

And remove the eval "$(~/.orc/bin/orc init -)" line from your .bashrc/.bash_profile/.zshrc.

Adding apps to orc
c add /path/to/my-cool-app

You can now go to http://my-cool-app.dev/ and see your app running!

Removing apps from orc
c remove my-cool-app

This will remove the link to the app and orc cannot manage it anymore.

Starting and Stopping Apps

This is in flux. More details as this architecture emerges.

Help

Running orc help is your friend.

Nginx and dnsmasq

To handle nginx and dns, we use docker! Go install it. To get them setup and running, it's pretty easy:

c web start

This will create AND TRUST a local CA for local https development and start the docker containers. If you want to watch the nginx logs, run:

c web logs

c web logs -f
General Architecture

Our general request path will look like this: Docker Dev Request Flow

Thanks

Many thanks to @noahhl, @sstephenson, @qrush for their excellent support and encouragement! Thanks to @ernie for the_setup which also influenced the design; more directly in some ways than others!


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.