Coder Social home page Coder Social logo

ipgit's Introduction

Inter Planetary GIT

build standard-readme compliant

Because it is possible!

Table of Contents

About

I think web 3.0 future is promising. I like the idea of a distributed web. As a consequence, I like IPFS. It is such a cool concept. However, in my opinion, most people do not use it because it is hard to do so. Go? Running a Docker container in my machine? What? Can't I just use it as a simple tool or service?

Yes, you can.

This is why I created this, extremely simple and limited, web application. It is just an endpoint. A git remote, for the tech savy. You can configure with one bash command and just use it. See the (small) example below:

$ git remote add ipfs http://ipgit.herokuapp.com/
$ git push ipfs
remote: Resolving deltas: 100% (53/53), done.
remote: IPFS hash:
remote: QmU8wwg65D2MpbumSKPTWUhydmAin5jmXbwNhxUWzyeXs1

It works the other way around as well. If you want, you can use it to clone git repositories that are stored in IPFS.

$ git clone https://ipgit.herokuapp.com/QmZUnAU4Vn7DvDHEnJ1dz2uV2dimf79HNXdffgY9MbQGWP
Cloning into 'QmZUnAU4Vn7DvDHEnJ1dz2uV2dimf79HNXdffgY9MbQGWP'...
$ ls QmZUnAU4Vn7DvDHEnJ1dz2uV2dimf79HNXdffgY9MbQGWP/
Dockerfile  Makefile  app.py  git.py  heroku.yml  post-update  requirements.txt  sender.py

That is it! No installation, no requirements. Just plain old git.

Your files will be pinned by default. However, because heroku shuts down the after some inactivity time, it is not guarantee that your files will be there when you need them. You should try pinning them into some file pinning service to avoid loosing it.

Install

This project uses fastapi and uvicorn for server interactions. IPFS needs to be running on the local machine for the server to start. And, obviously, you will need git installed.

$ pip install -r requirements.txt

Usage

To run a local version of this project, just execute:

$ ipfs daemon --init
$ uvicor app:app --reload
$ make local  # optional

make local adds a local remote on http://localhost:8000 for development. When developing, you can simply test your modification by calling git push local.

Thanks

This project would not have been possible without the code in the following repositories. They helped me understand a lot about git http backend.

ipgit's People

Contributors

dependabot[bot] avatar meyer1994 avatar dependabot-preview[bot] avatar

Stargazers

Tuan Duc Tran avatar Boris Mann avatar Suzanne Soy avatar v1rtl avatar Arunaday Basu avatar yihuan zhao avatar G. Bueno avatar Miguel García avatar Rafal W. avatar ypa y yhm avatar The SunShining avatar Smarthug avatar C H avatar hiro / connec / THETIME avatar Burninator avatar Andreas Källberg avatar itsallpretend avatar Etch avatar Andrea Barontini avatar  avatar Ego Lee avatar Danny Ben Shitrit avatar Sugeng Tigefa avatar Gerald Bauer avatar nein avatar Daniel Ribeiro avatar Ceddy Muhoza avatar みづな れい avatar Panda avatar  avatar Xiaosheng An avatar Zhicheng Lin avatar Laura Kirsch avatar  avatar jgh2i avatar Alexander Zagaynov avatar Tommi avatar Miloš Havlíček avatar  avatar Guido Dipietro avatar Osinniy avatar Giuliano Cardoso avatar AntNestNetwork avatar Holden Green avatar  avatar Mats Cornegoor avatar Ben Tilford avatar Reuben Garrett avatar Andrei Jiroh Halili avatar Marco Ferreira avatar snehil avatar Nithin avatar Sávio Resende avatar Paulo R. A. Sales avatar Beni Ben zikry avatar Nikita Dudnik avatar Dionysius Marquis avatar Panagiotis avatar Joseph Coffland avatar EverGrok'n' avatar mxvin avatar DABEOM KIM avatar Vlad Bokov avatar Maddiaa avatar Michael Vorburger avatar Mehul Aggarwal avatar Null Void avatar Dimcho avatar Douglas Martins avatar Ramna Sidharta avatar

Watchers

Paulo R. A. Sales avatar TMF_Archivist avatar James Cloos avatar みづな れい avatar  avatar GB avatar Kostas Georgiou avatar

ipgit's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.