{"id":13681412,"url":"https://github.com/i2p/i2p.firefox","last_synced_at":"2025-04-06T04:35:29.544Z","repository":{"id":44758770,"uuid":"283351950","full_name":"i2p/i2p.firefox","owner":"i2p","description":"A pre-configured browser profile and accompanying shortcut for easily configuring an I2P browser on Windows.","archived":false,"fork":false,"pushed_at":"2025-04-01T21:15:45.000Z","size":7392,"stargazers_count":29,"open_issues_count":0,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-01T22:24:02.229Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/i2p.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.txt","contributing":null,"funding":null,"license":"LICENSE.html","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}},"created_at":"2020-07-28T23:42:49.000Z","updated_at":"2025-04-01T21:15:48.000Z","dependencies_parsed_at":"2024-03-22T19:33:17.962Z","dependency_job_id":"6d7853bf-4a41-4834-ad2f-fc73703f084a","html_url":"https://github.com/i2p/i2p.firefox","commit_stats":null,"previous_names":[],"tags_count":309,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i2p%2Fi2p.firefox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i2p%2Fi2p.firefox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i2p%2Fi2p.firefox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i2p%2Fi2p.firefox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/i2p","download_url":"https://codeload.github.com/i2p/i2p.firefox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247435041,"owners_count":20938530,"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","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":[],"created_at":"2024-08-02T13:01:30.418Z","updated_at":"2025-04-06T04:35:28.625Z","avatar_url":"https://github.com/i2p.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"I2P Easy-Install Bundle for Windows, (Formerly)I2P Browsing Profile for Firefox\n===============================================================================\n\nFeatures:\n---------\n\n- Automatically select an up-to-date, secure browser from the host platform, with Tor Browser and Firefox preferred.\n- Automatically configure a profile for I2P\n- Automatically block-list all non-I2P local destinations\n- Enable first-party isolation, anti-fingerprinting, letterboxing, fusion, other privacy and security options\n- Automatically sandbox I2P, Non-I2P, and I2P-Application cookiestores\n\nBuild Dependencies:\n-------------------\n\n**SHORTCUT:** All the build artifacts can be produced by the description in the `.yaml` files in `.github/workflows`.\nThese can be run on Github's infrastructure, or on a local(Windows) PC using https://github.com/nektos/act.\nDoing things this way deals with all the dependency issues that Windows doesn't really give you a good way to deal with automatically.\nIt also guarantees that the same base container and environment gets used for every build no matter what machine it runs on.\nI highly recommend you use either Github CI or `nektos/act` for dev builds of this software, as it **automates literally every one of the steps**.\nCI-based builds follow the `WSL` version of the instructions.\n\nTo build this, you will need the following software packages\n(all available in Debian and Ubuntu, see WSL section below):\n\n- make\n- nsis\n- dos2unix\n- curl\n- jq\n\nThese need to be installed in the environment where the NSIS\nPackage is build, NOT the environment where the java package\nis built. These may be different, because you will need to\nuse a system which provides a Unix-like environment on top of\na Windows system. You can use WSL or Cygwin, and more detailed\ninstructions are provided below.\n\nBuilding for Windows target from Linux is not possible unless\nyou obtain a Windows package from my github.\n\nIn addition, you will need the NSIS plugin \"ShellExecAsUser\" which you can get from the\n[NSIS Wiki Page](https://nsis.sourceforge.io/ShellExecAsUser_plug-in). In order to install\nthe plugin on Debian, Ubuntu, or using `WSL`, you can download the: [7zip release](https://nsis.sourceforge.io/mediawiki/images/6/68/ShellExecAsUser_amd64-Unicode.7z)\nand copy the content of `Plugins` to `/usr/share/nsis/Plugins`.\n\n```sh\ncp -rv Plugins/* /usr/share/nsis/Plugins/\n```\n\nIncluding a jpackaged I2P Router\n--------------------------------\n\n**Prerequisites:** You need to have OpenJDK 14 or greater installed and configured\nwith your `%JAVA_HOME%` environment variable configured and `%JAVA_HOME%/bin` on\nyour `%PATH%`. You need to have Apache Ant installed and configured with `%ANT_HOME%`\nenvironment variable configured and `%ANT_HOME%/bin` on your `%PATH%`. You must have\nCygwin installed. You must have `NSIS.exe` installed and `makensis` available on your\n`%PATH%`. You must have Git for Windows installed. When installing git for Windows,\nyou should select \"Checkout as is, commit as is\" and leave line-endings alone.\n\nThe Windows build tools listed above must be installed on the Windows host machine.\n\nTODO: Add links to the respective instructions for each of these.\n\n**Note that after the dependencies are installed, this step is automated**\n**with `./buildscripts/build.sh`.**\n\nIn order to include a jpackaged(dependency-free) I2P router in the Profile\nBundle you will need to build the jpackaged I2P router as an \"App Image\" on\na Windows system and place it into a directory called `I2P` in your `i2p.firefox`\ncheckout. Building without a jpackage is no longer supported.\n\nAssuming a working java and jpackage environment on your Windows system, the\nfollowing command should generate a suitable \"App Image\" in a directory\ncalled \"I2P.\"\n\n        export I2P_VERSION=0.9.49\n        cp -R ../i2p.i2p/pkg-temp/lib build/lib\n        jpackage --type app-image --name I2P --app-version \"$I2P_VERSION\" \\\n          --verbose \\\n          --resource-dir build/lib \\\n          --input build/lib --main-jar router.jar --main-class net.i2p.router.RouterLaunch\n\nTransfer the I2P directory to the machine where you build i2p.firefox if\nnecessary, then complete the regular build instructions. If a jpackaged I2P router\nisn't present to use at build time, the inclusion will be skipped automatically\nwith a non-fatal warning.\n\nPre-built app-images are available from my daily releases at:\n\n        https://github.com/eyedeekay/i2p.plugins.firefox/releases/\n\nWindows Build\n-------------\n\nAfter installing the dependencies and completing the preparations,\njust run `buildscripts/unsigned.sh`.  This will produce the install.exe - the\nwindows installer, which sets up the shortcuts to launch Firefox on Windows.\nBuilding without a jpackage is no longer supported.\n\nWhen generating a build it's important to make sure that the\nlicenses for all the bundled softare are included. This should happen\nautomatically. When bundling software, describe the terms and where\nthey are applied in the `LICENSE.index`, then add the full license\nto the `licenses` directory. Then, add the full license to the `cat`\ncommand in the `build/licenses` make target. The build/licenses\ntarget is run automatically during the build process.\n\nEnd-to-End Windows build process using WSL(**Recommended**)\n-----------------------------------------------------------\n\n**See `config.sh` and `i2pversion` for instructions on how to tweak**\n**the build process. File an issue if you need help.**\n\n**If you've already done this once, you can just use:** `./unsigned.sh`\n**in `git bash`** to automatically build an installer. If you\nare using this method, you may use the `makensis` and `make` from\nUbuntu in WSL.\n\n 1. [Set up Windows Subsystem for Linux per Microsoft's instructions](https://docs.microsoft.com/en-us/windows/wsl/install-win10#manual-installation-steps)\n 2. [Install Ubuntu Focal per Microsoft's instructions](https://www.microsoft.com/store/apps/9n6svws3rx71)\n 3. Open Git Bash.\n 4. Install prerequisites `wsl sudo apt-get update \u0026\u0026 sudo apt-get install make nsis nsis-pluginapi dos2unix curl jq`\n 5. Clone `i2p.i2p` and `i2p.firefox`\n\n        git clone https://github.com/i2p/i2p.i2p\n        git clone https://github.com/i2p/i2p.firefox\n\n 6. Move to the i2p.i2p directory. Build the .jar files required to build the App Image\n  inside i2p.i2p. Return to home.\n\n        cd i2p.i2p\n        ant clean pkg\n        cd ..\n\n 7. Move into the i2p.firefox directory. Run the `./buildscripts/build.sh` script.\n\n        cd i2p.firefox\n        ./buildscripts/unsigned.sh\n\n 8. Compile the NSIS installer using WSL.\n\n        wsl make\n\nEnd-to-End Windows build process using Cygwin(More difficult than WSL for now)\n------------------------------------------------------------------------------\n\nI highly recommend you look into the Chocolatey package manager, which makes it much\neasier to configure these tools and keep them up to date.\n\n**Prerequisites:** In addition to the other prerequisites, you will need to to have\n`make` installed with `cygwin`. For our purposes, as long as everything else is\nset up and you're using git bash, that is enough to make the scripts compatible with\n`cygwin`. Cygwin builds without git bash are not likely to work.\n\n1. Run the Cygwin `setup-$arch.exe` for your platform to set up new packages. Select the `make` `jq` `dos2unix` and `curl` packages.\n2. Open a cygwin terminal.\n3. Clone `i2p.i2p` and `i2p.firefox`\n\n        git clone https://github.com/i2p/i2p.i2p\n        git clone https://github.com/i2p/i2p.firefox\n\n4. Move to the i2p.i2p directory. Build the .jar files required to build the App Image\n  inside i2p.i2p. Return to home.\n\n        cd i2p.i2p\n        ant clean pkg\n        cd ..\n\n5. Move into the i2p.firefox directory. Run the `./buildscripts/unsigned.sh` script.\n\n        cd i2p.firefox\n        ./buildscripts/unsigned.sh\n\nDoing a Release\n---------------\n\nOnce you have the installer `.exe` file produced by NSIS, you're almost ready to\ndo a release. As a final step, someone must sign the `.exe` file using a\nCertificate which Windows will recognize. Standard Windows signing tools are used.\n\n```sh\n./release.sh\n```\n\nproduces the binary and the su3.\n\nIssues\n------\n\nTo report issues against this browser profile, please file issues\nat [the official Gitlab](https://i2pgit.org/i2p-hackers/i2p.firefox)\nor the [Github Mirror](https://github.com/i2p/i2p.firefox). Issues\npertaining to the plugins may be reported to their upstream\nmaintainers if it's determined that our configuration is not at\nfault.\n\n## Credits\n\nThis profile manager makes use of a set of browser extensions which are largely the work of others.\nIt makes use of dependencies that are the work of others. In many ways, it's merely an elaborate\nconfiguration tool. A smart one, but a configuration tool nonetheless. Many thanks to the following\nprojects, developers, and communities:\n\n### Firefox and Chrome Extensions\n\n- [NoScript - Giorgio Maone and others](https://noscript.net)\n- [HTTPS Everywhere - Electronic Frontier Foundation](https://www.eff.org/https-everywhere)\n- [uBlock Origin - Raymond Gorhill and others](https://ublockorigin.com/)\n- [LocalCDN - nobody and others](https://www.localcdn.org/)\n- [jShelter - Libor Polčák and others](https://jshelter.org/)\n\n### Firefox Configuration Modifiations\n\n- [Arkenfox - Thorin Oakenpants and Others](https://github.com/arkenfox/user.js/)\n\nYou can find the license files for each of the these projects in the `src/i2p.firefox.*.profile/extensions/*`\ndirectory for Firefox, and the `src/i2p.chromium.*.profile/extensions/*.js/*` directories for Chromium within\nthe [`i2p.plugins.firefox`](https://i2pgit.org/idk/i2p.plugins.firefox) project.\n\nI2P in Private Browsing is developed on Gitlab and Github by idk and the community:\n - https://i2pgit.org/idk/I2P-in-Private-Browsing-Mode-Firefox\n - https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fi2p%2Fi2p.firefox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fi2p%2Fi2p.firefox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fi2p%2Fi2p.firefox/lists"}