Skip to content

basecamp/orc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

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

    $ echo '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:

    $ type orc
    #=> "orc is a aliased to _orc_wrapper"
  4. Start the web and dns processes:

    $ orc 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:

~~~ sh
$ echo nameserver 127.0.0.1 | \
  sudo tee /etc/resolver/devel /etc/resolver/staging
~~~

For Linux, please install dnsmasq and add the following to your config: ~~~ sh address=/.devel/127.0.0.1 ~~~

Uninstalling

$ orc uninstall

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

Adding apps to orc

$ orc 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

$ orc 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:

$ orc 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:

$ orc web logs
# or
$ orc 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!

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published