{"id":22843384,"url":"https://github.com/milahu/darknet-git-hosting-services","last_synced_at":"2025-10-05T01:53:19.419Z","repository":{"id":184840148,"uuid":"672560235","full_name":"milahu/darknet-git-hosting-services","owner":"milahu","description":"tor hidden onion services running gitea, cgit, ...","archived":false,"fork":false,"pushed_at":"2025-07-01T14:33:17.000Z","size":45,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-22T21:46:18.017Z","etag":null,"topics":["darknet","git-hosting","git-providers","git-services","gitea","onion","onion-services","tor","tor-hidden-services","torproject"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/milahu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-07-30T13:56:49.000Z","updated_at":"2025-07-07T23:44:14.000Z","dependencies_parsed_at":"2023-07-30T15:24:46.210Z","dependency_job_id":"eb5b0ae5-ae17-4612-80fa-7abaac46eac9","html_url":"https://github.com/milahu/darknet-git-hosting-services","commit_stats":null,"previous_names":["milahu/darknet-git-hosting-services"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/milahu/darknet-git-hosting-services","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milahu%2Fdarknet-git-hosting-services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milahu%2Fdarknet-git-hosting-services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milahu%2Fdarknet-git-hosting-services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milahu%2Fdarknet-git-hosting-services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/milahu","download_url":"https://codeload.github.com/milahu/darknet-git-hosting-services/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milahu%2Fdarknet-git-hosting-services/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278399692,"owners_count":25980332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["darknet","git-hosting","git-providers","git-services","gitea","onion","onion-services","tor","tor-hidden-services","torproject"],"created_at":"2024-12-13T02:14:33.059Z","updated_at":"2025-10-05T01:53:19.413Z","avatar_url":"https://github.com/milahu.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# darknet-git-hosting-services\n\n## services\n\n### based on gitea\n\n- https://github.com/go-gitea/gitea\n- https://about.gitea.com/\n- written in: Go\n- forked from: [gogs](https://gogs.io/)\n\n#### darktea.onion\n\ndark gitea\n\n- http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion\n- limitation: http 500 errors (internal server error) with low frequency \u0026rarr; wait and retry\n   - the http 500 errors may be caused by gitea upgrades\n- limitation: requires login for the webinterface and for the git interface. this is a desperate measure to fight DDOS attacks,\n  because gitea does not-yet implement better DDOS protections. see also [doc/darktea-issue-16-dont-require-login-for-the-webinterface.md](doc/darktea-issue-16-dont-require-login-for-the-webinterface.md)\n- meta repos\n   - [Darktea/Rules](http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/Darktea/Rules)\n   - [Darktea/Guides](http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/Darktea/Guides)\n   - [Darktea/Issues_Support_Feedback](http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/Darktea/Issues_Support_Feedback)\n\n```sh\nremote=darktea.onion\nowner=$(cat ~/.git-credentials | grep '@github\\.com$' | sed -E 's|https://([^:]+):.*$|\\1|')\nrepo=$(basename \"$PWD\")\nurl=http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/$owner/$repo\n\ngit -c remote.origin.proxy=socks5h://127.0.0.1:9050 clone $url\ncd $repo\ngit remote add $remote $url\ngit config --add remote.$remote.proxy socks5h://127.0.0.1:9050\n```\n\n#### righttoprivacy.onion\n\nright to privacy\n\n- http://gg6zxtreajiijztyy5g6bt5o6l3qu32nrg7eulyemlhxwwl6enk6ghad.onion\n- limitation: http 502 errors (bad gateway) with low frequency \u0026rarr; wait and retry\n- aka \"human rights tech\". it was renamed to \"right to privacy\"\n- meta repos\n   - [RightToPrivacy/Gitea-Onion](http://gg6zxtreajiijztyy5g6bt5o6l3qu32nrg7eulyemlhxwwl6enk6ghad.onion/RightToPrivacy/Gitea-Onion)\n   - [RightToPrivacy/Gitea-Onion_WELCOME_GET_STARTED](http://gg6zxtreajiijztyy5g6bt5o6l3qu32nrg7eulyemlhxwwl6enk6ghad.onion/RightToPrivacy/Gitea-Onion_WELCOME_GET_STARTED)\n\n```sh\nremote=righttoprivacy.onion\nowner=$(cat ~/.git-credentials | grep '@github\\.com$' | sed -E 's|https://([^:]+):.*$|\\1|')\nrepo=$(basename \"$PWD\")\nurl=http://gg6zxtreajiijztyy5g6bt5o6l3qu32nrg7eulyemlhxwwl6enk6ghad.onion/$owner/$repo\n\ngit -c remote.origin.proxy=socks5h://127.0.0.1:9050 clone $url\ncd $repo\ngit remote rename origin $remote\ngit config --add remote.$remote.proxy socks5h://127.0.0.1:9050\n```\n\n### based on gogs\n\n- https://github.com/gogs/gogs\n- written in: Go\n\n#### darkforest.onion\n\n- http://git.dkforestseeaaq2dqz2uflmlsybvnq2irzn4ygyvu53oazyorednviid.onion/\n\n```sh\nremote=darkforest.onion\nowner=$(cat ~/.git-credentials | grep '@github\\.com$' | sed -E 's|https://([^:]+):.*$|\\1|')\nrepo=$(basename \"$PWD\")\nurl=http://git.dkforestseeaaq2dqz2uflmlsybvnq2irzn4ygyvu53oazyorednviid.onion/$owner/$repo\n\ngit -c remote.origin.proxy=socks5h://127.0.0.1:9050 clone $url\ncd $repo\ngit remote rename origin $remote\ngit config --add remote.$remote.proxy socks5h://127.0.0.1:9050\n```\n\n## using tor-hidden git remotes\n\nclone a git repo from a tor-hidden remote:\n\n```sh\nremote=darktea.onion\nowner=$(cat ~/.git-credentials | grep '@github\\.com$' | sed -E 's|https://([^:]+):.*$|\\1|')\nrepo=$(basename \"$PWD\")\nurl=http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/$owner/$repo\n\ngit -c remote.origin.proxy=socks5h://127.0.0.1:9050 clone $url\ncd $repo\ngit remote rename origin $remote\ngit config --add remote.$remote.proxy socks5h://127.0.0.1:9050\n```\n\nadd a tor-hidden remote to an existing git repo:\n\n```sh\nremote=darktea.onion\nowner=$(cat ~/.git-credentials | grep '@github\\.com$' | sed -E 's|https://([^:]+):.*$|\\1|')\nrepo=$(basename \"$PWD\")\nurl=http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/$owner/$repo\n\ngit remote add $remote $url\ngit config --add remote.$remote.proxy socks5h://127.0.0.1:9050\n```\n\nadd multiple tor-hidden remotes to an existing git repo:\n\n```sh\n#!/usr/bin/env bash\n\n# scripts/git-remote-add.sh\n\nset -eux\n\nowner=$(cat ~/.git-credentials | grep '@github\\.com$' | sed -E 's|https://([^:]+):.*$|\\1|')\nif [ -z \"$owner\" ]; then\n  echo \"error: failed to parse repo owner from ~/.git-credentials\"\n  exit 1\nfi\n\ncd \"$(dirname \"$0\")/..\"\nrepo=$(basename \"$PWD\")\n\nfunction git_remote_add_onion() {\n  local remote=\"$1\"\n  local url=\"$2\"\n  git remote add \"$remote\" \"$url\" ||\n  git remote set-url \"$remote\" \"$url\"\n  git config --add remote.\"$remote\".proxy socks5h://127.0.0.1:9050\n}\n\nremote=darktea.onion\nurl=http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/$owner/$repo\ngit_remote_add_onion \"$remote\" \"$url\"\n\nremote=righttoprivacy.onion\nurl=http://gg6zxtreajiijztyy5g6bt5o6l3qu32nrg7eulyemlhxwwl6enk6ghad.onion/$owner/$repo\ngit_remote_add_onion \"$remote\" \"$url\"\n\nremote=darkforest.onion\nurl=http://git.dkforestseeaaq2dqz2uflmlsybvnq2irzn4ygyvu53oazyorednviid.onion/$owner/$repo\ngit_remote_add_onion \"$remote\" \"$url\"\n```\n\nnow `git pull` and `git fetch` and `git push` will use the tor socks5 proxy at `127.0.0.1:9050`\n\n```sh\nremote=darktea.onion\n\ngit pull $remote\ngit fetch $remote\ngit push $remote\n```\n\nthe tor socks5 proxy at `127.0.0.1:9050` is started\nby `sudo systemctl start tor` on linux\nor `tor.exe --service start` on windows\n(youre an idiot if you still use windows, but well... addicts gonna addict)\n\n### example\n\n```sh\ncd $(mktemp -d)\n\nremote=darktea.onion\nowner=milahu\nrepo=darknet-git-hosting-services\nurl=http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/$owner/$repo\n\ngit -c remote.origin.proxy=socks5h://127.0.0.1:9050 clone $url\ncd $repo\ngit remote rename origin $remote\ngit config --add remote.$remote.proxy socks5h://127.0.0.1:9050\n```\n\n### git authentication\n\nto `$HOME/.gitconfig` add this section:\n\n```\n[credential]\n  # store all entered logins in $HOME/.git-credentials\n  helper = store\n```\n\nnow git will ask for username and password only on your first access to a remote\nand store the login data in `$HOME/.git-credentials` for future use\n\n## broken services\n\n\u003cdetails\u003e\n\n#### open privacy gitea\n\n- http://gitopcybr57ris5iuivfz62gdwe2qk5pinnt2wplpwzicaybw73stjqd.onion\n- limitation: cannot create repositories: \"You have already reached your limit of 0 repositories.\"\n\n#### project segfault git\n\n- http://git.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion\n- limitation: signup is broken. confirmation email is not sent. the signup page says \"A new confirmation email has been sent to `xxx@xxx.onion`. Please check your inbox within the next 3 hours to complete the registration process.\" but the confirmation email never arrives.\n\n#### git.dotya.ml\n\n- http://2crftbzxbcoqolvzreaaeyrod5qwycayef55gxgzgfcpqlaxrnh3kkqd.onion\n- clearnet: https://git.dotya.ml\n- limitation: signup is broken.\n- via https://dotya.ml/onions/\n\n#### adhoccode\n\n- http://adhoccode34gsycq72umva3hcs44lajzvcpsjsn3ezpcibwc25cujkqd.onion\n- limitation: cannot create repositories: \"The owner has already reached the limit of 0 repositories.\"\n\n### based on forgejo\n\n- forgejo is a FOSS fork of gitea\n- https://forgejo.org/faq/\n   - Why was Forgejo created?\n      - In October 2022 the domains and trademark of Gitea were transferred to a for-profit company without knowledge or approval of the community. Despite writing an open letter, the takeover was later confirmed. Forgejo was created as an alternative providing a software forge whose governance further the interest of the general public.\n      - Forgejo was initially presented as a “soft-fork” of Gitea, similar to LineageOS, a community led distribution based on Android from Google. It is however better described as a product built on top of Gitea, Git and hundreds of other Free Software projects. Forgejo also has its own documentation, infrastructure, release pipeline, CI infrastructure, distribution channels etc.\n\n#### nixnet\n\n- http://qt5vr747phiq55ubqip4hflmpygzl374mum2zbyqdxg6sqbngmzlqhid.onion\n- limitation: signup is broken. creating an account fails with \"You cannot register with your email address.\"\n- via https://nixnet.services/\n\n### based on cgit\n\n- https://github.com/zx2c4/cgit\n- https://git.zx2c4.com/cgit/about/\n- written in: C\n\n### based on gitlab\n\n- https://github.com/gitlabhq/gitlabhq\n- https://gitlab.com/gitlab-org/gitlab\n- https://gitlab.com/gitlab-org/gitlab-foss\n- written in: Ruby\n\n### based on gitarena\n\n- https://github.com/mellowagain/gitarena\n- written in: Rust\n\n### based on sourcehut\n\n- https://sr.ht/~sircmpwn/sourcehut/\n- written in: Go, Python\n\n### based on gerrit\n\n- A web-based code review system for projects using Git\n- https://www.gerritcodereview.com/\n- https://gerrit.googlesource.com/gerrit/\n- written in: Java\n\n### based on radicle\n\n- https://github.com/radicle-dev/radicle-interface\n- https://app.radicle.xyz/\n- written in: TypeScript, Rust\n\n\u003c/details\u003e\n\n## darknet search engines\n\nuseful to find other darknet git hosting services\n\n- ahmia: http://juhanurmihxlp77nkq76byazcldy2hlmovfu2epvl5ankdibsot4csyd.onion/\n- torch: http://xmh57jrknzkhv6y3ls3ubitzfqnkrwxhopf5aygthi7d6rplyvk3noyd.onion/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilahu%2Fdarknet-git-hosting-services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmilahu%2Fdarknet-git-hosting-services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilahu%2Fdarknet-git-hosting-services/lists"}