@nocobase/plugin-ai 2.1.0-beta.45 → 2.1.0-beta.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/ai/docs/nocobase/api/cli/config/delete.md +7 -5
  2. package/dist/ai/docs/nocobase/api/cli/config/get.md +7 -5
  3. package/dist/ai/docs/nocobase/api/cli/config/index.md +38 -18
  4. package/dist/ai/docs/nocobase/api/cli/config/set.md +9 -7
  5. package/dist/ai/docs/nocobase/api/cli/env/index.md +19 -20
  6. package/dist/ai/docs/nocobase/api/cli/env/update.md +72 -72
  7. package/dist/ai/docs/nocobase/api/cli/proxy/caddy/current.md +33 -0
  8. package/dist/ai/docs/nocobase/api/cli/proxy/caddy/generate.md +54 -0
  9. package/dist/ai/docs/nocobase/api/cli/proxy/caddy/index.md +60 -0
  10. package/dist/ai/docs/nocobase/api/cli/proxy/caddy/info.md +42 -0
  11. package/dist/ai/docs/nocobase/api/cli/proxy/caddy/reload.md +32 -0
  12. package/dist/ai/docs/nocobase/api/cli/proxy/caddy/restart.md +32 -0
  13. package/dist/ai/docs/nocobase/api/cli/proxy/caddy/start.md +32 -0
  14. package/dist/ai/docs/nocobase/api/cli/proxy/caddy/status.md +36 -0
  15. package/dist/ai/docs/nocobase/api/cli/proxy/caddy/stop.md +32 -0
  16. package/dist/ai/docs/nocobase/api/cli/proxy/caddy/use.md +38 -0
  17. package/dist/ai/docs/nocobase/api/cli/proxy/index.md +124 -0
  18. package/dist/ai/docs/nocobase/api/cli/proxy/nginx/current.md +33 -0
  19. package/dist/ai/docs/nocobase/api/cli/proxy/nginx/generate.md +62 -0
  20. package/dist/ai/docs/nocobase/api/cli/proxy/nginx/index.md +60 -0
  21. package/dist/ai/docs/nocobase/api/cli/proxy/nginx/info.md +43 -0
  22. package/dist/ai/docs/nocobase/api/cli/proxy/nginx/reload.md +32 -0
  23. package/dist/ai/docs/nocobase/api/cli/proxy/nginx/restart.md +32 -0
  24. package/dist/ai/docs/nocobase/api/cli/proxy/nginx/start.md +32 -0
  25. package/dist/ai/docs/nocobase/api/cli/proxy/nginx/status.md +36 -0
  26. package/dist/ai/docs/nocobase/api/cli/proxy/nginx/stop.md +32 -0
  27. package/dist/ai/docs/nocobase/api/cli/proxy/nginx/use.md +38 -0
  28. package/dist/ai/docs/nocobase/ops-management/version-control/index.md +73 -0
  29. package/dist/ai/docs/nocobase/quickstart/production/index.md +75 -69
  30. package/dist/ai/docs/nocobase/quickstart/production/reverse-proxy/caddy.md +211 -80
  31. package/dist/ai/docs/nocobase/quickstart/production/reverse-proxy/index.md +72 -53
  32. package/dist/ai/docs/nocobase/quickstart/production/reverse-proxy/nginx.md +186 -89
  33. package/dist/client/{290.0888139e33c9b7cb.js → 290.0f7f441d8a94f03c.js} +1 -1
  34. package/dist/client/{428.431a00d29107058e.js → 428.fdd0cc3cfd1632ef.js} +1 -1
  35. package/dist/client/ai-employees/chatbox/hooks/useChat.d.ts +14 -14
  36. package/dist/client/ai-employees/chatbox/stores/chat-box.d.ts +1 -105
  37. package/dist/client/ai-employees/chatbox/stores/chat-conversations.d.ts +1 -37
  38. package/dist/client/ai-employees/chatbox/stores/chat-messages.d.ts +1 -109
  39. package/dist/client/index.js +3 -3
  40. package/dist/client-v2/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +17 -0
  41. package/dist/client-v2/ai-employees/chatbox/stores/chat-box.d.ts +113 -0
  42. package/dist/client-v2/ai-employees/chatbox/stores/chat-conversations.d.ts +45 -0
  43. package/dist/client-v2/ai-employees/chatbox/stores/chat-messages.d.ts +118 -0
  44. package/dist/client-v2/ai-employees/chatbox/stores/create-selectors.d.ts +18 -0
  45. package/dist/client-v2/ai-employees/chatbox/stores/global-store.d.ts +9 -0
  46. package/dist/client-v2/ai-employees/types.d.ts +151 -0
  47. package/dist/client-v2/index.d.ts +8 -1
  48. package/dist/client-v2/index.js +1 -1
  49. package/dist/client-v2/repositories/AIConfigRepository.d.ts +81 -0
  50. package/dist/client-v2/repositories/hooks/useAIConfigRepository.d.ts +10 -0
  51. package/dist/collections/ai-context-datasource.js +1 -0
  52. package/dist/externalVersion.js +16 -16
  53. package/dist/node_modules/@langchain/xai/package.json +1 -1
  54. package/dist/node_modules/fs-extra/package.json +1 -1
  55. package/dist/node_modules/jsonrepair/package.json +1 -1
  56. package/dist/node_modules/just-bash/package.json +1 -1
  57. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  58. package/dist/node_modules/openai/package.json +1 -1
  59. package/dist/node_modules/zod/package.json +1 -1
  60. package/dist/server/collections/ai-conversations.js +1 -0
  61. package/dist/server/collections/ai-employees.js +1 -0
  62. package/dist/server/collections/ai-files.js +1 -0
  63. package/dist/server/collections/ai-messages.js +1 -0
  64. package/dist/server/collections/ai-settings.js +1 -0
  65. package/dist/server/collections/ai-tool-messages.js +1 -0
  66. package/dist/server/collections/lc-checkpoint-blobs.js +1 -0
  67. package/dist/server/collections/lc-checkpoint-writes.js +1 -0
  68. package/dist/server/collections/lc-checkpoints.js +1 -0
  69. package/dist/server/collections/llm-services.js +1 -0
  70. package/dist/server/collections/users-ai-employees.js +1 -0
  71. package/package.json +2 -2
  72. package/dist/ai/docs/nocobase/api/cli/env/proxy/caddy.md +0 -108
  73. package/dist/ai/docs/nocobase/api/cli/env/proxy/index.md +0 -54
  74. package/dist/ai/docs/nocobase/api/cli/env/proxy/nginx.md +0 -104
