{"id":20747343,"url":"https://github.com/ether1project/ethofs-webui-core","last_synced_at":"2026-04-19T22:31:07.992Z","repository":{"id":55646634,"uuid":"196015170","full_name":"Ether1Project/ethofs-webui-core","owner":"Ether1Project","description":null,"archived":false,"fork":false,"pushed_at":"2020-12-15T17:16:51.000Z","size":15730,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-26T10:47:08.232Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/Ether1Project.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}},"created_at":"2019-07-09T13:32:51.000Z","updated_at":"2019-07-09T13:42:40.000Z","dependencies_parsed_at":"2022-08-15T05:30:42.615Z","dependency_job_id":null,"html_url":"https://github.com/Ether1Project/ethofs-webui-core","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ether1Project/ethofs-webui-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ether1Project%2Fethofs-webui-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ether1Project%2Fethofs-webui-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ether1Project%2Fethofs-webui-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ether1Project%2Fethofs-webui-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ether1Project","download_url":"https://codeload.github.com/Ether1Project/ethofs-webui-core/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ether1Project%2Fethofs-webui-core/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32025545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"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":[],"created_at":"2024-11-17T08:12:46.254Z","updated_at":"2026-04-19T22:31:07.964Z","avatar_url":"https://github.com/Ether1Project.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IPFS Web UI\n\n\u003e A web interface to [IPFS](https://ipfs.io).\n\u003e\n\u003e Check on your node stats, explore the IPLD powered merkle forest, see peers around the world and manage your files, without needing to touch the CLI.\n\n![Screenshot of the status page](docs/screenshots/ipfs-webui-status.png)\n\n| Files | Explore | Peers | Settings |\n|-------|---------|-------|----------|\n| ![Screenshot of the file browser page](docs/screenshots/ipfs-webui-files.png) | ![Screenshot of the IPLD explorer page](docs/screenshots/ipfs-webui-explore.png) | ![Screenshot of the swarm peers map](docs/screenshots/ipfs-webui-peers.png) | ![Screenshot of the settings page](docs/screenshots/ipfs-webui-settings.png) |\n\n\n[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg)](https://protocol.ai/) [![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg)](http://webchat.freenode.net/?channels=%23ipfs) [![dependencies Status](https://david-dm.org/ipfs-shipyard/ipfs-webui/revamp/status.svg)](https://david-dm.org/ipfs-shipyard/ipfs-webui/revamp) [![CircleCI](https://img.shields.io/circleci/project/github/ipfs-shipyard/ipfs-webui/master.svg)](https://circleci.com/gh/ipfs-shipyard/ipfs-webui)\n\nThe IPFS WebUI is a **work-in-progress**. Help us make it better! We use the issues on this repo to track the work and it's part of the wider [IPFS GUI project](https://github.com/ipfs/ipfs-gui).\n\nThe app uses [`ipfs-http-client`](https://github.com/ipfs/js-ipfs-http-client) to communicate with your local IPFS node.\n\nThe app is built with [`create-react-app`](https://github.com/facebook/create-react-app). Please read the [docs](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#table-of-contents).\n\n## Install\n\nWith `node` \u003e= 8.12 and `npm` \u003e= 6.4.1 installed, run\n\n```sh\n\u003e npm install\n```\n\n## Usage\n\n**When working on the code**, run an ipfs daemon, the local [dev server](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#npm-start), the [unit tests](https://facebook.github.io/jest/), and the [storybook](https://storybook.js.org/) component viewer and see the results of your changes as you save files.\n\nIn separate shells run the following:\n\n```sh\n# Run IPFS\n\u003e ipfs daemon\n```\n\n```sh\n# Run the dev server @ http://localhost:3000\n\u003e npm start\n```\n\n```sh\n# Run the unit tests\n\u003e npm test\n```\n\n```sh\n# Run the UI component viewer @ http://localhost:9009\n\u003e npm run storybook\n```\n\n### Configure IPFS API CORS headers\n\nYou must configure your IPFS API at http://127.0.0.1:5001  to allow [cross-origin (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) requests from your dev server at http://localhost:3000\n\nSimilarly if you want to try out pre-release versions at https://webui.ipfs.io you need to add that as an allowed domain too.\n\n#### Easy mode\n\nRun the **[cors-config.sh](./cors-config.sh)** script with:\n\n```console\n\u003e ./cors-config.sh\n```\n\n#### The manual way\n\n```console\n\u003e ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '[\"http://localhost:3000\", \"https://webui.ipfs.io\"]'\n\u003e ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '[\"PUT\", \"GET\", \"POST\"]'\n```\n\n#### Reverting\n\nTo reset your config back to the default configuration, run the following command.\n\n```console\n\u003e ipfs config --json API.HTTPHeaders {}\n```\n\nYou might also like to copy the `~/.ipfs/config` file somewhere with a useful name so you can use `ipfs config replace \u003cfile\u003e` to switch your node between default and dev mode easily.\n\n## Build\n\nTo create an optimized static build of the app, output to the `build` directory:\n\n```sh\n# Build out the html, css \u0026 jss to ./build\n\u003e npm run build\n```\n\n## Test\n\nThe following command will run the app tests, watch source files and re-run the tests when changes are made:\n\n```sh\n\u003e npm test\n```\n\nThe WebUI uses Jest to run the isolated unit tests. Unit test files are located next to the component they test and have the same file name, but with the extension `.test.js`\n\n## End-to-end tests\n\nThe end-to-end tests (e2e) test the full app in a headless Chromium browser. They require an http server to be running to serve the app.\n\nIn dev, run `npm start` in another shell before starting the tests\n\n```\n# Run the end-to-end tests\n\u003e npm run test:e2e\n```\n\nBy default the test run headless, so you won't see the the browser. To debug test errors, it can be helpful to see the robot clicking around the site. To disable headless mode and see the browser, set the environment variable `DEBUG=true`\n\n```\n# See the end-to-end tests in a browser\n\u003e DEBUG=true npm run test:e2e\n```\n\nIn a **continuous integration** environment we lint the code, run the unit tests, build the app, start an http server and run the unit e2e tests.\n\n```sh\n\u003e npm run lint\n\u003e npm test\n\u003e npm run build\n\u003e npm run test:ci:e2e\n```\n\n## Coverage\n\nTo do a single run of the tests and generate a coverage report, run the following:\n\n```sh\n\u003e npm run test:coverage\n```\n\n## Lint\n\nPerform [`standard`](https://standardjs.com/) linting on the code:\n\n```sh\n\u003e npm run lint\n```\n\n## Analyze\n\nTo inspect the built bundle for bundled modules and their size, first `build` the app then:\n\n```sh\n# Run bundle\n\u003e npm run analyze\n```\n\n## Translations\n\nThe translations are stored on [./public/locales](./public/locales) and the English version is the source of truth. We use Transifex to help us translate WebUI to another languages.\n\n**If you're interested in contributing a translation**, go to [our page on Transifex](https://www.transifex.com/ipfs/ipfs-webui/translate/), create an account, pick a language and start translating.\n\nYou can read more on how we use Transifex and i18next in this app at [`docs/LOCALIZATION.md`](docs/LOCALIZATION.md)\n\n## Releasing a new version of the WebUI.\n\n1. PR master with the result of `tx pull -a` to pull the latest translations from transifex\n1. Tag it `npm version`, `git push`, `git push --tags`.\n1. Add release notes to https://github.com/ipfs-shipyard/ipfs-webui/releases\n1. Wait for master to [build on CI](https://circleci.com/gh/ipfs-shipyard/ipfs-webui), and grab the CID for the build\n1. Update the hash at:\n   - js-ipfs https://github.com/ipfs/js-ipfs/blob/master/src/http/api/routes/webui.js#L20\n   - go-ipfs https://github.com/ipfs/go-ipfs/blob/master/core/corehttp/webui.go#L4\n   - companion https://github.com/ipfs-shipyard/ipfs-companion/blob/master/add-on/src/lib/state.js#L27\n   - desktop https://github.com/ipfs-shipyard/ipfs-desktop/blob/master/package.json#L17\n\n## Contribute\n\nFeel free to dive in! [Open an issue](https://github.com/ipfs-shipyard/ipfs-webui/issues/new) or submit PRs.\n\nTo contribute to IPFS in general, see the [contributing guide](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md).\n\n[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)\n\n\n## License\n\n[MIT](LICENSE) © Protocol Labs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fether1project%2Fethofs-webui-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fether1project%2Fethofs-webui-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fether1project%2Fethofs-webui-core/lists"}