• This repository has been archived on 14/Aug/2018
  • Stars
    star
    600
  • Rank 74,640 (Top 2 %)
  • Language
    Ruby
  • Created over 15 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Local git repository hosting with a friendly web interface and bonjour discovery. It's like your own little adhoc, network-aware github!

Bananajour - Local git publication and collaboration

Via the best reddit comment ever written:

The logo is the fucking business. The mustache just bring[s] it to a whole other level.

Bananajour is local git repository hosting with a friendly web interface and Bonjour discovery. It's like a bunch of adhoc, local, network-aware githubs!

Unlike Gitjour, the repositories you're serving are not your working git repositories, they're served from ~/.bananajour/repositories. You can push to your bananajour repositories from your working copies just like you do with github.

Screenshot of local view of Bananajour 2.1.3

Purpose

Hosting/sharing git repos is painful. This is the core value that github originally solved. When you don't have internet access, say at railscamp, then bananajour allows for discovery and read-only access of projects. - @drnic

Installation and usage

You'll need at least git version 1.6. Run git --version if you're unsure.

Install it from gemcutter via gems:

gem install bananajour

(you might need to do a gem sources -a http://gemcutter.org beforehand!)

Start it up:

bananajour

Go into an existing project and add it to bananajour:

cd ~/code/myproj
bananajour add

Publish your codez:

git push banana master

Fire up http://localhost:9331/ to check it out.

If somebody starts sharing a Bananajour repository with the same name on the network it'll automatically show up in the network thanks to the wonder that is Bonjour.

For a list of all the commands:

bananajour help

Optional configuration: you can override the hostname by setting a global git config option like so:

git config --global bananajour.hostname foobar

If you set this setting, then bananajour will assume that you know precisely what you're doing, it will not append .local, it will not check this hostname is valid, or do anything to it. If you set this, then you're on your own.

Linux support

To install the dnssd gem on Linux you'll need avahi. For Ubuntu peeps this means:

sudo aptitude update

sudo aptitude install g++ ruby-dev \
 libavahi-compat-libdnssd-dev avahi-discover avahi-utils

and you'll need to set the domain-name:

sudo sed -i \
 -e 's/#domain-name=local/domain-name=local/' \
 /etc/avahi/avahi-daemon.conf

sudo service avahi-daemon restart

You can debug whether or not Avahi can see Bananajour and git-daemon Bonjour statuses using the command 'avahi-browse'. This command can be found in the package 'avahi-utils'.

The following command will show you all of the Bonjour services running on your local network:

avahi-browse --all

If you kill bananajour with kill -9 it doesn't get a chance to unregister the Bonjour services, and when it is restarted it will die with DNSSD::AlreadyRegisteredError. Although not ideal, you can work around this my restarting avahi-daemon first.

Note: You might have to restart the avahi-daemon sometimes if you are having problems seeing other bananajours.

Official repository and support

The official repo and support issues/tickets live at github.com/toolmantim/bananajour.

Feature and support discussions live at groups.google.com/group/bananajour.

Developing

bundle install
rake -T

Contributors

License

All directories and files are MIT Licensed.

Warning to all those who still believe secrecy will save their revenue stream

Bananas were meant to be shared. There are no secret bananas.

More Repositories

1

toolmantim.com-old

Ze code behind the old toolmantim.com
Ruby
52
star
2

toadhopper

A base library for Hoptoad error reporting
Ruby
52
star
3

tap-release

Automatically update Homebrew taps when you publish new GitHub releases
JavaScript
50
star
4

boomper

Bump version numbers in files whenever new releases are published to GitHub.
JavaScript
37
star
5

states.js

A simple way of capturing and communicating different states in html+js mockups.
JavaScript
36
star
6

facebook-connect-sinatra-example

An example of using facebook connect to log into a Sinatra application
Ruby
24
star
7

bksr

Run and test your Buildkite pipeline steps locally, just as they'd run in CI (discontinued)
JavaScript
22
star
8

teapot

Rack middleware to help you, as a teapot, comply with HTCPCP/1.0: the Hyper Text Coffee Pot Control Protocol
Ruby
14
star
9

toadhopper-sinatra

Post Hoptoad notifications from Sinatra
Ruby
13
star
10

wwmd

9
star
11

asset-pipeline-example

Example Rails 3.2 app showing how to: use the asset pipeline, scare unicorns, and activate epic rainbows.
Ruby
9
star
12

railscampteev5

Railscamp Tee v5 website
CSS
6
star
13

webjam

Old repository for webjam. New one lives at http://github.com/webjam/webjam
Ruby
5
star
14

hyper-buildkite-agent

A docker-enabled Buildkite Agent that runs on hyper.sh
Shell
5
star
15

coffee-pots

Recording all the fresh pots
Shell
5
star
16

rack-digestif

A rack middleware that ensures Sprockets assets are served regardless of whether the asset digest matches
Ruby
4
star
17

doggie-wars-nsw

App for the apps4nsw hack day
JavaScript
4
star
18

fig-buildbox-agent

Containerized build agent using Buildbox, Docker and Fig
Shell
4
star
19

iworkontheweb

Camping and flickr machine tag driven site showcasing people who work on the web and why
Ruby
4
star
20

nsw-pet-register

App for apps4nsw which provides an API to the NSW companion register database
4
star
21

railscampteev7

The RUBPOCALYPSE—Railscamp Tee v7
CSS
3
star
22

actions

Some experimental GitHub Actions
Shell
3
star
23

glitch-sprite-sampler

A small demo of the beautiful, now public domain, Glitch artwork and animation
JavaScript
3
star
24

login-form

A small site for introducing backend programming
CSS
2
star
25

sams-29th-birthday

Happy Birthday sing-along for @sj26’s 29th birthday at Camp JS VII 2016
JavaScript
2
star
26

railscampteev9

The Getaway—Railscamp Tee v9
Ruby
2
star
27

dotfiles

Shell
2
star
28

bankbest.safariextension

A Safari Extension to improve the UI of BankWest Online Banking
JavaScript
2
star
29

toolmantim

2
star
30

puncorp

An monorepo testbed for playing with Bazel
Shell
2
star
31

isamendown.com

Unofficial app for checking if getamen.com is up. Uses sinatra-synchrony for async goodness.
Ruby
1
star
32

animals-with-light-sabers

A small site for teaching HTML and CSS (with gifs!)
CSS
1
star
33

carlahackett.com

A Node.js app and finder Commands that @canarycarla uses to update carlahackett.com
HTML
1
star
34

buildkite-agent-action-test

HCL
1
star
35

toolmantim.com

Tim’s personal site
HTML
1
star
36

octocats-travels

A small site for teaching HTML and CSS
CSS
1
star
37

hipstercoffee.co

A small site for teaching HTML and CSS
CSS
1
star
38

vcc-website

New website for the Victorian Climbing Club
PHP
1
star