@@ -1,166 +1,263 @@
1
+ ---
2
+ title: "Nginx"
3
+ description: "Use nb proxy nginx to generate and manage Nginx reverse-proxy configuration for CLI-managed NocoBase envs."
4
+ keywords: "NocoBase,nb proxy nginx,reverse proxy,Nginx,production"
5
+ ---
6
+
1
7
  # Nginx
2
8
 
3
- If you already use Nginx on the server to manage sites, or you still want to manage certificates, caching, or access control yourself, staying with Nginx is the most direct path. For CLI-managed NocoBase envs, this is also the default recommendation.
9
+ If you already use Nginx on the server to manage sites, or you still want to manage certificates, caching, and access control yourself, `nb proxy nginx` is the recommended path.
10
+
11
+ If your goal is simply to get HTTPS working as quickly as possible and you do not want to maintain many proxy details yourself, [Caddy](./caddy.md) is usually the simpler option. But if Nginx is already part of your server setup, this page is the default path.
4
12
 
5
- If you mainly want to get HTTPS running quickly and do not want to maintain many proxy details yourself, [Caddy](./caddy.md) is the easier path. But if Nginx is already part of your stack, this page is the default place to start.
13
+ ## When Nginx is the better fit
6
14
 
7
- ## Confirm these two things first
15
+ In practice, Nginx is usually the better choice when:
8
16
 
9
- - NocoBase is already reachable through an internal address such as `http://127.0.0.1:13000`
10
- - You know whether this deployment is a CLI-managed env or a fully handwritten setup
17
+ - you already use Nginx to manage multiple sites on the same server
18
+ - you still need to maintain certificates, caching, access control, or more custom rules yourself
19
+ - you want the entry layer to stay aligned with your existing Nginx operations workflow
11
20
 
12
- Once those two things are clear, the next step is usually straightforward:
21
+ If the only goal is to get HTTPS online quickly with less TLS work, [Caddy](./caddy.md) is usually the simpler route.
13
22
 
14
- - If the app has already been saved as a CLI env and the env type is `local` or `docker`, use `nb env proxy nginx`
15
- - If the app is not managed by the CLI, or you explicitly want to maintain the full Nginx config yourself, handwrite the `server` block
23
+ ## Recommended order: choose a driver, generate config, then start
16
24
 
