{"id":13422920,"url":"https://github.com/meyer1994/ipgit","last_synced_at":"2026-05-15T18:15:25.430Z","repository":{"id":38232393,"uuid":"288910483","full_name":"meyer1994/ipgit","owner":"meyer1994","description":"Inter Planetary Git","archived":false,"fork":false,"pushed_at":"2025-09-17T23:11:40.000Z","size":64,"stargazers_count":71,"open_issues_count":4,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-18T01:10:50.517Z","etag":null,"topics":["git","heroku","ipfs"],"latest_commit_sha":null,"homepage":"https://ipgit.herokuapp.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meyer1994.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-08-20T04:59:46.000Z","updated_at":"2025-09-17T23:11:36.000Z","dependencies_parsed_at":"2023-02-08T20:46:21.120Z","dependency_job_id":"76f4c3a2-7743-49a6-ae1c-3d2714f552c1","html_url":"https://github.com/meyer1994/ipgit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/meyer1994/ipgit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meyer1994%2Fipgit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meyer1994%2Fipgit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meyer1994%2Fipgit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meyer1994%2Fipgit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meyer1994","download_url":"https://codeload.github.com/meyer1994/ipgit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meyer1994%2Fipgit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33074575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","heroku","ipfs"],"created_at":"2024-07-30T23:00:59.826Z","updated_at":"2026-05-15T18:15:25.394Z","avatar_url":"https://github.com/meyer1994.png","language":"Python","funding_links":[],"categories":["Apps"],"sub_categories":[],"readme":"# Inter Planetary GIT\n\n[![build](https://github.com/meyer1994/ipgit/actions/workflows/build.yml/badge.svg)](https://github.com/meyer1994/ipgit/actions/workflows/build.yml)\n[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)\n\nBecause it is possible!\n\n## Table of Contents\n\n- [About](#about)\n- [Install](#install)\n- [Usage](#usage)\n- [Thanks](#thanks)\n\n## About\n\nI think web 3.0 future is promising. I like the idea of a distributed web. As a\nconsequence, I like IPFS. It is such a cool concept. However, in my opinion,\nmost people do not use it because it is hard to do so. Go? Running a Docker\ncontainer in my machine? What? Can't I just use it as a simple tool or service?\n\n**Yes, you can.**\n\nThis is why I created this, extremely simple and limited, web application. It\nis just an endpoint. A git remote, for the tech savy. You can configure with\none bash command and just use it. See the (small) example below:\n\n```sh\n$ git remote add ipfs http://ipgit.herokuapp.com/\n$ git push ipfs\nremote: Resolving deltas: 100% (53/53), done.\nremote: IPFS hash:\nremote: QmU8wwg65D2MpbumSKPTWUhydmAin5jmXbwNhxUWzyeXs1\n```\n\nIt works the other way around as well. If you want, you can use it to clone git\nrepositories that are stored in IPFS.\n\n```sh\n$ git clone https://ipgit.herokuapp.com/QmZUnAU4Vn7DvDHEnJ1dz2uV2dimf79HNXdffgY9MbQGWP\nCloning into 'QmZUnAU4Vn7DvDHEnJ1dz2uV2dimf79HNXdffgY9MbQGWP'...\n$ ls QmZUnAU4Vn7DvDHEnJ1dz2uV2dimf79HNXdffgY9MbQGWP/\nDockerfile  Makefile  app.py  git.py  heroku.yml  post-update  requirements.txt  sender.py\n```\n\nThat is it! No installation, no requirements. Just plain old git.\n\nYour files will be pinned by default. However, because heroku shuts down the\nafter some inactivity time, it is not guarantee that your files will be there\nwhen you need them. You should try pinning them into some file pinning service\nto avoid loosing it.\n\n## Install\n\nThis project uses [fastapi][1] and [uvicorn][2] for server interactions.\n[IPFS][3] needs to be running on the local machine for the server to start.\nAnd, obviously, you will need [git][4] installed.\n\n```sh\n$ pip install -r requirements.txt\n```\n\n## Usage\n\nTo run a local version of this project, just execute:\n\n```sh\n$ ipfs daemon --init\n$ uvicor app:app --reload\n$ make local  # optional\n```\n\n`make local` adds a `local` remote on `http://localhost:8000` for development.\nWhen developing, you can simply test your modification by calling\n`git push local`.\n\n## Thanks\n\nThis project would not have been possible without the code in the following\nrepositories. They helped me understand a lot about git http backend.\n\n- [git_http_backend.py][5]\n- [grack][6]\n\n\n[1]: https://fastapi.tiangolo.com/\n[2]: https://uvicorn.org/\n[3]: https://ipfs.io/\n[4]: https://git-scm.com/\n\n[5]: https://github.com/dvdotsenko/git_http_backend.py\n[6]: https://github.com/schacon/grack\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeyer1994%2Fipgit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeyer1994%2Fipgit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeyer1994%2Fipgit/lists"}