diff --git a/README.md b/README.md index a080b431..c422e338 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,16 @@ frp is an open source project with its ongoing development made possible entirel

Gold Sponsors

+

+ + +
+ The sovereign cloud that puts you in control +
+ An open source, self-hosted alternative to public clouds, built for data ownership and privacy +
+

+
## Recall.ai - API for meeting recordings @@ -40,16 +50,6 @@ an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and The complete IDE crafted for professional Go developers

- -

- - -
- The sovereign cloud that puts you in control -
- An open source, self-hosted alternative to public clouds, built for data ownership and privacy -
-

## What is frp? @@ -81,6 +81,7 @@ frp also offers a P2P connect mode. * [Split Configures Into Different Files](#split-configures-into-different-files) * [Server Dashboard](#server-dashboard) * [Client Admin UI](#client-admin-ui) + * [Dynamic Proxy Management (Store)](#dynamic-proxy-management-store) * [Monitor](#monitor) * [Prometheus](#prometheus) * [Authenticating the Client](#authenticating-the-client) @@ -593,7 +594,7 @@ Then visit `https://[serverAddr]:7500` to see the dashboard in secure HTTPS conn ### Client Admin UI -The Client Admin UI helps you check and manage frpc's configuration. +The Client Admin UI helps you check and manage frpc's configuration and proxies. Configure an address for admin UI to enable this feature: @@ -606,6 +607,19 @@ webServer.password = "admin" Then visit `http://127.0.0.1:7400` to see admin UI, with username and password both being `admin`. +#### Dynamic Proxy Management (Store) + +You can dynamically create, update, and delete proxies and visitors at runtime through the Web UI or API, without restarting frpc. + +To enable this feature, configure `store.path` to specify a file for persisting the configurations: + +```toml +[store] +path = "./db.json" +``` + +Proxies and visitors managed through the Store are saved to disk and automatically restored on frpc restart. They work alongside proxies defined in the configuration file — Store entries take precedence when names conflict. + ### Monitor When web server is enabled, frps will save monitor data in cache for 7 days. It will be cleared after process restart. diff --git a/README_zh.md b/README_zh.md index 1b4b6862..9a03b031 100644 --- a/README_zh.md +++ b/README_zh.md @@ -15,6 +15,16 @@ frp 是一个完全开源的项目,我们的开发工作完全依靠赞助者

Gold Sponsors

+

+ + +
+ The sovereign cloud that puts you in control +
+ An open source, self-hosted alternative to public clouds, built for data ownership and privacy +
+

+
## Recall.ai - API for meeting recordings @@ -42,16 +52,6 @@ an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and The complete IDE crafted for professional Go developers

- -

- - -
- The sovereign cloud that puts you in control -
- An open source, self-hosted alternative to public clouds, built for data ownership and privacy -
-

## 为什么使用 frp ? diff --git a/Release.md b/Release.md index 9bee09dc..304a5d83 100644 --- a/Release.md +++ b/Release.md @@ -1,10 +1 @@ ## Features - -* Added a built-in `store` capability for frpc, including persisted store source (`[store] path = "..."`), Store CRUD admin APIs (`/api/store/proxies*`, `/api/store/visitors*`) with runtime reload, and Store management pages in the frpc web dashboard. - -## Improvements - -* Kept proxy/visitor names as raw config names during completion; moved user-prefix handling to explicit wire-level naming logic. -* Added `noweb` build tag to allow compiling without frontend assets. `make build` now auto-detects missing `web/*/dist` directories and skips embedding, so a fresh clone can build without running `make web` first. The dashboard gracefully returns 404 when assets are not embedded. -* Improved config parsing errors: for `.toml` files, syntax errors now return immediately with parser position details (line/column when available) instead of falling through to YAML/JSON parsing, and TOML type mismatches report field-level errors without misleading line numbers. -* OIDC auth now caches the access token and refreshes it before expiry, avoiding a new token request on every heartbeat. Falls back to per-request fetch when the provider omits `expires_in`.