A frontend for an IPFS Kubo and IPFS Desktop
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
chore(ci): skip publishPreview for dependabot PRs saves CI time by skipping kubo/ipfs-cluster-ctl download, IPFS init, and .car artifact creation on dependency update PRs | 4 个月前 | |
refactor: typescript api-address-form (#2404) * test: add tests for ApiAddressForm * refactor: rename apiaddressform file * chore: expect typescript error in apiaddressform test file * refactor: api-address-form is typescript jsx * test: remove redux-bundler from api-address-form test * test: clean up api-address-form tests * test: clean up tests * fix: remove deprecated onKeyPress and add tests * chore: minor cleanup * test: storybook uses ContextBridgeProvider * fix: ipfs-provider connects action to contextBridge properly * fix: contextBridge supports functions * chore: fix typing of store | 10 个月前 | |
chore(i18n): locale sync this also includes migration of tx client config | 4 年前 | |
fix: typecheck more files (#2409) * fix: all .tsx files are typechecked by default * fix: add custom typings * fix: test files are typechecked * fix: typecheck everything under src/pins * chore: typecheck src/blank and src/contexts * fix: typecheck src/constants * fix: typecheck src/helpers * chore: typecheck src/icons/** * chore: typecheck src/loader * fix: typecheck src/navigation * fix: typecheck src/welcome * chore: some type fixes * fix: use react-joyride types. only override necessary * chore: use proper TFunction type | 10 个月前 | |
fix(ci): test stability improvements (#2466) | 5 个月前 | |
fix: status page supports webrtc (#2180) * feat: use @multiformats/multiaddr * deps: update multiaddr-to-uri * deps: update ipld-explorer-components This also updates ipld-explorer-components to 5.2.0 which will allow us to remove a lot of old deps (part of #1965) | 2 年前 | |
feat(config): add Local Gateway URL for reverse proxy and Docker (#2486) * feat: add Local Gateway URL setting for reverse proxy support Adds a new 'Local Gateway URL' setting that allows users to override the gateway address from Kubo config. This is useful when: - Running Kubo in Docker - Accessing WebUI through a reverse proxy - Accessing from a different host than where Kubo runs The setting takes priority over the Kubo config gateway address. When empty, the behavior falls back to the existing logic. Fixes #2458 * fix: normalize gateway URLs by stripping trailing slashes Ensures URLs like 'https://example.com/' and 'https://example.com' are handled the same way, avoiding double slashes when constructing paths like /ipfs/CID. * fix: sync local gateway setting to kuboGateway for Helia/Explore The ipld-explorer-components (Explore page) uses localStorage key 'kuboGateway' with {host, port, protocol} format. This change syncs our 'ipfsLocalGateway' setting to that format so the Explore page also uses the correct gateway URL. Fixes Explore page using 127.0.0.1:8080 instead of custom gateway. * fix: avoid 'address' in localGatewayForm description to prevent test flakiness The e2e test uses getByText('Addresses') which matches any element containing 'address' (case-insensitive). Changed 'gateway address' to 'gateway URL' in the description to avoid matching this query. * fix: apply local gateway override everywhere The Local Gateway URL only reached download links, so previews, thumbnails and IPNS links still used the public gateway behind a reverse proxy. Make the override apply to every gateway link the WebUI builds. - config: when an override is set, use it as the reachable gateway too, so previews, thumbnails, Explore and IPNS links honor it - ipns-manager: use the available gateway URL, which also fixes a broken link before the gateway check has run - gateway/ipfs-provider: one shared helper builds the Explore (Helia) gateway config from the override, and clearing the override resets it - local-gateway-form: check the URL loads before saving so a typo cannot silently break links; the check now keeps the port - settings: show the description above the input like the other gateway fields, link the gateway address to its Kubo docs, and use `http://localhost:8080` in the example - tests: unit coverage for the override selection and the Helia config helper, plus an e2e that sets a Local Gateway URL and confirms it on the Status page Closes #2383 --------- Co-authored-by: Marcin Rataj <lidel@lidel.org> | 2 天前 | |
feat(config): add Local Gateway URL for reverse proxy and Docker (#2486) * feat: add Local Gateway URL setting for reverse proxy support Adds a new 'Local Gateway URL' setting that allows users to override the gateway address from Kubo config. This is useful when: - Running Kubo in Docker - Accessing WebUI through a reverse proxy - Accessing from a different host than where Kubo runs The setting takes priority over the Kubo config gateway address. When empty, the behavior falls back to the existing logic. Fixes #2458 * fix: normalize gateway URLs by stripping trailing slashes Ensures URLs like 'https://example.com/' and 'https://example.com' are handled the same way, avoiding double slashes when constructing paths like /ipfs/CID. * fix: sync local gateway setting to kuboGateway for Helia/Explore The ipld-explorer-components (Explore page) uses localStorage key 'kuboGateway' with {host, port, protocol} format. This change syncs our 'ipfsLocalGateway' setting to that format so the Explore page also uses the correct gateway URL. Fixes Explore page using 127.0.0.1:8080 instead of custom gateway. * fix: avoid 'address' in localGatewayForm description to prevent test flakiness The e2e test uses getByText('Addresses') which matches any element containing 'address' (case-insensitive). Changed 'gateway address' to 'gateway URL' in the description to avoid matching this query. * fix: apply local gateway override everywhere The Local Gateway URL only reached download links, so previews, thumbnails and IPNS links still used the public gateway behind a reverse proxy. Make the override apply to every gateway link the WebUI builds. - config: when an override is set, use it as the reachable gateway too, so previews, thumbnails, Explore and IPNS links honor it - ipns-manager: use the available gateway URL, which also fixes a broken link before the gateway check has run - gateway/ipfs-provider: one shared helper builds the Explore (Helia) gateway config from the override, and clearing the override resets it - local-gateway-form: check the URL loads before saving so a typo cannot silently break links; the check now keeps the port - settings: show the description above the input like the other gateway fields, link the gateway address to its Kubo docs, and use `http://localhost:8080` in the example - tests: unit coverage for the override selection and the Helia config helper, plus an e2e that sets a Local Gateway URL and confirms it on the Status page Closes #2383 --------- Co-authored-by: Marcin Rataj <lidel@lidel.org> | 2 天前 | |
feat(config): add Local Gateway URL for reverse proxy and Docker (#2486) * feat: add Local Gateway URL setting for reverse proxy support Adds a new 'Local Gateway URL' setting that allows users to override the gateway address from Kubo config. This is useful when: - Running Kubo in Docker - Accessing WebUI through a reverse proxy - Accessing from a different host than where Kubo runs The setting takes priority over the Kubo config gateway address. When empty, the behavior falls back to the existing logic. Fixes #2458 * fix: normalize gateway URLs by stripping trailing slashes Ensures URLs like 'https://example.com/' and 'https://example.com' are handled the same way, avoiding double slashes when constructing paths like /ipfs/CID. * fix: sync local gateway setting to kuboGateway for Helia/Explore The ipld-explorer-components (Explore page) uses localStorage key 'kuboGateway' with {host, port, protocol} format. This change syncs our 'ipfsLocalGateway' setting to that format so the Explore page also uses the correct gateway URL. Fixes Explore page using 127.0.0.1:8080 instead of custom gateway. * fix: avoid 'address' in localGatewayForm description to prevent test flakiness The e2e test uses getByText('Addresses') which matches any element containing 'address' (case-insensitive). Changed 'gateway address' to 'gateway URL' in the description to avoid matching this query. * fix: apply local gateway override everywhere The Local Gateway URL only reached download links, so previews, thumbnails and IPNS links still used the public gateway behind a reverse proxy. Make the override apply to every gateway link the WebUI builds. - config: when an override is set, use it as the reachable gateway too, so previews, thumbnails, Explore and IPNS links honor it - ipns-manager: use the available gateway URL, which also fixes a broken link before the gateway check has run - gateway/ipfs-provider: one shared helper builds the Explore (Helia) gateway config from the override, and clearing the override resets it - local-gateway-form: check the URL loads before saving so a typo cannot silently break links; the check now keeps the port - settings: show the description above the input like the other gateway fields, link the gateway address to its Kubo docs, and use `http://localhost:8080` in the example - tests: unit coverage for the override selection and the Helia config helper, plus an e2e that sets a Local Gateway URL and confirms it on the Status page Closes #2383 --------- Co-authored-by: Marcin Rataj <lidel@lidel.org> | 2 天前 | |
feat: add Agent Version column to peers table (#2433) * feat: add Agent Version column to peers table shows which IPFS implementation each peer is running (e.g., kubo/0.35.0) depends on https://github.com/ipfs/js-kubo-rpc-client/pull/342 * fix: increase agent version truncation to 64 chars aligns with kubo's limit from ipfs/kubo#9465 * chore: update kubo-rpc-client to v5.3.0 - includes identify field support from ipfs/js-kubo-rpc-client#342 - add @babel/plugin-proposal-private-property-in-object to fix build warning - update browserslist database * refactor: remove agent version truncation - removes client-side truncation as it will be handled upstream in kubo via ipfs/kubo#9465 - simplifies agentVersion to use undefined instead of empty string when not present * refactor: compact connection column display - use slash notation (ip4/tcp) instead of bullets - shorten quic-v1 to quic - use monospace font like other technical columns | 9 个月前 | |
chore: ensure consistent line endings (#659) Adds editorconfig to keep our editors ending lines with LF and .gitattributes to get git to ensure LF line endings when the editor doesn't. License: MIT Signed-off-by: Oli Evans <oli@tableflip.io> | 7 年前 | |
feat: upload progress ui (#1655) This PR adds visual feedback for then big files are imported: progress bar + % status. There is also new http-client and a bunch of required fixes. * fix: broken file list stories * feat: upload progress ui * chore: integrate external changes * fix: integrate new http client * fix: jsdom problem * fix(cid) switch circleci to new images * fix(e2e): test/e2e/remote-api.test.js This makes E2E tests for remote API less flaky: - leverage expect-puppeteer where possible - tweak navigation so it is not impacted by connection-error state - force refresh of status page to avoid wait for manual refresh * fix(ci): E2E_IPFSD_TYPE=js npm run test:e2e js-ipfs changed CLI path at some point recently Co-authored-by: Marcin Rataj <lidel@lidel.org> | 5 年前 | |
refactor: migrate versionLink to typescript (#2399) * refactor: migrate versionLink to typescript * chore: fix lint and dep-check | 10 个月前 | |
feat: add async provide on share/copy/pin/ipns (#2387) * feat: add async provide on share/copy/pin/ipns dispatches one-time extra announce of the root CID when sharing, copying CIDs, pinning, or publishing to IPNS. improves performance when content is accessed by others shortly after these operations by ensuring we are as close to max number of DHT peers with provider record as possible * chore: address review feedback | 10 个月前 | |
fix: e2e/explore.test.js succeeds in offline mode (#2109) * test(e2e-explore): add apollo block fixtures * test(e2e-explore): remove children fixtures * test(e2e-explore): add project apollo archive test * test(e2e-explore): use fixtures for XKCD archives * chore: self-PR review issues * Update .gitattributes Co-authored-by: Marcin Rataj <lidel@lidel.org> * Update test/e2e/explore.test.js Co-authored-by: Nishant Arora <1895906+whizzzkid@users.noreply.github.com> --------- Co-authored-by: Nishant Arora <1895906+whizzzkid@users.noreply.github.com> Co-authored-by: Marcin Rataj <lidel@lidel.org> | 3 年前 | |
fix(ci): test stability improvements (#2466) | 5 个月前 | |
feat!: use ipld-explorer-components@4.0.0 (#2117) * feat!: use latest ipld-explorer-components BREAKING CHANGE: This change updates the version of ipld-explorer-components we're using. The new ipld-explorer-components does not depend on old js-ipfs nor ipld dependencies. * fix: transient dependency warning * test: fix peer-locations.test.js * test: fix src/bundles/peer-bandwidth.test.js * test: fix test/e2e/explore.test.js * fix: support async peer info * test: fix src/bundles/peer-locations.test.js * fix: don't throw on lack of coverage data * feat: use ipld-explorer-components@4.0.0 * chore: attempt to remove npm strict engines * fix: :wrench: Fixing ipld-explorer Builds (#2120) * chore(CI): remove unnecessary npm install * fix: remove unused var * fix: test-storybook:ci script * Update src/bundles/peer-locations.js Co-authored-by: Nishant Arora <1895906+whizzzkid@users.noreply.github.com> * chore: remove custom eslint rule --------- Co-authored-by: Nishant Arora <1895906+whizzzkid@users.noreply.github.com> | 3 年前 | |
test: add playwright code coverage (#2014) * test: Add playwright test coverage support * chore: remove extraneous comment * fix: test-e2e.yml PR comment depends on context.issue.number * fix: .nycrc json syntax * fix: remove coverage comment; output report in action * chore: ensure test:build always re-builds * chore: ensure playwright coverage saves to correct folder * fix: ensure test:build is ran before test:e2e * fix: remove needs: build from test:e2e * fix: put istandbul output back into .nyc_output * chore: add codecov action * fix: run nyc report prior to codecov action | 3 年前 | |
refactor: migrate icons to typescript (#2397) * refactor: rename icons to .tsx * fix: generate new typescript icons * fix: build and lint working properly * fix: build, lint, storybook all work | 10 个月前 | |
fix(ci): test stability improvements (#2466) | 5 个月前 | |
chore(release): 4.12.0 [skip ci] ## [4.12.0](https://github.com/ipfs/ipfs-webui/compare/v4.11.1...v4.12.0) (2026-03-02) CID `bafybeihxglpcfyarpm7apn7xpezbuoqgk3l5chyk7w4gvrjwk45rqohlmm` --- ### Features * **peers:** updated ipfs-geoip and Peers screen optimizations ([#2480](https://github.com/ipfs/ipfs-webui/issues/2480)) ([4879de2](https://github.com/ipfs/ipfs-webui/commit/4879de2c7292ed8476988bb0d32713f475a6deff)) ### Bug Fixes * diagnostics tab urls electron ([#2481](https://github.com/ipfs/ipfs-webui/issues/2481)) ([d1e5cd2](https://github.com/ipfs/ipfs-webui/commit/d1e5cd26cb7063b47bbed44c5499902a519e29e9)) ### Trivial Changes * pull transifex translations ([#2479](https://github.com/ipfs/ipfs-webui/issues/2479)) ([bc3856b](https://github.com/ipfs/ipfs-webui/commit/bc3856b76b87f4e3d4d50b8757e092954f48edd4)) | 3 个月前 | |
docs: add license | 7 年前 | |
fix(ci): test stability improvements (#2466) | 5 个月前 | |
feat: use ipld-explorer-components@8.1.0 (#2283) * feat: use latest ipld-explorer-components * fix: unit tests pass * fix: e2e tests work * fix: update ipld-explorer-components patch * fix: storybook ci tests pass * chore: fix dep-check * feat: use latest ipld-explorer-components * feat: use latest ipld-explorer-components * feat: resolve button types issue * chore: fix depcheck * test: fix storybook tests * chore: attempt to fix fleek deploy * test: stop using react-rewired-esm for unit tests * test: use kubo standard ports for e2e tests * chore: use ipld-explorer-components@8.1.0 * chore: use node lts version replaces #2259 | 1 年前 | |
feat: Add thumbnails support for files in grid view (#2337) * feat: Add grid view mode with thumbnails for files page Introduces a new grid view mode for the files page, allowing users to switch between list and grid views. Includes: - New FilesGrid component - View mode toggle buttons - Shared props between list and grid views - Updated rendering logic to support both view modes * feat: Enhance files page with multi-select and keyboard navigation Adds multi-select functionality and improved keyboard navigation to the files page grid view: - Implement file selection with checkboxes - Add keyboard navigation between files - Create a new SelectedActions component for bulk operations - Update styling to support selection and focus states * fix: Improve FilesGrid and GridFile styling and linting - Adjust GridFile thumbnail opacity for better visual appearance * feat: Improve file selection and view mode in Files Page - Add select all checkbox for grid view - Move selected state management to parent component - Refactor file selection logic to support bulk and individual selection - Minor UI layout adjustments * feat: Add text preview for files in grid view - Implement text preview for text-based files in Grid File - Add support for reading file contents with doRead action - Enhance FileThumbnail to display text previews - Add localized "Select all entries" text across language files, this was done using google translate * chore: remove yarn.lock file * feat: use larger icon size when preview is not available for grids * feat: Improve view mode UI and file hash display - Move view mode buttons to Header component - Truncate file hash in grid view for better readability - Adjust Header layout and styling * feat: Add view mode translations and adjust UI styling - Add translation for view mode - Apply consistent height to view mode buttons in FilesPage - Adjust Header component margins and layout - Add responsive margin for breadcrumbs header * feat: Improve FilesGrid keyboard navigation and responsiveness * style: Reduce border width from 2px to 1px in default state * fix: resolve issue with storybook test * feat: Add keyboard shortcuts and drag-and-drop support for gridfiles - Implement keyboard shortcut modal with comprehensive keyboard navigation - Add drop zone and drag-and-drop functionality for files in grid view - Enhance list file navigation and selection with improved keyboard controls - Add visual indicators for drag and drop interactions in grid view * fix: avoid jiggling ui moving 2px and changing border weight does not render well and makes ui jiggle. switching to static sizing + reusing dotted border convention from the old Files screen * fix: avoid changing unrelated translations we dont want to cause unnecessary work for people at https://app.transifex.com/ipfs/ipfs-webui/dashboard/ * fix: remove shadow on hover we do not use shadows in UI anywhere else, let's keep grid view UI simple and follow similar visual indicators as list view * chore: remove translation edits * chore: rename shortcut model filename * chore: fix mem leak and side effects * chore: rename new files to kebab case * fix: grid keyboard nav * fix: migrate to typescript * chore: fix lint failures * chore: fix runtime error * fix: simplify keyboard shortcut condition * fix: resolve issue with enter shortcut on grid * chore: remove default props on FilesList * feat: add grid view step to files tour * fix: improve keyboard navigation and refactor grid file component * feat: add e2e tests for grid view functionality * chore: remove e2e unnecessary setup script * fix: resolve error with grid e2e tests --------- Co-authored-by: Marcin Rataj <lidel@lidel.org> Co-authored-by: Russell Dempsey <1173416+SgtPooki@users.noreply.github.com> | 1 年前 | |
fix(ui): replace IPFS API with Kubo RPC (#2267) This aims to finish our UX migration from "ipfs daemon" being IPFS, and making it explicitly clear that there is no "IPFS API", but we use "Kubo daemon" and "Kubo RPC API". Many users are not aware that 99% of their interactions with IPFS depend on Kubo, and if things go wrong, they are not sure what "Kubo RPC" is. This PR replaces "IPFS API" with "Kubo RPC" to make it more clear what components are at play, and what terms to use when looking for help. | 1 年前 | |
fix: semantic release custom notes import (#2113) see https://github.com/ipfs/ipfs-webui/actions/runs/4789922352/jobs/8518538468 Co-authored-by: Russell Dempsey <1173416+SgtPooki@users.noreply.github.com> | 3 年前 | |
fix: migrate error boundary to typescript (#2402) * fix: migrate error boundary to typescript error boundary no longer shows unnecessarily large icon now displays an error message and component that surfaced the error * test: fix jest config | 10 个月前 | |
chore(release): 4.12.0 [skip ci] ## [4.12.0](https://github.com/ipfs/ipfs-webui/compare/v4.11.1...v4.12.0) (2026-03-02) CID `bafybeihxglpcfyarpm7apn7xpezbuoqgk3l5chyk7w4gvrjwk45rqohlmm` --- ### Features * **peers:** updated ipfs-geoip and Peers screen optimizations ([#2480](https://github.com/ipfs/ipfs-webui/issues/2480)) ([4879de2](https://github.com/ipfs/ipfs-webui/commit/4879de2c7292ed8476988bb0d32713f475a6deff)) ### Bug Fixes * diagnostics tab urls electron ([#2481](https://github.com/ipfs/ipfs-webui/issues/2481)) ([d1e5cd2](https://github.com/ipfs/ipfs-webui/commit/d1e5cd26cb7063b47bbed44c5499902a519e29e9)) ### Trivial Changes * pull transifex translations ([#2479](https://github.com/ipfs/ipfs-webui/issues/2479)) ([bc3856b](https://github.com/ipfs/ipfs-webui/commit/bc3856b76b87f4e3d4d50b8757e092954f48edd4)) | 3 个月前 | |
chore(release): 4.12.0 [skip ci] ## [4.12.0](https://github.com/ipfs/ipfs-webui/compare/v4.11.1...v4.12.0) (2026-03-02) CID `bafybeihxglpcfyarpm7apn7xpezbuoqgk3l5chyk7w4gvrjwk45rqohlmm` --- ### Features * **peers:** updated ipfs-geoip and Peers screen optimizations ([#2480](https://github.com/ipfs/ipfs-webui/issues/2480)) ([4879de2](https://github.com/ipfs/ipfs-webui/commit/4879de2c7292ed8476988bb0d32713f475a6deff)) ### Bug Fixes * diagnostics tab urls electron ([#2481](https://github.com/ipfs/ipfs-webui/issues/2481)) ([d1e5cd2](https://github.com/ipfs/ipfs-webui/commit/d1e5cd26cb7063b47bbed44c5499902a519e29e9)) ### Trivial Changes * pull transifex translations ([#2479](https://github.com/ipfs/ipfs-webui/issues/2479)) ([bc3856b](https://github.com/ipfs/ipfs-webui/commit/bc3856b76b87f4e3d4d50b8757e092954f48edd4)) | 3 个月前 | |
chore: fix all eslint warnings in root (#2378) * fixed all eslint warnings in root * fixing ci --------- Co-authored-by: Russell Dempsey <1173416+SgtPooki@users.noreply.github.com> | 11 个月前 | |
fix: show proper error state in import notifications (#2452) * fix: show proper error state in import notifications - Fix import notification showing 'Imported 0 items' when imports fail - Add new translation key for failed import messages - Update notification logic to prioritize error states over success - Add visual error styling for failed import notifications - Fix icon import file extensions from .js to .tsx Fixes #2448 * fix(files): show error message in import notification when importing via "Add by path" fails, display the actual error message in the bottom drawer notification instead of just "Failed to import 1 item" - pass source path as init parameter in doFilesAddPath for error display - add FailedImport component to render path and error message - separate WRITE errors from ADD_BY_PATH errors in FileImportStatus - add .catch() to prevent unhandled rejection crash - add e2e test verifying error message is shown * fix(files): improve import notification UX and add IPNS support - support IPNS paths and protocol URLs (ipfs://, ipns://) in import - show import progress in notification for path imports - preserve import history in drawer instead of clearing on new import - notification styling reflects last operation (not cumulative errors) - show errors first in drawer when last import failed - fix icon alignment and add red tint for error items - extract shared path validation to src/lib/ipfs-path.js - increase e2e viewport to 1920x1080 for test stability - add tests for import by path, trailing slash, error history --------- Co-authored-by: Suchitra Swain <suchitraswain.2012gmail.com> Co-authored-by: Marcin Rataj <lidel@lidel.org> | 5 个月前 |
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
IPFS Web UI
IPFS 的 Web 界面,随 Kubo 和 ipfs-desktop 一同提供。
无需使用命令行,即可查看节点状态、探索 IPLD 驱动的默克尔森林、查看全球节点,并管理文件。

| 文件 | 探索 | 节点 | 设置 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
什么是 IPFS Web UI? | 使用方法 | 开发 | 翻译 | 获取帮助
What is IPFS Web UI?
IPFS Web UI 是一个基于浏览器的界面,用于与您的 Kubo 节点进行交互。它使用 kubo-rpc-client 与本地 Kubo RPC API 进行通信。
功能:
- 状态 - 查看 Kubo 节点的连接状态、节点数量、带宽和仓库统计信息
- 文件 - 浏览、上传、下载和管理 Kubo 节点中的文件
- 探索 - 导航 IPLD DAG 并检查 CID
- 节点 - 在世界地图上查看已连接的节点并管理连接
- 设置 - 配置 Kubo 节点、管理固定服务以及自定义界面
访问途径:
- 随 Kubo 一同提供,地址为
http://127.0.0.1:5001/webui - 随 IPFS Desktop 一同提供
- 最新发布版本:https://webui.ipfs.io
main分支预览版:https://dev.webui.ipfs.io
用法
使用 Kubo 运行
如果您已安装 Kubo,在守护进程运行时,Web UI 可通过 http://127.0.0.1:5001/webui 访问。
使用 Docker 运行
$ docker pull ipfs/kubo
$ docker run -p 8080:8080 -p 5001:5001 -it ipfs/kubo
有关更多选项,请参见 Kubo Docker Hub 页面。
开发
详细的开发说明请参见 docs/developer-notes.md。
快速开始:
$ npm install # Install dependencies
$ ./cors-config.sh # Configure CORS for local development
$ ipfs daemon # Start Kubo daemon (in separate terminal)
$ npm start # Start dev server at http://localhost:3000
其他命令:
$ npm test # Run all tests
$ npm run build # Build for production
$ npm run storybook # Component viewer at http://localhost:9009
$ npm run lint # Run linter
Note
Node.js 版本已固定在 .tool-versions 中。如果您使用 asdf,请运行 asdf install 来设置正确的版本。
翻译
本界面支持多种语言。翻译通过 Transifex 进行管理。
- 通过“设置”或
?lng=<lang-code>URL 参数切换语言 - 翻译文件位于
./public/locales - 有关贡献翻译的详细信息,请参阅
docs/LOCALIZATION.md
获取帮助
- IPFS 论坛 - 社区支持与讨论
- Matrix 聊天 - 与社区进行实时交流
- GitHub Issues - 错误报告和功能请求
安全问题
如要报告安全问题,请遵循 IPFS 安全政策。
贡献
我们欢迎贡献!有关开发设置和指南,请参见 docs/developer-notes.md。
本仓库遵循 IPFS 行为准则。