17
- ## Default path: let the CLI generate the Nginx config
25
+ For a CLI-managed env of type `local` or `docker`, the default order is:
18
26
 
19
- If your app was installed, adopted, or saved through NocoBase CLI as a `local` or `docker` env, the default recommendation is to run `nb env proxy nginx`. The CLI maintains the editable entry file, SPA fallback pages, shared main config, and shared snippets together, which makes it much less likely to miss WebSocket handling, subpaths, or later updates.
27
+ ```bash
28
+ nb proxy nginx use docker
29
+ nb proxy nginx generate --env test2 --host c.local.nocobase.com
30
+ nb proxy nginx start
31
+ ```
20
32
 
21
- Start by generating a config for a specific env:
33
+ Or with a local process:
22
34
 
23
35
  ```bash
24
- nb env proxy nginx --env demo
36
+ nb proxy nginx use local
37
+ nb proxy nginx generate --env test2 --host c.local.nocobase.com
38
+ nb proxy nginx start
25
39
  ```
26
40
 
27
- If you have already switched to the current env, you can also omit `--env`:
41
+ Common follow-up commands are:
28
42
 
29
43
  ```bash
30
- nb env proxy nginx
44
+ nb proxy nginx current
45
+ nb proxy nginx status
46
+ nb proxy nginx info
47
+ nb proxy nginx reload
48
+ nb proxy nginx restart
49
+ nb proxy nginx stop
31
50
  ```
32
51
 
33
- If you already know the public domain or entry port, you can write them at generation time:
52
+ In most cases:
53
+
54
+ - `current` is the quickest way to confirm the active runtime driver
55
+ - `status` shows whether Nginx is currently running normally
56
+ - `info` shows the current config path, runtime root, and related runtime details
57
+ - after regenerating config, `reload` is usually the first command to use
58
+ - use `restart` when you need a full restart
59
+
60
+ ## What `generate` needs as input
61
+
62
+ The most common form is:
34
63
 
35
64
  ```bash
36
- nb env proxy nginx --env demo --host demo.example.com
37
- nb env proxy nginx --env demo --host demo.example.com --port 8080
65
+ nb proxy nginx generate --env test2 --host c.local.nocobase.com
38
66
  ```
39
67
 
40
- Here, `--port` is the proxy entry port, not the port the NocoBase app itself listens on. The upstream app port comes from the saved env `appPort`.
68
+ If you also want to specify the entry port:
41
69
 
42
- ### Which files the CLI generates
70
+ ```bash
71
+ nb proxy nginx generate --env test2 --host c.local.nocobase.com --port 8080
72
+ ```
73
+
74
+ Where:
75
+
76
+ - `--env`: which CLI env to generate config for
77
+ - `--host`: the public domain name
78
+ - `--port`: the proxy entry port, not the app's own `appPort`
43
79
 
44
- The Nginx provider keeps these files under `~/.nocobase/proxy/nginx/`:
80
+ The upstream application port comes from the saved `appPort` of that env. If the command says the env is missing `appPort`, save it first with:
81
+
82
+ ```bash
83
+ nb env update test2 --app-port 56575
84
+ ```
45
85
 
46
- | File | Purpose |
86
+ If you later change settings such as `app-port` or `app-public-path` that affect proxy behavior, rerun `generate`.
87
+
88
+ ## Files maintained by the CLI
89
+
90
+ Using `test2` as an example, the Nginx workflow usually maintains:
91
+
92
+ | Path | Purpose |
47
93
  | --- | --- |
48
- | `~/.nocobase/proxy/nginx/<env>/app.conf` | Editable site entry file. The CLI refreshes the managed block inside it, and you can add site-level config around that block |
49
- | `~/.nocobase/proxy/nginx/<env>/public/index-v1.html` | v1 SPA fallback page generated from the current active client's `index.html` |
50
- | `~/.nocobase/proxy/nginx/<env>/public/index-v2.html` | v2 SPA fallback page generated from the current active client's `v/index.html` |
51
- | `~/.nocobase/proxy/nginx/nocobase.conf` | Shared main config that includes every env `app.conf` |
52
- | `~/.nocobase/proxy/nginx/snippets/` | Shared snippets directory copied from built-in templates |
94
+ | `NB_CLI_ROOT/.nocobase/proxy/nginx/snippets` | Shared Nginx snippets directory |
95
+ | `NB_CLI_ROOT/.nocobase/proxy/nginx/test2/app.conf` | Editable site entry config |
96
+ | `NB_CLI_ROOT/.nocobase/proxy/nginx/test2/public/index-v1.html` | v1 SPA fallback page |
97
+ | `NB_CLI_ROOT/.nocobase/proxy/nginx/test2/public/index-v2.html` | v2 SPA fallback page |
98
+ | `NB_CLI_ROOT/test2/storage/dist-client` | Frontend build output for the current app |
99
+ | `NB_CLI_ROOT/test2/storage/uploads` | Uploads directory for the current app |
53
100
 
