⚠ WORK IN PROGRESS ⚠ Like onionshare, but for git repos. Instead of hosting your project (only) on github or the like, host it on a swarm of onions! ⚠ WORK IN PROGRESS ⚠
fnordomat fd63041dad conceptual work | 4 lat temu | |
---|---|---|
docs | 4 lat temu | |
oniongitshare | 4 lat temu | |
scripts | 4 lat temu | |
HISTORY.md | 4 lat temu | |
ISSUES.md | 7 lat temu | |
LICENSE | 8 lat temu | |
README.md | 4 lat temu | |
setup.py | 4 lat temu |
Like onionshare, but for git repos.
Distributed githubless repository sharing.
oniongitshare is an attempt to ease the distribution of git repos, away from central points of failure. It makes it easy to host git repos on a distributed swarm instead of just one central server.
Nodes can come and go, and network topology only depends on the peers entries in the nodes' config files. Changes that are merged by one's peers propagate by diffusion.
Future plans: oniongitshare is meant to evolve into an experimental distributed asynchronous collaboration platform. This means issue tracking, etc.
Come join the effort! Try it out!
Make a new directory and put this in the file ./repo.cfg (when creating a new repository instead of cloning from a peer, the list or indeed the repo.cfg file can remain empty)
[network]
peers = <comma-separated list of onion domain names, with or without the suffix .onion>
For a public repository, no authentication is needed (option -X). In case authentication is used, prepend the secret as follows: somebody:secret@peeroniondomainname.onion
For each shared repo, Globalist will create one .onion service. Note that it is possible to use either bare repos or not-bare repos.
To initialize a new blank repo and an onion address for it (using the current directory to store the config and repo):
oniongitshare -i
To clone a bare repo:
oniongitshare -c ...
To pull once from a bare repo:
oniongitshare -p
There are various other options and parameters, which you can view:
oniongitshare -h
For example, this uses /srv/oniongit/foobar
as base directory, starts its own tor process under /srv/oniongit/foobar/tor
, communicates with it via the given port, and starts serving:
oniongitshare -T /usr/bin/tor -C 9251 -d /srv/oniongit/foobar
If you initialize a new oniongitshare instance with -i
or -c
, then an onion address will be generated automatically that you can start handing out immediately. This is persistent and will be re-used anytime you serve from the same directory. No need to configure tor manually!
You need the pip3 package setuptools
, the rest will be downloaded automatically.
./setup.py install --user
or
torsocks pip3 install -v -e .
Ideas, further work, TODOs: