fileport-gateway 0.1.5 → 0.1.7

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.
package/README.md CHANGED
@@ -30,6 +30,7 @@ The npm package includes the checksum-verified official Dufs 0.46.0 Linux x86_64
30
30
  ## Run
31
31
 
32
32
  ```bash
33
+ # Direct LAN advertisement (default mode):
33
34
  export FILEPORT_PUBLIC_BASE_URL="http://<devbox-ip>:7892"
34
35
  fileport serve
35
36
  ```
@@ -42,11 +43,22 @@ fileport ls
42
43
  fileport revoke <share-id>
43
44
  ```
44
45
 
45
- Fileport provides HTTP only. The listener defaults to `0.0.0.0:7892`; generated URLs default to the default-route LAN IPv4, not `127.0.0.1`. A configured hostname must resolve entirely to local, listener-covered addresses.
46
+ The Fileport origin listener provides HTTP only. The listener defaults to `0.0.0.0:7892`; generated URLs default to the default-route LAN IPv4, not `127.0.0.1`.
47
+
48
+ Direct mode (the default) requires a configured hostname to resolve entirely to local, listener-covered addresses. For a reverse proxy or tunnel that terminates public HTTPS and forwards to the local HTTP listener, use proxy mode:
49
+
50
+ ```bash
51
+ fileport config set --host 127.0.0.1 \
52
+ --public-url https://files.example.com \
53
+ --public-mode proxy
54
+ fileport stop # if a daemon is already running
55
+ fileport doctor --json # starts are explicit; doctor validates configuration
56
+ fileport share ./report.md --readonly
57
+ ```
58
+
59
+ Proxy mode treats `public.url` as the externally advertised URL. DNS is reported for diagnostics but is not required to resolve to a local interface, and the public port does not need to equal the origin listener port. Fileport does not configure or verify the reverse proxy itself; verify the resulting capability URL end to end.
46
60
 
47
61
  ```bash
48
- fileport doctor --json
49
- fileport config set --public-url http://files.example.com:7892
50
62
  fileport --help
51
63
  fileport share --help
52
64
  ``` Agent control is available only through `$FILEPORT_STATE_DIR/control.sock` (0600).
package/dist/cli.js CHANGED
@@ -26,10 +26,10 @@ Commands:
26
26
  config Show or update persistent configuration
27
27
 
28
28
  Safety defaults:
29
- Shares are read-only unless --rw is explicit. Fileport is HTTP-only.
30
- Without public.url, Fileport advertises the default-route LAN IPv4.
31
- Configured hostnames are issued only when every A/AAAA address is local
32
- and covered by the listener. Capability URLs are secrets; do not publish them.
29
+ Shares are read-only unless --rw is explicit. The origin listener is HTTP-only;
30
+ proxy mode may advertise external HTTPS. Without public.url, Fileport advertises the default-route LAN IPv4.
31
+ Direct-mode hostnames are issued only when every A/AAAA address is local
32
+ and covered by the listener; proxy mode supports external HTTPS endpoints. Capability URLs are secrets; do not publish them.
33
33
 
34
34
  Agent output:
35
35
  --json writes one JSON object to stdout; diagnostics go to stderr.
@@ -43,22 +43,22 @@ Examples:
43
43
  fileport share ./report.md --readonly
44
44
  fileport share ./report.md --rw --expire 2h --json
45
45
  fileport doctor --json
46
- fileport config set --public-url http://files.example.com:7892
46
+ fileport config set --public-url https://files.example.com --public-mode proxy
47
47
 
48
48
  Environment:
49
- FILEPORT_HOST, FILEPORT_PORT, FILEPORT_PUBLIC_BASE_URL,
49
+ FILEPORT_HOST, FILEPORT_PORT, FILEPORT_PUBLIC_BASE_URL, FILEPORT_PUBLIC_MODE,
50
50
  FILEPORT_STATE_DIR, FILEPORT_CONFIG_FILE, FILEPORT_DUFS_BIN
51
51
 
52
52
  Run 'fileport <command> --help' for command details.`;
53
53
  const HELP = {
54
- serve: `Usage: fileport serve [--host HOST] [--port PORT] [--public-url URL] [--json]\n\nStart the Gateway. --host controls listening; --public-url only controls advertised URLs.\nDefault bind: 0.0.0.0:7892. A configured hostname is DNS-validated as all-local.\n--json emits one readiness object; long-running diagnostics use stderr.`,
54
+ serve: `Usage: fileport serve [--host HOST] [--port PORT] [--public-url URL] [--public-mode direct|proxy] [--json]\n\nStart the Gateway. --host controls listening; --public-url only controls advertised URLs.\nDefault bind: 0.0.0.0:7892. Direct hostnames are DNS-validated as all-local; proxy mode supports HTTPS reverse proxies and tunnels.\n--json emits one readiness object; long-running diagnostics use stderr.`,
55
55
  share: `Usage: fileport share <path> [--readonly|--rw] [--expire 2h] [--json]\n\nCreate an opaque capability URL. Default: --readonly. --rw permits strict,\nversioned, existing-file-only text saves. Expiry units: m, h, d, w.\nThe capability URL is a secret. Default stdout is only the URL.`,
56
56
  ls: `Usage: fileport ls [--json]\n\nList non-expired shares. Human mode prints a compact table; JSON mode emits {shares:[...]}.`,
57
57
  revoke: `Usage: fileport revoke <share-id> [--json]\n\nImmediately revoke a capability. JSON mode emits {ok,id}. Exit 6 if absent.`,
58
58
  status: `Usage: fileport status [--json]\n\nShow daemon PID, bind address, advertised address, and active share count.`,
59
59
  stop: `Usage: fileport stop [--json]\n\nGracefully stop the user-scoped Gateway and its Dufs workers.`,
60
60
  doctor: `Usage: fileport doctor [--json]\n\nShow a runtime snapshot of interfaces, selected LAN IPv4, public URL, DNS/CNAME\nresolution, local matches, and warnings. Does not create a share.`,
61
- config: `Usage:\n fileport config show [--json]\n fileport config set [--host H] [--port N] [--public-url URL]\n fileport config unset --public-url\n\nPersistent file: ~/.config/fileport/config.json (0700 directory, 0600 file).\nPriority: command flags > environment > config file > defaults. Restart after changes.`
61
+ config: `Usage:\n fileport config show [--json]\n fileport config set [--host H] [--port N] [--public-url URL] [--public-mode direct|proxy]\n fileport config unset --public-url\n\nPersistent file: ~/.config/fileport/config.json (0700 directory, 0600 file).\nPriority: command flags > environment > config file > defaults. Restart after changes.`
62
62
  };
63
63
  class CliError extends Error {
64
64
  exitCode;
@@ -108,7 +108,7 @@ catch (error) {
108
108
  if (error instanceof CliError)
109
109
  throw error;
110
110
  } await fs.mkdir(config.stateDir, { recursive: true, mode: 0o700 }); const executable = fileURLToPath(import.meta.url), child = spawn(process.execPath, [executable, "serve"], { detached: true, stdio: "ignore", env: process.env }); child.unref(); await waitForControl(socket); return { config, socket }; }
111
- function overrides(args) { return { host: option(args, "--host"), port: option(args, "--port") ? Number(option(args, "--port")) : undefined, publicBaseUrl: option(args, "--public-url") }; }
111
+ function overrides(args) { return { host: option(args, "--host"), port: option(args, "--port") ? Number(option(args, "--port")) : undefined, publicBaseUrl: option(args, "--public-url"), publicMode: option(args, "--public-mode") }; }
112
112
  let jsonRequested = false;