54
101
  Where:
55
102
 
56
- - `app.conf` is editable, but you should keep the managed block between `# BEGIN NocoBase managed config` and `# END NocoBase managed config`
57
- - `index-v1.html` and `index-v2.html` automatically rewrite asset URLs according to the current env subpath, active client version, and `CDN_BASE_URL`
58
- - `nocobase.conf` is mainly used by `--install`
59
- - Files under `snippets/` and `public/` are usually not meant to be edited manually and will be resynced the next time you run the command
103
+ - files under `NB_CLI_ROOT/.nocobase/proxy/nginx/...` are CLI-managed proxy helper files
104
+ - files under `NB_CLI_ROOT/test2/storage/...` belong to the application itself
105
+ - `app.conf` can be edited, but the NocoBase-managed block must stay intact
106
+ - `index-v1.html` and `index-v2.html` are rewritten according to the current env's subpath, active client version, and `CDN_BASE_URL`
60
107
 
61
108
  :::warning Note
62
109
 
63
- If you need to add site-level Nginx config such as rate limits, extra headers, or access control, edit `app.conf`. Managed files under `public/` and `snippets/` will be overwritten the next time you run `nb env proxy nginx`.
110
+ If you need site-level Nginx config such as rate limiting, extra headers, or access control, edit `app.conf`. The CLI-managed helper files are updated again when you regenerate the config.
64
111
 
65
112
  :::
66
113
 
67
- ### Install the shared config into Nginx and reload it
114
+ ## Handwritten config: when you are not using the CLI
68
115
 
69
- If you want the CLI to connect the shared config to the Nginx main config and immediately validate and reload Nginx, run:
116
+ If the app is not CLI-managed, or you intentionally want to maintain the complete Nginx config yourself, you can still write it by hand.
70
117
 
71
- ```bash
72
- nb env proxy nginx --env demo --host demo.example.com --install --reload
73
- ```
118
+ For NocoBase, though, a production reverse proxy is usually more than a single `proxy_pass`. In addition to forwarding API requests to the backend app, a complete config usually needs to handle uploads, frontend assets, WebSocket, `.well-known` routes, and SPA fallback pages together.
74
119
 
75
- These flags are split like this:
120
+ Using `test2` as the example, these are the key Nginx-related files and directories:
76
121
 
77
- - `--install` connects `~/.nocobase/proxy/nginx/nocobase.conf` to the Nginx main config
78
- - `--reload` validates the config first and then reloads Nginx
122
+ - Nginx snippets: `NB_CLI_ROOT/.nocobase/proxy/nginx/snippets`
123
+ - Editable entry config: `NB_CLI_ROOT/.nocobase/proxy/nginx/test2/app.conf`
124
+ - SPA fallback page for v1: `NB_CLI_ROOT/.nocobase/proxy/nginx/test2/public/index-v1.html`
125
+ - SPA fallback page for v2: `NB_CLI_ROOT/.nocobase/proxy/nginx/test2/public/index-v2.html`
126
+ - Frontend build output: `NB_CLI_ROOT/test2/storage/dist-client`
127
+ - Uploads directory: `NB_CLI_ROOT/test2/storage/uploads`
79
128
 
80
- If your Nginx executable is not on the default path, set the CLI config first:
129
+ In other words, a handwritten config usually needs to cover at least these entry areas:
81
130
 
