NAME

bifhub - bif hub management tool

VERSION

0.1.0_19 (2014-09-23)

SYNOPSIS

bifhub COMMAND [...]

DESCRIPTION

Bifhub is a command-line tool for managing hosted bif hubs. It provides an interface to providers such as bifhub.com.

Bifhub commands form a superset of the bif command set, so anything you can do with bif you can do with bifhub. The distinction exists in order to keep bif and its documentation as small as possible and focused only on the activities that the majority of bif users will need.

Global Options, Command Structure & Interaction

Global options, the structure of the commands, and the command input/output interaction are the same for bifhub as they are for bif.

Reference documents however for the extra bifhub commands have titles like bifhub-command-name.

Quickstart

If you want to create a new hub and already know the provider's plan & host(s) you wish to use, you can get up and running with the following command inside an initialized repository:

bifhub signup --create hub.name bifhub.com:plan host

This is equivalent to the following:

bifhub pull provider bifhub.com
bifhub new hub hub.name
bifhub signup hub.name plan
bifhub push hub hub.name host

TUTORIAL

The first time a bifhub (or a bif) command is run you will be prompted to create your user identity. Apart from your name and email address, an SSH public key is required which will identify you to the provider as all communication takes place via ssh.

Initialisation

The first action for working with remote bif hubs is to create a management repository locally, using the bifhub init command:

#!sh
bifhub init my.org

The first argument to the init command is the name of your hub. The name is representative of your project organisation, and should be globally unique. We generally recommend to use something similar to a web url.

Importing a providers plans and locations

The second step is to register a hub provider, in order to see their hosts and/or availabe plans.

#!sh
bifhub pull provider bifhub.com

Listing the offers (plans) and locations (hosts) is possible with the appropriate list command:

#!sh
bifhub list hosts

bifhub list plans

Signing up for a plan

#!sh
bifhub signup my.org bifhub.com:plan2

This will do a check with the provider to ensure that the name has not been already taken. If successful you should be able to see the invoice:

#!sh
bifhub list invoices

Pushing a hub to remote hosts

The hub does not go live until you push it up to a particular host.

#!sh
bifhub push hub my.org HOSTS...

Team communication

After a push your hub will be available on the designated hosts, and you can inform your team how to register their bif repositories with the hub:

Hi team,

Our collaboration hub has been created at the following location:

    your.org@zrh.bifhub.com

To access the hub send us your identity from a local bif
repository:

    #!sh
    bif init
    bif push identity 1 your.org@zrh.bifhub.com

Once we have enabled the permissions you can register the hub:

    #!sh
    bif pull hub your.org@zrh.bifhub.com

And then import the "devel" project to work on straight away.
    
    #!sh
    bif pull project devel

    # bif new issue/task etc...

Don't forget to sync regularly.

    #!sh
    bif sync

Thanks,
PM

Synchronising updates

You may want to change your hub name, or the provider may change their plans, or add to their list of hosts, and so on. The sync command is used to exchange these updates.

#!sh
bifhub sync

Managing the hub

You can at any time confirm the hub and its status:

#!sh
bifhub list hubs

bifhub show hub ID

At some point in the future there will be actions that a hub manager can take, such as allowing access, defining roles & permissions, paying invoices and so on.

FILES

.bifhub/config

Per-repository configuration file.

.bifhub/db.sqlite3

Per-repository SQLite database.

$HOME/.bifu/config

User configuration file.

SEE ALSO

bif(1)

AUTHOR

Mark Lawrence <nomad@null.net>

COPYRIGHT AND LICENSE

Copyright 2014 Mark Lawrence <nomad@null.net>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.