113
113
  async function main() {
114
114
  const argv = process.argv.slice(2), command = argv[0];
@@ -130,7 +130,7 @@ async function main() {
130
130
  }
131
131
  const asJson = jsonFlag(args);
132
132
  if (command === "serve") {
133
- assertOnlyFlags(args, new Set(["--json", "--host", "--port", "--public-url"]), new Set(["--host", "--port", "--public-url"]));
133
+ assertOnlyFlags(args, new Set(["--json", "--host", "--port", "--public-url", "--public-mode"]), new Set(["--host", "--port", "--public-url", "--public-mode"]));
134
134
  const config = loadConfig(process.env, overrides(args)), gateway = new Gateway(config);
135
135
  try {
136
136
  await gateway.start();
@@ -227,7 +227,7 @@ async function main() {
227
227
  throw new CliError("gateway is not running", 5);
228
228
  const gateway = new Gateway(config);
229
229
  try {
230
- const result = await gateway.addressResolver.inspect({ host: config.host, port: config.port, publicBaseUrl: config.publicBaseUrl }, true).then(s => ({ bind: { host: config.host, port: config.port }, ...s }));
230
+ const result = await gateway.addressResolver.inspect({ host: config.host, port: config.port, publicBaseUrl: config.publicBaseUrl, publicMode: config.publicMode }, true).then(s => ({ bind: { host: config.host, port: config.port }, ...s }));
231
231
  output(result, asJson, JSON.stringify(result, null, 2));
232
232
  }
233
233
  catch (error) {
@@ -257,9 +257,11 @@ async function main() {
257
257
  return;
258
258
  }
259
259
  if (action === "set") {
260
- const host = option(args, "--host"), port = option(args, "--port"), publicUrl = option(args, "--public-url");
261
- if (!host && !port && !publicUrl)
262
- throw new CliError("config set requires --host, --port, or --public-url", 2);
260
+ const host = option(args, "--host"), port = option(args, "--port"), publicUrl = option(args, "--public-url"), publicMode = option(args, "--public-mode");
261
+ if (!host && !port && !publicUrl && !publicMode)
262
+ throw new CliError("config set requires --host, --port, --public-url, or --public-mode", 2);
263
+ if (publicMode && publicMode !== "direct" && publicMode !== "proxy")
264
+ throw new CliError("--public-mode must be direct or proxy", 2);
263
265
  const next = { ...value, bind: { ...value.bind }, public: { ...value.public, dnsPolicy: "all-local" } };
264
266
  if (host)
265
267
  next.bind.host = host;
@@ -267,8 +269,14 @@ async function main() {
267
269
  next.bind.port = Number(port);
268
270
  if (publicUrl)
269
271
  next.public.url = publicUrl;
270
- const checked = loadConfig({ ...process.env, FILEPORT_CONFIG_FILE: "/nonexistent" }, { host: next.bind?.host, port: next.bind?.port, publicBaseUrl: next.public?.url ?? undefined });
271
- await new PublicAddressResolver().inspect({ host: checked.host, port: checked.port, publicBaseUrl: checked.publicBaseUrl }, true);
272
+ if (publicMode)
273
+ next.public.mode = publicMode;
274
+ if (next.public.mode === "proxy")
275
+ delete next.public.dnsPolicy;
276
+ else
277
+ next.public.dnsPolicy = "all-local";
278
+ const checked = loadConfig({ ...process.env, FILEPORT_CONFIG_FILE: "/nonexistent" }, { host: next.bind?.host, port: next.bind?.port, publicBaseUrl: next.public?.url ?? undefined, publicMode: next.public?.mode });
279
+ await new PublicAddressResolver().inspect({ host: checked.host, port: checked.port, publicBaseUrl: checked.publicBaseUrl, publicMode: checked.publicMode }, true);
272
280
  writeConfigFile(next, file);
273
281
  output({ ok: true, file, config: next }, asJson, `updated ${file}; restart Fileport to apply`);
274
282
  return;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAiD,MAAM,aAAa,CAAC;AACrI,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,SAAS,GAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDAyCqC,CAAC;AACtD,MAAM,IAAI,GAAuB;IACjC,KAAK,EAAC,uUAAuU;IAC7U,KAAK,EAAC,2RAA2R;IACjS,EAAE,EAAC,4HAA4H;IAC/H,MAAM,EAAC,2HAA2H;IAClI,MAAM,EAAC,+GAA+G;IACtH,IAAI,EAAC,gGAAgG;IACrG,MAAM,EAAC,uLAAuL;IAC9L,MAAM,EAAC,uTAAuT;CAAC,CAAC;AAChU,MAAM,QAAS,SAAQ,KAAK;IAAuC;IAApC,YAAY,OAAc,EAAU,QAAe;QAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAAhC,aAAQ,GAAR,QAAQ,CAAO;IAAiB,CAAC;CAAE;AACtG,SAAS,OAAO,CAAC,IAAa,IAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC;AACrF,SAAS,QAAQ,CAAC,IAAa,IAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC;AACjE,SAAS,MAAM,CAAC,KAAa,EAAC,IAAY,EAAC,KAAa,IAAE,IAAG,IAAI;IAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAAM,IAAG,KAAK,KAAG,SAAS;IAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAA,CAAC;AAEtL,SAAS,eAAe,CAAC,IAAa,EAAC,OAAmB,EAAC,aAAuB,IAAI,GAAG,EAAE,IAAS,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;IAAA,MAAM,GAAG,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAA,IAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAC,SAAS;IAAA,IAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAAC,MAAM,IAAI,QAAQ,CAAC,mBAAmB,GAAG,EAAE,EAAC,CAAC,CAAC,CAAC;IAAA,IAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAC,CAAC;QAAA,IAAG,CAAC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,GAAG,mBAAmB,EAAC,CAAC,CAAC,CAAC;QAAA,CAAC,EAAE,CAAC;IAAA,CAAC;AAAA,CAAC,CAAC,CAAC;AACnX,SAAS,MAAM,CAAC,IAAa,EAAC,IAAW,IAAmB,MAAM,CAAC,GAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA,IAAG,CAAC,GAAC,CAAC;IAAC,OAAO,CAAA,MAAM,CAAC,GAAC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAA,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;IAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,IAAI,mBAAmB,EAAC,CAAC,CAAC,CAAC,CAAA,OAAO,CAAC,CAAC,CAAA,CAAC;AAC3M,KAAK,UAAU,cAAc,KAAG,MAAM,GAAG,GAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC,CAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAiB,CAAC,CAAA,CAAC;AACxK,KAAK,UAAU,cAAc,CAAC,MAAa,IAAE,MAAM,QAAQ,GAAC,IAAI,CAAC,GAAG,EAAE,GAAC,IAAI,CAAC,CAAA,OAAM,IAAI,CAAC,GAAG,EAAE,GAAC,QAAQ,EAAC,CAAC;IAAA,IAAG,CAAC;QAAA,MAAM,cAAc,CAAC,MAAM,EAAC,KAAK,EAAC,SAAS,CAAC,CAAC;QAAA,OAAM;IAAA,CAAC;IAAA,MAAK,CAAC;QAAA,MAAM,IAAI,OAAO,CAAC,CAAC,CAAA,EAAE,CAAA,UAAU,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC;IAAA,CAAC;AAAA,CAAC,CAAA,MAAM,IAAI,QAAQ,CAAC,8BAA8B,EAAC,CAAC,CAAC,CAAC,CAAA,CAAC;AACpQ,KAAK,UAAU,YAAY,CAAC,MAAM,GAAC,UAAU,EAAE,IAAE,MAAM,MAAM,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAC,cAAc,CAAC,CAAC,CAAA,IAAG,CAAC;IAAA,MAAM,MAAM,GAAC,MAAM,cAAc,CAAM,MAAM,EAAC,KAAK,EAAC,SAAS,CAAC,CAAC;IAAA,IAAG,MAAM,CAAC,eAAe,KAAG,CAAC;QAAC,MAAM,IAAI,QAAQ,CAAC,iFAAiF,EAAC,CAAC,CAAC,CAAC;IAAA,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,CAAC;AAAA,CAAC;AAAA,OAAM,KAAK,EAAC,CAAC;IAAA,IAAG,KAAK,YAAY,QAAQ;QAAC,MAAM,KAAK,CAAC;AAAA,CAAC,CAAA,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,CAAC,CAAA,MAAM,UAAU,GAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,KAAK,GAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAC,CAAC,UAAU,EAAC,OAAO,CAAC,EAAC,EAAC,QAAQ,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,OAAO,CAAC,GAAG,EAAC,CAAC,CAAC,CAAA,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,CAAC,CAAA,CAAC;AACjpB,SAAS,SAAS,CAAC,IAAa,IAAkB,OAAO,EAAC,IAAI,EAAC,MAAM,CAAC,IAAI,EAAC,QAAQ,CAAC,EAAC,IAAI,EAAC,MAAM,CAAC,IAAI,EAAC,QAAQ,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAA,SAAS,EAAC,aAAa,EAAC,MAAM,CAAC,IAAI,EAAC,cAAc,CAAC,EAAC,CAAC,CAAA,CAAC;AACpM,IAAI,aAAa,GAAC,KAAK,CAAC;AACxB,KAAK,UAAU,IAAI;IAAG,MAAM,IAAI,GAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,OAAO,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAA,aAAa,GAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAAA,IAAG,CAAC,OAAO,IAAE,OAAO,KAAG,MAAM,IAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC;QAAA,MAAM,CAAC,EAAE,EAAC,KAAK,EAAC,SAAS,CAAC,CAAC;QAAA,OAAO;IAAA,CAAC;IAAA,IAAG,OAAO,KAAG,WAAW,IAAE,OAAO,KAAG,IAAI,EAAC,CAAC;QAAA,MAAM,CAAC,EAAE,EAAC,KAAK,EAAC,MAAM,cAAc,EAAE,CAAC,CAAC;QAAA,OAAO;IAAA,CAAC;IAAA,MAAM,IAAI,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAAA,IAAG,OAAO,CAAC,IAAI,CAAC,EAAC,CAAC;QAAA,IAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAAC,MAAM,IAAI,QAAQ,CAAC,oBAAoB,OAAO,EAAE,EAAC,CAAC,CAAC,CAAC;QAAA,MAAM,CAAC,EAAE,EAAC,KAAK,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAAA,OAAO;IAAA,CAAC;IAAA,MAAM,MAAM,GAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrd,IAAG,OAAO,KAAG,OAAO,EAAC,CAAC;QAAA,eAAe,CAAC,IAAI,EAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,cAAc,CAAC,CAAC,EAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAC,QAAQ,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAAA,MAAM,MAAM,GAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAC,OAAO,GAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAAA,IAAG,CAAC;YAAA,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAAA,CAAC;QAAA,OAAM,KAAK,EAAC,CAAC;YAAA,MAAM,IAAI,GAAE,KAA+B,CAAC,IAAI,CAAC;YAAA,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAG,YAAY,CAAA,CAAC,CAAA,QAAQ,MAAM,CAAC,IAAI,oBAAoB,CAAA,CAAC,CAAA,IAAI,KAAG,eAAe,CAAA,CAAC,CAAA,eAAe,MAAM,CAAC,IAAI,sCAAsC,CAAA,CAAC,CAAA,KAAK,YAAY,KAAK,CAAA,CAAC,CAAA,KAAK,CAAC,OAAO,CAAA,CAAC,CAAA,MAAM,CAAC,KAAK,CAAC,EAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC;QAAA,CAAC;QAAA,MAAM,KAAK,GAAC,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAC,cAAc,CAAC,EAAC,KAAK,EAAC,SAAS,CAAC,CAAC;QAAA,MAAM,CAAC,KAAK,EAAC,MAAM,EAAC,yBAAyB,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAAA,MAAM,IAAI,GAAC,KAAK,IAAE,EAAE,GAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC;QAAA,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;QAAA,OAAO,CAAC,EAAE,CAAC,SAAS,EAAC,IAAI,CAAC,CAAC;QAAA,OAAO;IAAA,CAAC;IACj1B,IAAG,OAAO,KAAG,OAAO,EAAC,CAAC;QAAA,IAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,QAAQ,CAAC,gCAAgC,EAAC,CAAC,CAAC,CAAC;QAAA,IAAI,UAAU,GAAW,IAAI,EAAC,MAAuB,CAAC;QAAA,MAAM,UAAU,GAAU,EAAE,CAAC;QAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;YAAA,MAAM,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAA,IAAG,CAAC,KAAG,QAAQ;gBAAC,SAAS;YAAA,IAAG,CAAC,KAAG,MAAM;gBAAC,UAAU,GAAC,IAAI,CAAC;iBAAK,IAAG,CAAC,KAAG,YAAY,IAAE,CAAC,KAAG,MAAM;gBAAC,UAAU,GAAC,IAAI,CAAC;iBAAK,IAAG,CAAC,KAAG,UAAU,EAAC,CAAC;gBAAA,MAAM,GAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAA,IAAG,CAAC,MAAM;oBAAC,MAAM,IAAI,QAAQ,CAAC,8BAA8B,EAAC,CAAC,CAAC,CAAC;YAAA,CAAC;iBAAK,IAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAC,MAAM,IAAI,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC;;gBAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC;QAAA,IAAG,UAAU,CAAC,MAAM,KAAG,CAAC;YAAC,MAAM,IAAI,QAAQ,CAAC,iCAAiC,EAAC,CAAC,CAAC,CAAC;QAAA,MAAM,EAAC,MAAM,EAAC,GAAC,MAAM,YAAY,EAAE,CAAC;QAAA,MAAM,MAAM,GAAC,MAAM,cAAc,CAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,EAAC,IAAI,EAAC,UAAU,CAAC,CAAC,CAAC,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,CAAA,CAAC,CAAA,aAAa,CAAC,MAAM,CAAC,CAAA,CAAC,CAAA,SAAS,EAAC,CAAC,CAAC;QAAA,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAAA,OAAO;IAAA,CAAC;IACn4B,IAAG,OAAO,KAAG,IAAI,EAAC,CAAC;QAAA,eAAe,CAAC,IAAI,EAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAA,IAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM,IAAI,QAAQ,CAAC,oCAAoC,EAAC,CAAC,CAAC,CAAC;QAAA,MAAM,EAAC,MAAM,EAAC,GAAC,MAAM,YAAY,EAAE,CAAC;QAAA,MAAM,MAAM,GAAC,MAAM,cAAc,CAAM,MAAM,EAAC,KAAK,EAAC,SAAS,CAAC,CAAC;QAAA,IAAG,MAAM;YAAC,MAAM,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC;aAAI,CAAC;YAAA,MAAM,KAAK,GAAC,CAAC,2BAA2B,EAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAK,EAAC,EAAE,CAAA,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,SAAS,IAAE,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAAA,MAAM,CAAC,EAAE,EAAC,KAAK,EAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAAA,CAAC;QAAA,OAAO;IAAA,CAAC;IACnd,IAAG,OAAO,KAAG,QAAQ,EAAC,CAAC;QAAA,eAAe,CAAC,IAAI,EAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAA,MAAM,GAAG,GAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAAA,IAAG,GAAG,CAAC,MAAM,GAAC,CAAC;YAAC,MAAM,IAAI,QAAQ,CAAC,qCAAqC,EAAC,CAAC,CAAC,CAAC;QAAA,MAAM,EAAE,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAA,IAAG,CAAC,EAAE;YAAC,MAAM,IAAI,QAAQ,CAAC,4BAA4B,EAAC,CAAC,CAAC,CAAC;QAAA,MAAM,EAAC,MAAM,EAAC,GAAC,MAAM,YAAY,EAAE,CAAC;QAAA,IAAG,CAAC;YAAA,MAAM,cAAc,CAAC,MAAM,EAAC,QAAQ,EAAC,WAAW,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAAA,CAAC;QAAA,MAAK,CAAC;YAAA,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAAA,CAAC;QAAA,MAAM,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,EAAC,MAAM,EAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAAA,OAAO;IAAA,CAAC;IACje,IAAG,OAAO,KAAG,QAAQ,IAAE,OAAO,KAAG,QAAQ,EAAC,CAAC;QAAA,eAAe,CAAC,IAAI,EAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAA,IAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,OAAO,kCAAkC,EAAC,CAAC,CAAC,CAAC;QAAA,MAAM,MAAM,GAAC,UAAU,EAAE,CAAC;QAAA,MAAM,MAAM,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAC,cAAc,CAAC,CAAC;QAAA,IAAG,CAAC;YAAA,MAAM,MAAM,GAAC,MAAM,cAAc,CAAM,MAAM,EAAC,KAAK,EAAC,IAAI,OAAO,EAAE,CAAC,CAAC;YAAA,IAAG,OAAO,KAAG,QAAQ,IAAE,MAAM,CAAC,MAAM,KAAG,OAAO;gBAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAE,kCAAkC,EAAC,CAAC,CAAC,CAAC;YAAA,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC;QAAA,OAAM,KAAK,EAAC,CAAC;YAAA,IAAG,KAAK,YAAY,QAAQ;gBAAC,MAAM,KAAK,CAAC;YAAA,IAAG,OAAO,KAAG,QAAQ;gBAAC,MAAM,IAAI,QAAQ,CAAC,wBAAwB,EAAC,CAAC,CAAC,CAAC;YAAA,MAAM,OAAO,GAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;YAAA,IAAG,CAAC;gBAAA,MAAM,MAAM,GAAC,MAAM,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EAAC,IAAI,EAAC,MAAM,CAAC,IAAI,EAAC,IAAI,EAAC,MAAM,CAAC,IAAI,EAAC,aAAa,EAAC,MAAM,CAAC,aAAa,EAAC,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,EAAC,IAAI,EAAC,EAAC,IAAI,EAAC,MAAM,CAAC,IAAI,EAAC,IAAI,EAAC,MAAM,CAAC,IAAI,EAAC,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,CAAC;gBAAA,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;YAAA,CAAC;YAAA,OAAM,KAAK,EAAC,CAAC;gBAAA,MAAM,IAAI,QAAQ,CAAC,KAAK,YAAY,KAAK,CAAA,CAAC,CAAA,KAAK,CAAC,OAAO,CAAA,CAAC,CAAA,MAAM,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;YAAA,CAAC;QAAA,CAAC;QAAA,OAAO;IAAA,CAAC;IACz/B,IAAG,OAAO,KAAG,MAAM,EAAC,CAAC;QAAA,eAAe,CAAC,IAAI,EAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAA,IAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM,IAAI,QAAQ,CAAC,sCAAsC,EAAC,CAAC,CAAC,CAAC;QAAA,MAAM,MAAM,GAAC,UAAU,EAAE,EAAC,MAAM,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAC,cAAc,CAAC,CAAC;QAAA,IAAG,CAAC;YAAA,MAAM,MAAM,GAAC,MAAM,cAAc,CAAM,MAAM,EAAC,MAAM,EAAC,WAAW,CAAC,CAAC;YAAA,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,WAAW,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAAA,CAAC;QAAA,MAAK,CAAC;YAAA,MAAM,IAAI,QAAQ,CAAC,wBAAwB,EAAC,CAAC,CAAC,CAAC;QAAA,CAAC;QAAA,OAAO;IAAA,CAAC;IAC9Z,IAAG,OAAO,KAAG,QAAQ,EAAC,CAAC;QAAA,MAAM,MAAM,GAAC,IAAI,CAAC,CAAC,CAAC,IAAE,MAAM,EAAC,IAAI,GAAC,UAAU,EAAE,EAAC,KAAK,GAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAAA,IAAG,MAAM,KAAG,MAAM,EAAC,CAAC;YAAA,MAAM,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,EAAC,MAAM,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;YAAA,OAAO;QAAA,CAAC;QAAA,IAAG,MAAM,KAAG,KAAK,EAAC,CAAC;YAAA,MAAM,IAAI,GAAC,MAAM,CAAC,IAAI,EAAC,QAAQ,CAAC,EAAC,IAAI,GAAC,MAAM,CAAC,IAAI,EAAC,QAAQ,CAAC,EAAC,SAAS,GAAC,MAAM,CAAC,IAAI,EAAC,cAAc,CAAC,CAAC;YAAA,IAAG,CAAC,IAAI,IAAE,CAAC,IAAI,IAAE,CAAC,SAAS;gBAAC,MAAM,IAAI,QAAQ,CAAC,qDAAqD,EAAC,CAAC,CAAC,CAAC;YAAA,MAAM,IAAI,GAAoB,EAAC,GAAG,KAAK,EAAC,IAAI,EAAC,EAAC,GAAG,KAAK,CAAC,IAAI,EAAC,EAAC,MAAM,EAAC,EAAC,GAAG,KAAK,CAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAC,EAAC,CAAC;YAAA,IAAG,IAAI;gBAAC,IAAI,CAAC,IAAK,CAAC,IAAI,GAAC,IAAI,CAAC;YAAA,IAAG,IAAI;gBAAC,IAAI,CAAC,IAAK,CAAC,IAAI,GAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAA,IAAG,SAAS;gBAAC,IAAI,CAAC,MAAO,CAAC,GAAG,GAAC,SAAS,CAAC;YAAA,MAAM,OAAO,GAAC,UAAU,CAAC,EAAC,GAAG,OAAO,CAAC,GAAG,EAAC,oBAAoB,EAAC,cAAc,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,aAAa,EAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAE,SAAS,EAAC,CAAC,CAAC;YAAA,MAAM,IAAI,qBAAqB,EAAE,CAAC,OAAO,CAAC,EAAC,IAAI,EAAC,OAAO,CAAC,IAAI,EAAC,IAAI,EAAC,OAAO,CAAC,IAAI,EAAC,aAAa,EAAC,OAAO,CAAC,aAAa,EAAC,EAAC,IAAI,CAAC,CAAC;YAAA,eAAe,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YAAA,MAAM,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAC,MAAM,EAAC,WAAW,IAAI,6BAA6B,CAAC,CAAC;YAAA,OAAO;QAAA,CAAC;QAAA,IAAG,MAAM,KAAG,OAAO,IAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAC,CAAC;YAAA,MAAM,IAAI,GAAC,EAAC,GAAG,KAAK,EAAC,MAAM,EAAC,EAAC,GAAG,KAAK,CAAC,MAAM,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,EAAC,WAAoB,EAAC,EAAC,CAAC;YAAA,eAAe,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YAAA,MAAM,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAC,MAAM,EAAC,2BAA2B,IAAI,6BAA6B,CAAC,CAAC;YAAA,OAAO;QAAA,CAAC;QAAA,MAAM,IAAI,QAAQ,CAAC,wBAAwB,EAAC,CAAC,CAAC,CAAC;IAAA,CAAC;IAC71C,MAAM,IAAI,QAAQ,CAAC,oBAAoB,OAAO,EAAE,EAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AACD,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA,EAAE,GAAC,MAAM,CAAC,GAAC,KAAY,CAAC,CAAA,IAAI,IAAI,GAAC,CAAC,YAAY,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAC,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAC,CAAA,IAAI,OAAO,GAAC,CAAC,YAAY,KAAK,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,IAAI,MAAU,CAAC,CAAA,IAAG,CAAC;IAAA,MAAM,GAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAAA,IAAG,MAAM,EAAE,KAAK;QAAC,OAAO,GAAC,MAAM,CAAC,OAAO,IAAE,MAAM,CAAC,KAAK,CAAC;AAAA,CAAC;AAAA,MAAK,CAAC,CAAA,CAAC,CAAA,IAAG,wDAAwD,CAAC,IAAI,CAAC,OAAO,GAAC,CAAC,MAAM,EAAE,KAAK,IAAE,EAAE,CAAC,CAAC;IAAC,IAAI,GAAC,CAAC,CAAC,CAAA,IAAG,aAAa;IAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,IAAI,EAAC,MAAM,EAAE,KAAK,IAAE,WAAW,EAAC,OAAO,EAAC,EAAC,QAAQ,EAAC,IAAI,EAAC,CAAC,IAAI,CAAC,CAAC;;IAAK,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAA,OAAO,CAAC,QAAQ,GAAC,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { FileportConfig } from "./types.js";
1
+ import type { FileportConfig, PublicUrlMode } from "./types.js";
2
2
  export interface FileportConfigFile {
3
3
  bind?: {
4
4
  host?: string;
@@ -6,6 +6,7 @@ export interface FileportConfigFile {
6
6
  };
7
7
  public?: {
8
8
  url?: string | null;
9
+ mode?: PublicUrlMode;
9
10
  dnsPolicy?: "all-local";
10
11
  };
11
12
  }
@@ -13,6 +14,7 @@ export interface ConfigOverrides {
13
14
  host?: string;
14
15
  port?: number;
15
16
  publicBaseUrl?: string;
17
+ publicMode?: PublicUrlMode;
16
18
  }
17
19
  export declare function configPath(env?: NodeJS.ProcessEnv): string;
18
20
  export declare function readConfigFile(file?: string): FileportConfigFile;
package/dist/config.js CHANGED
@@ -3,6 +3,13 @@ import os from "node:os";
3
3
  import path from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { normalizePublicUrl } from "./network.js";
6
+ function validPublicMode(value) {
7
+ if (value === undefined || value === null || value === "")
8
+ return "direct";
9
+ if (value !== "direct" && value !== "proxy")
10
+ throw new Error(`invalid public mode: ${String(value)}`);
11
+ return value;
12
+ }
6
13
  function validPort(value, fallback) {
7
14
  if (value === undefined || value === null || value === "")
8
15
  return fallback;
@@ -63,7 +70,8 @@ export function loadConfig(env = process.env, overrides = {}) {
63
70
  const stateHome = env.XDG_STATE_HOME || path.join(os.homedir(), ".local", "state"), file = readConfigFile(configPath(env));
64
71
  const publicRaw = overrides.publicBaseUrl ?? env.FILEPORT_PUBLIC_BASE_URL ?? file.public?.url ?? undefined;
65
72
  const publicBaseUrl = publicRaw ? normalizePublicUrl(publicRaw).toString().replace(/\/$/, "") : undefined;
73
+ const publicMode = validPublicMode(overrides.publicMode ?? env.FILEPORT_PUBLIC_MODE ?? file.public?.mode);
66
74
  const packagedDufs = fileURLToPath(new URL("../vendor/dufs", import.meta.url));
67
- return { stateDir: path.resolve(env.FILEPORT_STATE_DIR || path.join(stateHome, "fileport")), host: overrides.host ?? env.FILEPORT_HOST ?? file.bind?.host ?? "0.0.0.0", port: validPort(overrides.port ?? env.FILEPORT_PORT ?? file.bind?.port, 7892), dufsBin: path.resolve(env.FILEPORT_DUFS_BIN || packagedDufs), publicBaseUrl, configFile: configPath(env) };
75
+ return { stateDir: path.resolve(env.FILEPORT_STATE_DIR || path.join(stateHome, "fileport")), host: overrides.host ?? env.FILEPORT_HOST ?? file.bind?.host ?? "0.0.0.0", port: validPort(overrides.port ?? env.FILEPORT_PORT ?? file.bind?.port, 7892), dufsBin: path.resolve(env.FILEPORT_DUFS_BIN || packagedDufs), publicBaseUrl, publicMode, configFile: configPath(env) };
68
76
  }
69
77
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/gateway.js CHANGED
@@ -65,7 +65,7 @@ export class Gateway {
65
65
  await this.lockFile.writeFile(`${process.pid}\n`);
66
66
  await this.lockFile.sync();
67
67
  await this.registry.load();
68
- this.publicSnapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl }, true);
68
+ this.publicSnapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl, publicMode: this.config.publicMode }, true);
69
69
  try {
70
70
  await fs.unlink(this.controlSocket);
71
71
  }
@@ -115,7 +115,7 @@ export class Gateway {
115
115
  }
116
116
  async probeListener() {
117
117
  const primary = this.config.host === "0.0.0.0" ? "127.0.0.1" : this.config.host === "::" ? "::1" : this.config.host;
118
- const advertised = this.publicSnapshot?.dns?.resolved ?? (this.publicSnapshot?.advertisedAddress?.kind === "configured-ip" || this.publicSnapshot?.advertisedAddress?.kind === "lan-ip" ? [this.publicSnapshot.advertisedAddress.host] : []);
118
+ const advertised = this.publicSnapshot?.publicMode === "proxy" ? [] : this.publicSnapshot?.dns?.resolved ?? (this.publicSnapshot?.advertisedAddress?.kind === "configured-ip" || this.publicSnapshot?.advertisedAddress?.kind === "lan-ip" ? [this.publicSnapshot.advertisedAddress.host] : []);
119
119
  for (const host of [...new Set([primary, ...advertised])])
120
120
  await this.probeHost(host);
121
121
  }
@@ -123,7 +123,7 @@ export class Gateway {
123
123
  async handleControl(req, res) {
124
124
  const url = new URL(req.url || "/", "http://localhost");
125
125
  if (req.method === "POST" && url.pathname === "/shares") {
126
- const snapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl }, true);
126
+ const snapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl, publicMode: this.config.publicMode }, true);
127
127
  if (!snapshot.publicBaseUrl)
128
128
  throw new PublicAddressError("NO_LAN_ADDRESS", "no LAN IPv4 address found; connect a network or configure public.url");
129
129
  this.publicSnapshot = snapshot;
@@ -135,7 +135,7 @@ export class Gateway {
135
135
  return json(res, 200, { shares: this.registry.list() });
136
136
  if (req.method === "GET" && url.pathname === "/doctor") {
137
137
  try {
138
- this.publicSnapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl }, true);
138
+ this.publicSnapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl, publicMode: this.config.publicMode }, true);
139
139
  return json(res, 200, { bind: { host: this.config.host, port: this.config.port }, ...this.publicSnapshot });
140
140
  }
141
141
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
package/dist/network.d.ts CHANGED
@@ -14,14 +14,16 @@ export interface DnsSnapshot {
14
14
  localMatches: string[];
15
15
  checkedAt: string;
16
16
  }
17
+ export type PublicUrlMode = "direct" | "proxy";
17
18
  export interface AdvertisedAddress {
18
- kind: "lan-ip" | "configured-hostname" | "configured-ip" | "local-only";
19
+ kind: "lan-ip" | "configured-hostname" | "configured-ip" | "configured-proxy" | "local-only";
19
20
  host: string;
20
21
  validatedAt: string;
21
22
  }
22
23
  export interface PublicSnapshot {
23
24
  status: "ok" | "degraded" | "local-only";
24
25
  publicBaseUrl?: string;
26
+ publicMode?: PublicUrlMode;
25
27
  selectedLanIp?: string;
26
28
  candidates: AddressCandidate[];
27
29
  advertisedAddress?: AdvertisedAddress;
@@ -59,6 +61,7 @@ export declare class PublicAddressResolver {
59
61
  host: string;
60
62
  port: number;
61
63
  publicBaseUrl?: string;
64
+ publicMode?: PublicUrlMode;
62
65
  }, fresh?: boolean): Promise<PublicSnapshot>;
63
66
  }
64
67
  export declare function normalizePublicUrl(value: string): URL;
package/dist/network.js CHANGED
@@ -134,24 +134,42 @@ export class PublicAddressResolver {
134
134
  let snapshot;
135
135
  if (!input.publicBaseUrl) {
136
136
  const selected = candidates.find(candidate => bindCovers(input.host, candidate.address));
137
- snapshot = selected ? { status: "ok", publicBaseUrl: `http://${selected.address}:${input.port}`, selectedLanIp: selected.address, candidates, advertisedAddress: { kind: "lan-ip", host: selected.address, validatedAt: now.toISOString() }, warnings }
137
+ snapshot = selected ? { status: "ok", publicBaseUrl: `http://${selected.address}:${input.port}`, publicMode: "direct", selectedLanIp: selected.address, candidates, advertisedAddress: { kind: "lan-ip", host: selected.address, validatedAt: now.toISOString() }, warnings }
138
138
  : { status: "local-only", publicBaseUrl: undefined, candidates, warnings: [candidates.length ? `bind host ${input.host} does not cover any LAN IPv4 candidate` : "no LAN IPv4 address found; connect a network or configure public.url"] };
139
139
  }
140
140
  else {
141
141
  const url = normalizePublicUrl(input.publicBaseUrl);
142
- const expectedPort = input.port === 80 ? "" : String(input.port);
143
- if (url.port !== expectedPort)
144
- throw new PublicAddressError("PUBLIC_PORT_MISMATCH", `public URL port ${url.port || 80} does not match listener port ${input.port}`);
142
+ const publicMode = input.publicMode ?? "direct";
145
143
  const hostname = url.hostname.replace(/^\[|\]$/g, "");
146
144
  const locals = localAddresses(this.adapter);
147
145
  const ipKind = net.isIP(hostname);
146
+ if (publicMode === "proxy") {
147
+ let dns;
148
+ if (!ipKind) {
149
+ try {
150
+ const { addresses, chain } = await resolveAll(hostname, this.adapter);
151
+ dns = { hostname, cnameChain: chain, resolved: addresses, localMatches: addresses.filter(address => locals.has(address)), checkedAt: now.toISOString() };
152
+ }
153
+ catch (error) {
154
+ warnings.push(`public proxy DNS check failed: ${error instanceof Error ? error.message : String(error)}`);
155
+ }
156
+ }
157
+ snapshot = { status: warnings.length ? "degraded" : "ok", publicBaseUrl: url.toString().replace(/\/$/, ""), publicMode, candidates, advertisedAddress: { kind: "configured-proxy", host: hostname, validatedAt: now.toISOString() }, dns, warnings };
158
+ this.cache = { key, at: now.getTime(), snapshot };
159
+ return snapshot;
160
+ }
161
+ if (url.protocol !== "http:")
162
+ throw new PublicAddressError("DIRECT_URL_REQUIRES_HTTP", "direct public URL must use HTTP; use public mode proxy for an HTTPS reverse proxy or tunnel");
163
+ const expectedPort = input.port === 80 ? "" : String(input.port);
164
+ if (url.port !== expectedPort)
165
+ throw new PublicAddressError("PUBLIC_PORT_MISMATCH", `public URL port ${url.port || 80} does not match listener port ${input.port}`);
148
166
  if (ipKind) {
149
167
  const normalized = normalizeIp(hostname);
150
168
  if (!locals.has(normalized))
151
169
  throw new PublicAddressError("PUBLIC_IP_NOT_LOCAL", `public IP ${hostname} is not assigned to this machine`);
152
170
  if (!bindCovers(input.host, normalized))
153
171
  throw new PublicAddressError("PUBLIC_IP_NOT_BOUND", `bind host ${input.host} does not cover public IP ${hostname}`);
154
- snapshot = { status: "ok", publicBaseUrl: url.toString().replace(/\/$/, ""), candidates, advertisedAddress: { kind: normalized === "127.0.0.1" || normalized === "::1" ? "local-only" : "configured-ip", host: hostname, validatedAt: now.toISOString() }, warnings };
172
+ snapshot = { status: "ok", publicBaseUrl: url.toString().replace(/\/$/, ""), publicMode, candidates, advertisedAddress: { kind: normalized === "127.0.0.1" || normalized === "::1" ? "local-only" : "configured-ip", host: hostname, validatedAt: now.toISOString() }, warnings };
155
173
  }
156
174
  else {
157
175
  const { addresses, chain } = await resolveAll(hostname, this.adapter), matches = addresses.filter(a => locals.has(a));
@@ -164,7 +182,7 @@ export class PublicAddressResolver {
164
182
  const uncovered = addresses.filter(a => !bindCovers(input.host, a));
165
183
  if (uncovered.length)
166
184
  throw new PublicAddressError("DNS_NOT_BOUND", `bind host ${input.host} does not cover resolved addresses [${uncovered.join(", ")}]`);
167
- snapshot = { status: "ok", publicBaseUrl: url.toString().replace(/\/$/, ""), candidates, advertisedAddress: { kind: "configured-hostname", host: hostname, validatedAt: now.toISOString() }, dns: { hostname, cnameChain: chain, resolved: addresses, localMatches: matches, checkedAt: now.toISOString() }, warnings };
185
+ snapshot = { status: "ok", publicBaseUrl: url.toString().replace(/\/$/, ""), publicMode, candidates, advertisedAddress: { kind: "configured-hostname", host: hostname, validatedAt: now.toISOString() }, dns: { hostname, cnameChain: chain, resolved: addresses, localMatches: matches, checkedAt: now.toISOString() }, warnings };
168
186
  }
169
187
  }
170
188
  this.cache = { key, at: now.getTime(), snapshot };
@@ -179,8 +197,8 @@ export function normalizePublicUrl(value) {
179
197
  catch {
180
198
  throw new PublicAddressError("INVALID_PUBLIC_URL", `invalid public URL: ${value}`);
181
199
  }
182
- if (url.protocol !== "http:")
183
- throw new PublicAddressError("INVALID_PUBLIC_URL", "Fileport supports HTTP only");
200
+ if (url.protocol !== "http:" && url.protocol !== "https:")
201
+ throw new PublicAddressError("INVALID_PUBLIC_URL", "public URL must use HTTP or HTTPS");
184
202
  if (url.username || url.password || url.search || url.hash)
185
203
  throw new PublicAddressError("INVALID_PUBLIC_URL", "public URL must not contain userinfo, query, or fragment");
186
204
  if (url.pathname !== "/" && url.pathname !== "")
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export type ShareKind = "file" | "directory";
2
2
  export type SharePermission = "ro" | "rw";
3
+ export type PublicUrlMode = "direct" | "proxy";
3
4
  export interface Share {
4
5
  id: string;
5
6
  target: string;
@@ -15,5 +16,6 @@ export interface FileportConfig {
15
16
  port: number;
16
17
  dufsBin: string;
17
18
  publicBaseUrl?: string;
19
+ publicMode: PublicUrlMode;
18
20
  configFile: string;
19
21
  }
package/dist/ui.js CHANGED
@@ -3,15 +3,15 @@ export function previewHtml(share) {
3
3
  return `<!doctype html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><title>Fileport</title>
4
4
  <style>:root{font:15px system-ui,sans-serif;color:#202124;background:#f6f7f9}*{box-sizing:border-box}body{margin:0}header{height:52px;display:flex;align-items:center;gap:12px;padding:0 18px;background:#fff;border-bottom:1px solid #dfe1e5}header strong{font-size:17px}.badge{font-size:12px;padding:3px 7px;border-radius:12px;background:#e8f0fe;color:#174ea6}main{max-width:1200px;margin:18px auto;padding:0 16px}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px}.path{font-family:ui-monospace,monospace;overflow-wrap:anywhere}.status{margin-left:auto;color:#5f6368;font-size:13px}.panel{background:#fff;border:1px solid #dfe1e5;border-radius:10px;overflow:hidden;min-height:160px}.entry{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid #eee;color:#174ea6;text-decoration:none}.entry:hover{background:#f8faff}.content{padding:18px;overflow:auto}pre{margin:0;white-space:pre-wrap;word-break:break-word;font:13px/1.5 ui-monospace,SFMono-Regular,monospace}table{border-collapse:collapse;width:100%}td,th{border:1px solid #ddd;padding:6px;text-align:left}img{max-width:100%;height:auto}.error{color:#b3261e;padding:18px}button{border:1px solid #ccd;background:#fff;border-radius:6px;padding:6px 10px;cursor:pointer}button:disabled{opacity:.5}.save{background:#174ea6;color:#fff}textarea{width:100%;height:70vh;border:0;padding:16px;resize:vertical;font:13px/1.5 ui-monospace,SFMono-Regular,monospace}.markdown-body{font-size:16px;line-height:1.65;color:#1f2328}.markdown-body h1,.markdown-body h2,.markdown-body h3{line-height:1.25;margin:1.4em 0 .6em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #d8dee4}.markdown-body p{margin:.8em 0}.markdown-body ul,.markdown-body ol{padding-left:2em}.markdown-body li+li{margin-top:.25em}.markdown-body blockquote{margin:1em 0;padding:0 1em;color:#59636e;border-left:.25em solid #d0d7de}.markdown-body code{padding:.15em .35em;border-radius:4px;background:#eff1f3;font:85% ui-monospace,SFMono-Regular,monospace}.markdown-body pre{padding:16px;overflow:auto;background:#f6f8fa;border-radius:6px;white-space:pre}.markdown-body pre code{padding:0;background:transparent;font-size:100%}.markdown-body table{display:block;overflow:auto;margin:1em 0;border-spacing:0}.markdown-body th{font-weight:600;background:#f6f8fa}.markdown-body th,.markdown-body td{padding:6px 13px;border:1px solid #d0d7de}.markdown-body tr:nth-child(2n){background:#f6f8fa}.markdown-body a{color:#0969da;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body hr{height:.25em;border:0;background:#d0d7de}.markdown-body input[type=checkbox]{margin-right:.5em}</style></head><body>
5
5
  <header><strong>Fileport</strong><span class="badge">${share.permission === "rw" ? "RW · saves modify the authoritative file" : "RO · read-only capability"}</span></header>
6
- <main><div class="toolbar"><button id="up">Up</button><button id="edit" hidden>Edit</button><button id="save" class="save" hidden>Save</button><span class="path" id="path"></span><span class="status" id="status"></span></div><section class="panel" id="view"><div class="content">Loading…</div></section></main>
6
+ <main><div class="toolbar"><button id="up">Up</button><button id="edit" hidden>Edit</button><button id="save" class="save" hidden>Save</button><button id="download" hidden>Download</button><span class="path" id="path"></span><span class="status" id="status"></span></div><section class="panel" id="view"><div class="content">Loading…</div></section></main>
7
7
  <script>const CONFIG=${config};
8
- const view=document.getElementById('view'),pathLabel=document.getElementById('path'),up=document.getElementById('up'),edit=document.getElementById('edit'),save=document.getElementById('save'),status=document.getElementById('status');let active={path:'',text:'',version:'',editable:false,editing:false,type:''};
8
+ const view=document.getElementById('view'),pathLabel=document.getElementById('path'),up=document.getElementById('up'),edit=document.getElementById('edit'),save=document.getElementById('save'),downloadBtn=document.getElementById('download'),status=document.getElementById('status');let active={path:'',text:'',version:'',editable:false,editing:false,type:''};
9
9
  const esc=s=>String(s).replace(/[&<>"']/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c]));
10
10
  const enc=p=>p.split('/').filter(Boolean).map(encodeURIComponent).join('/');const fsUrl=p=>'/s/'+CONFIG.shareId+'/fs/'+enc(p);const apiUrl=(kind,p)=>'/s/'+CONFIG.shareId+'/api/'+kind+'/'+enc(p);const current=()=>new URL(location.href).searchParams.get('path')??CONFIG.initialPath;
11
11
  function navigate(p){const u=new URL(location.href);p?u.searchParams.set('path',p):u.searchParams.delete('path');history.pushState({},'',u);render()}
12
12
  function csv(text){const rows=text.trim().split(/\\r?\\n/).map(r=>r.split(','));return '<table>'+rows.map((r,i)=>'<tr>'+r.map(c=>'<'+(i?'td':'th')+'>'+esc(c)+'</'+(i?'td':'th')+'>').join('')+'</tr>').join('')+'</table>'}
13
13
  async function sourceView(p,text,type){const ext=p.toLowerCase().split('.').pop();if(type.includes('text/html')||ext==='html'){const url=URL.createObjectURL(new Blob([text],{type:'text/html'}));view.innerHTML='<iframe sandbox="allow-scripts" style="width:100%;height:75vh;border:0" src="'+url+'"></iframe>';return}let formatted=text;if(ext==='json'){try{formatted=JSON.stringify(JSON.parse(text),null,2)}catch{}}if(ext==='md'||ext==='markdown'){const response=await fetch(apiUrl('render/markdown',p),{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({source:text})});const data=await response.json();if(!response.ok)throw new Error(data.error||'Markdown render failed');view.innerHTML='<article class="content markdown-body">'+data.html+'</article>';return}if(ext==='csv'||ext==='tsv'){view.innerHTML='<div class="content">'+(ext==='csv'?csv(formatted):csv(formatted.replaceAll('\\t',',')))+'</div>';return}view.innerHTML='<div class="content"><pre>'+esc(formatted)+'</pre></div>'}
14
- async function showFile(p){const response=await fetch(fsUrl(p));if(!response.ok)throw new Error('HTTP '+response.status);const type=response.headers.get('content-type')||'';if(type.startsWith('image/')){const url=URL.createObjectURL(await response.blob());view.innerHTML='<div class="content"><img alt="preview" src="'+url+'"></div>';return}let text=await response.text(),version='',editable=false;if(CONFIG.permission==='rw'){const editResponse=await fetch(apiUrl('edit',p));if(editResponse.ok){const snapshot=await editResponse.json();text=snapshot.content;version=snapshot.version;editable=snapshot.editable===true}}active={path:p,text,version,editable,editing:false,type};await sourceView(p,text,type);edit.hidden=!active.editable;edit.onclick=()=>{active.editing=true;view.innerHTML='<textarea id="editor"></textarea>';document.getElementById('editor').value=active.text;edit.hidden=true;save.hidden=false;status.textContent='Unsaved changes'};save.onclick=async()=>{if(!confirm('Save changes to the authoritative file?'))return;save.disabled=true;const content=document.getElementById('editor').value,response=await fetch(apiUrl('save',active.path),{method:'PUT',headers:{'content-type':'application/json'},body:JSON.stringify({content,expectedVersion:active.version})}),data=await response.json();save.disabled=false;if(!response.ok){status.textContent='Save failed: '+data.error;return}active.text=content;active.version=data.version;active.editing=false;status.textContent='Saved';edit.hidden=false;save.hidden=true;await sourceView(active.path,active.text,active.type)}}
14
+ async function showFile(p){const response=await fetch(fsUrl(p));if(!response.ok)throw new Error('HTTP '+response.status);const type=response.headers.get('content-type')||'';if(type.startsWith('image/')){const url=URL.createObjectURL(await response.blob());view.innerHTML='<div class="content"><img alt="preview" src="'+url+'"></div>';return}let text=await response.text(),version='',editable=false;if(CONFIG.permission==='rw'){const editResponse=await fetch(apiUrl('edit',p));if(editResponse.ok){const snapshot=await editResponse.json();text=snapshot.content;version=snapshot.version;editable=snapshot.editable===true}}active={path:p,text,version,editable,editing:false,type};await sourceView(p,text,type);downloadBtn.hidden=false;downloadBtn.onclick=()=>{const a=document.createElement('a');a.href=fsUrl(p);a.download=p.split('/').pop()||'download';a.click()};edit.hidden=!active.editable;edit.onclick=()=>{active.editing=true;view.innerHTML='<textarea id="editor"></textarea>';document.getElementById('editor').value=active.text;edit.hidden=true;save.hidden=false;downloadBtn.hidden=true;status.textContent='Unsaved changes'};save.onclick=async()=>{if(!confirm('Save changes to the authoritative file?'))return;save.disabled=true;const content=document.getElementById('editor').value,response=await fetch(apiUrl('save',active.path),{method:'PUT',headers:{'content-type':'application/json'},body:JSON.stringify({content,expectedVersion:active.version})}),data=await response.json();save.disabled=false;if(!response.ok){status.textContent='Save failed: '+data.error;return}active.text=content;active.version=data.version;active.editing=false;status.textContent='Saved';edit.hidden=false;save.hidden=true;await sourceView(active.path,active.text,active.type)}}
15
15
  async function showDirectory(p){const response=await fetch((p?fsUrl(p)+'/':fsUrl(''))+'?json');if(!response.ok)throw new Error('HTTP '+response.status);const data=await response.json(),entries=data.paths||[];view.innerHTML=entries.length?entries.map(item=>{const name=String(item.name),leaf=name.includes('/')?name.slice(name.lastIndexOf('/')+1):name,next=[p,leaf].filter(Boolean).join('/'),icon=item.path_type==='Dir'?'📁':'📄';return '<a class="entry" href="?path='+encodeURIComponent(next)+'" data-path="'+esc(next)+'"><span>'+icon+'</span><span>'+esc(leaf)+'</span></a>'}).join(''):'<div class="content">Empty directory</div>';view.querySelectorAll('[data-path]').forEach(a=>a.addEventListener('click',e=>{e.preventDefault();navigate(a.dataset.path)}))}
16
16
  async function render(){const p=current();edit.hidden=true;save.hidden=true;status.textContent='';pathLabel.textContent='/'+p;up.disabled=!p||CONFIG.kind==='file';up.onclick=()=>navigate(p.split('/').slice(0,-1).join('/'));view.innerHTML='<div class="content">Loading…</div>';try{if(CONFIG.kind==='file')await showFile(CONFIG.initialPath);else{const probe=await fetch(fsUrl(p)+(p?'/':'')+'?json');if(probe.ok){const data=await probe.clone().json().catch(()=>null);if(data?.kind==='Index'){await showDirectory(p);return}}await showFile(p)}}catch(e){view.innerHTML='<div class="error">'+esc(e.message||e)+'</div>'}}
17
17
  addEventListener('popstate',render);render();</script></body></html>`;
@@ -2,26 +2,39 @@
2
2
 
3
3
  ## Bind versus advertised URL
4
4
 
5
- `bind.host`/`bind.port` control the HTTP listener. `public.url` controls only generated share URLs. A hostname is never passed to `listen()`.
5
+ `bind.host`/`bind.port` control the HTTP origin listener. `public.url` controls only generated share URLs. A hostname is never passed to `listen()`.
6
6
 
7
7
  Priority: command flags > environment > `~/.config/fileport/config.json` > defaults.
8
8
 
9
+ Direct mode is the default and preserves the strict all-local DNS policy:
10
+
9
11
  ```json
10
12
  {
11
13
  "bind": { "host": "0.0.0.0", "port": 7892 },
12
- "public": { "url": "http://files.example.com:7892", "dnsPolicy": "all-local" }
14
+ "public": { "url": "http://files.example.com:7892", "mode": "direct", "dnsPolicy": "all-local" }
13
15
  }
14
16
  ```
15
17
 
18
+ Proxy mode is for a reverse proxy or tunnel that terminates public HTTP(S) and forwards to the Fileport HTTP listener:
19
+
20
+ ```json
21
+ {
22
+ "bind": { "host": "127.0.0.1", "port": 7892 },
23
+ "public": { "url": "https://files.example.com", "mode": "proxy" }
24
+ }
25
+ ```
26
+
27
+ The corresponding CLI is `fileport config set --host 127.0.0.1 --public-url https://files.example.com --public-mode proxy`. Restart Fileport after changing persistent configuration.
28
+
16
29
  The config directory is 0700 and file 0600. Restart Fileport after persistent config changes.
17
30
 
18
31
  ## Automatic LAN URL
19
32
 
20
33
  Without `public.url`, Fileport selects a non-loopback IPv4 on the default-route interface, excluding link-local and common virtual interfaces. Private IPv4 is preferred. IPv6 is used only when explicitly configured. If no listener-covered LAN IPv4 exists, the daemon may run local-only but new shares fail closed.
21
34
 
22
- ## Strict DNS policy
35
+ ## Direct mode: strict DNS policy
23
36
 
24
- Configured hostnames are resolved through CNAME (maximum eight hops), A, and AAAA. Every final address must:
37
+ In direct mode, configured hostnames are resolved through CNAME (maximum eight hops), A, and AAAA. Every final address must:
25
38
 
26
39
  1. be a shareable non-loopback address;
27
40
  2. exist on a local network interface; and
@@ -29,6 +42,12 @@ Configured hostnames are resolved through CNAME (maximum eight hops), A, and AAA
29
42
 
30
43
  Mixed local/remote DNS is rejected. Dual-stack DNS requires a dual-stack listener such as `bind.host="::"`. DNS is checked at startup and before each new share. Existing capabilities are not rewritten if DNS later drifts.
31
44
 
45
+ ## Proxy mode
46
+
47
+ Proxy mode permits `http://` or `https://` public URLs whose hostname resolves to a remote proxy or CDN. It intentionally does not require the public URL's port or addresses to match the origin listener. DNS resolution is included in `doctor` output when available and degrades to a warning when unavailable.
48
+
49
+ This mode only changes URL advertisement; it does not create, authenticate, or health-check the proxy/tunnel. Bind the Fileport origin as narrowly as the proxy permits (normally `127.0.0.1`) and verify a generated capability URL through the public endpoint.
50
+
32
51
  ## Agent contract
33
52
 
34
53
  All operational commands accept `--json`. In JSON mode stdout contains exactly one JSON object; diagnostics use stderr. Default `share` stdout remains the URL only.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fileport-gateway",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Secure Agent Artifact Gateway with capability URLs, strict saves, and Dufs-backed file serving.",
5
5
  "type": "module",
6
6
  "bin": {