cloyster

Git deploy cluster based on ploy and node-discover

Think ploy + node-discover

Any ploy server you start via cloyster will discover other cloyster processes on the network and automatically propogate your git deployments to all other nodes within the cluster.

There is work to be done but this is already usable.

Currently pushing to a single node and propogating to all other nodes works. Commands such as ls, log, mv, rename, etc do not propogate throughout the network.

npm install -g cloyster
usage:
 
  cloyster server DIRECTORY PORT
  cloyster server { -d DIRECTORY | -p PORT | -a AUTHFILE | -f BOUNCER | -n CLUSTER-NAME }
 
    Create a cloyster http server, hosting repositories in DIRECTORY and listening
    on PORT for incoming connections.
 
    If AUTHFILE is given, it should be a json file that maps usernames to
    token strings to use for basic auth protection for cloyster actions.
    
    Type `cloyster help ssl` to show ssl options.
    
    You can specify a BOUNCER module with -f to use a custom http router.
 
    If CLUSTER-NAME is given, it will be used as part of the node-discover encryption
    key. This will allow you to to run multiple clusters without having to 
        change the default node-discover port.
 
  cloyster ls { -r REMOTE | --verbose, -v | --format=FORMAT }
 
    List the running process branch names at REMOTE.
    
    Verbose formatting will use `branch,hash,repo,port`.
 
  cloyster work { -r REMOTE | --format=FORMAT }
 
    List the working directories from checked out git commits.
    The default FORMAT is `repo,commit,time,branch`.
 
    Active branches are shown with a trailing *.
 
  cloyster clean
 
    Remove unused working directories. These are the directories listed in
    `cloyster work` without a *.
 
  cloyster log NAME { -n ROWS | -f | -b BEGIN | -e END }
 
    Show ROWS of log output for the branch NAME like `tail`.
    Default -n value: screen height.
 
    Stream live updates when `-f` is set like `tail -f`.
    Slice log records for NAME directly with `-b` and `-e`.
 
  cloyster log { -n ROWS | -f | -b BEGIN | -e END | --color=true }
 
    Show ROWS of log output for all branches.
    Lines will be prefaced with a colored branch name when stdout is a tty.
 
  cloyster mv SRC DST { -r REMOTE }
 
    Move the branch name SRC to the DST branch name at REMOTE.
 
  cloyster rm NAME { -r REMOTE }
 
    Remove the branch name at NAME, killing any running processes.
 
  cloyster restart NAME { -r REMOTE }
 
    Restart the process at NAME.
 
  cloyster stop NAME { -r REMOTE }
 
    Stop the process at NAME.
 
  cloyster redecloyster NAME { -r REMOTE }
 
    Redecloyster the process at NAME, re-running install and test scripts.
 
  cloyster help [TOPIC]
 
    Show this message or optionally a TOPIC.
    
    Topics: ssl
 
OPTIONS
 
  For `cloyster ls`, `cloyster mv`, `cloyster rm` commands that take a REMOTE parameter:
  
  REMOTE can be a git remote name or a remote URL to a cloyster server. If there
  is exactly one cloyster remote in set up as a git remote, it will be used by
  default.
 

MIT