82
- ```bash
83
- nb config set bin.nginx /usr/sbin/nginx
131
+ - `uploads`
132
+ - `dist`
133
+ - `well-known`
134
+ - `api`
135
+ - `ws`
136
+ - `spa`
137
+
138
+ So a complete Nginx config is usually more than a generic reverse proxy such as:
139
+
140
+ ```nginx
141
+ location / {
142
+ proxy_pass http://127.0.0.1:13000;
143
+ }
84
144
  ```
85
145
 
86
- ### When should you change `proxy.nb-cli-root`
146
+ For a CLI-managed app such as `test2`, a more realistic deployment structure usually looks closer to this:
87
147
 
88
- Most setups do not need to change `proxy.nb-cli-root`. You usually need it only when Nginx runs in another container, mount root, or path view and cannot see the current user's `~/.nocobase` path.
148
+ ```nginx
149
+ server {
150
+ listen 80;
151
+ server_name c.local.nocobase.com;
89
152
 
90
- For example, if Nginx sees that path as `/workspace/.nocobase/...` inside a container, set:
153
+ # Add custom directives or locations above the managed block as needed.
91
154
 
92
- ```bash
93
- nb config set proxy.nb-cli-root /workspace
94
- nb env proxy nginx --env demo --install --reload
95
- ```
155
+ client_max_body_size 0;
96
156
 
97
- If you only want to preview the rendered `app.conf`, you can also use:
157
+ include NB_CLI_ROOT/.nocobase/proxy/nginx/snippets/mime-types.conf;
158
+ include NB_CLI_ROOT/.nocobase/proxy/nginx/snippets/gzip.conf;
98
159
 
99
- ```bash
100
- nb env proxy nginx --env demo --print
101
- ```
160
+ location /storage/uploads/ {
161
+ alias NB_CLI_ROOT/test2/storage/uploads/;
162
+ include NB_CLI_ROOT/.nocobase/proxy/nginx/snippets/uploads-location.conf;
163
+ }
102
164
 
103
- The Nginx provider does not support `--output`. For the full parameter reference, see [`nb env proxy nginx`](../../../api/cli/env/proxy/nginx.md).
165
+ location ^~ /dist/ {
166
+ alias NB_CLI_ROOT/test2/storage/dist-client/;
167
+ include NB_CLI_ROOT/.nocobase/proxy/nginx/snippets/dist-location.conf;
168
+ }
104
169
 
105
- ## Handwritten config: what to do without the CLI
170
+ location ~ ^/\\.well-known/(?<well_known>oauth-authorization-server|openid-configuration)/(?<resource_path>.+)$ {
171
+ rewrite ^ /$resource_path/.well-known/$well_known break;
172
+ proxy_pass http://127.0.0.1:56575;
173
+ include NB_CLI_ROOT/.nocobase/proxy/nginx/snippets/proxy-location.conf;
174
+ }
106
175
 
107
- If your app is not managed by the CLI, or you explicitly want to maintain the full Nginx config yourself, start with this minimal version. In most cases, one `server` block is enough.
176
+ location ^~ /api/ {
177
+ proxy_pass http://127.0.0.1:56575;
178
+ include NB_CLI_ROOT/.nocobase/proxy/nginx/snippets/proxy-location.conf;
179
+ }
108
180
 
109
- Create a config file on the server, for example `/etc/nginx/conf.d/nocobase.conf`:
181
+ location = /ws {
182
+ proxy_pass http://127.0.0.1:56575;
183
+ include NB_CLI_ROOT/.nocobase/proxy/nginx/snippets/proxy-location.conf;
184
+ }
110
185
 
111
- ```nginx
112
- server {
113
- listen 80;
114
- server_name your-domain.com;
115
-
116
- client_max_body_size 100m;
117
-
118
- location / {
119
- proxy_pass http://127.0.0.1:13000;
120
- proxy_http_version 1.1;
121
- proxy_set_header Host $host;
122
- proxy_set_header X-Real-IP $remote_addr;
123
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
124
- proxy_set_header X-Forwarded-Proto $scheme;
125
- proxy_set_header Upgrade $http_upgrade;
126
- proxy_set_header Connection "upgrade";
186
+ location = /v {
187
+ return 302 /v/$is_args$args;
188
+ }
189
+
190
+ location ^~ /v/ {
191
+ alias NB_CLI_ROOT/.nocobase/proxy/nginx/test2/public/;
192
+ try_files $uri /index-v2.html =404;
193
+ include NB_CLI_ROOT/.nocobase/proxy/nginx/snippets/spa-location.conf;
194
+ }
195
+
196
+ location ^~ / {
197
+ alias NB_CLI_ROOT/.nocobase/proxy/nginx/test2/public/;
198
+ try_files $uri /index-v1.html =404;
199
+ include NB_CLI_ROOT/.nocobase/proxy/nginx/snippets/spa-location.conf;
127
200
  }
201
+
202
+ # Add custom directives or locations below the managed block as needed.
128
203
  }
129
204
  ```
130
205
 
131
- Where:
206
+ Two details matter here:
207
+
208
+ - files under `NB_CLI_ROOT/.nocobase/proxy/nginx/...` are CLI-managed proxy helper files
209
+ - files under `NB_CLI_ROOT/test2/storage/...` belong to the application's own build output and uploads
210
+
211
+ If the app uses subpath deployment, or if frontend assets, uploads, and the reverse proxy do not share the same path view, handwritten config becomes easier to get wrong. In those cases, it is usually safer to generate the config first with:
212
+
213
+ ```bash
214
+ nb proxy nginx generate --env test2 --host c.local.nocobase.com
215
+ ```
132
216
 
133
- - Replace `server_name` with your domain
134
- - Replace `127.0.0.1:13000` with the real address your NocoBase app listens on
135
- - Adjust `client_max_body_size` to match your upload needs
217
+ Then use the generated result as the baseline for manual adjustments.
136
218
 
137
- If your app is not mounted at `/` but under a subpath such as `/app/`, handwritten configs also need you to confirm application variables such as `APP_PUBLIC_PATH` and `WS_PATH`. In that case, it is usually easier to go back to `nb env proxy nginx` and let the CLI handle the routing details.
219
+ The safer workflow is usually:
220
+
221
+ 1. let the CLI generate the Nginx config first
222
+ 2. use the generated output to confirm the routing structure and real filesystem paths
223
+ 3. then adjust it for your own domain, runtime driver, and mount layout
224
+
225
+ That is usually less error-prone than writing the full config from scratch.
138
226
 
139
227
  ## Validate and reload the config
140
228
 
229
+ If you write or adjust Nginx config manually, validate it first and then reload:
230
+
141
231
  ```bash
142
232
  nginx -t
143
233
  systemctl reload nginx
144
234
  ```
145
235
 
146
- If you do not manage Nginx with `systemd`, use your own reload workflow.
236
+ If you are not using `systemd` to manage Nginx, replace that with your own reload workflow.
237
+
238
+ If you manage the entry layer through `nb proxy nginx`, the usual first choice is:
239
+
240
+ ```bash
241
+ nb proxy nginx reload
242
+ ```
147
243
 
148
244
  ## How to handle HTTPS
149
245
 
150
- If you have already decided to stay with Nginx, you can keep handling HTTPS there as well. A common next step is to expand `listen 80` into dual `80/443` entry points and add your certificate paths and TLS config.
246
+ If you have already decided to keep using Nginx, you can keep HTTPS there as well. A common pattern is to extend `listen 80` into a `80/443` setup and then add certificate paths and TLS settings.
151
247
 
152
- But if you mainly want working HTTPS as quickly as possible and do not want to deal with certificate issuance and renewal yourself, switching to [Caddy](./caddy.md) is usually easier.
248
+ If the goal is simply to get usable HTTPS quickly without managing certificate issuance and renewal yourself, switching to [Caddy](./caddy.md) is usually simpler.
153
249
 
154
- ## Notes
250
+ ## Common notes
155
251
 
156
- - `nb env proxy nginx` only works for CLI-managed envs whose runtime is reachable from the current machine, which means `local` or `docker`
157
- - If the command says the env is missing `appPort`, run `nb env update <name> --app-port <port>` first
158
- - `nb env proxy nginx` does not support `--output`. If you only want to preview the entry file, use `--print`
159
- - If you already have a large custom Nginx main config, the CLI-generated config usually fits best as a site fragment that you include, not as a replacement for the whole main config
252
+ - `nb proxy nginx generate` only works for CLI-managed envs whose runtime is reachable from the current machine, which means `local` or `docker`
253
+ - if the command says the env is missing `appPort`, run `nb env update <name> --app-port <port>` first
254
+ - if you already have a large top-level Nginx config, the CLI-generated config is usually better used as a site fragment than as a replacement for the entire main config
255
+ - if you later change settings such as `app-port` or `app-public-path` that affect proxy behavior, rerun `generate`
160
256
 
161
257
  ## Related links
162
258
 
163
- - [`nb env proxy nginx`](../../../api/cli/env/proxy/nginx.md)
164
- - [Install with CLI (Recommended)](../../installation/cli.md)
259
+ - [Reverse Proxy in Production](./index.md)
260
+ - [Caddy](./caddy.md)
261
+ - [Install with the CLI](../../installation/cli.md)
165
262
  - [Install with Docker Compose](../../installation/docker-compose.md)
166
- - [App Environment Variables](../../installation/env.md)
263
+ - [Environment variables](../../installation/env.md)