Skip to content

docs: document the two FILE_SERVER_URL settings (fixes #43)#58

Merged
Yambr merged 2 commits intomainfrom
docs/file-server-url-alignment
Apr 13, 2026
Merged

docs: document the two FILE_SERVER_URL settings (fixes #43)#58
Yambr merged 2 commits intomainfrom
docs/file-server-url-alignment

Conversation

@Yambr
Copy link
Copy Markdown
Owner

@Yambr Yambr commented Apr 13, 2026

Summary

Document the two FILE_SERVER_URL settings that must agree and plumb the previously-hidden server-side one through docker-compose.yml. Fixes the discoverability half of #43 (StevenNotch).

The project has two settings named FILE_SERVER_URL:

  1. Container env varcomputer-use-server/docker_manager.py:44, used by mcp_tools.py:847 and app.py:1194 to embed URL text into assistant messages and the sub-agent prompt. Wasn't exposed in docker-compose.yml before this PR — users had to edit source to override it.
  2. Filter Valveopenwebui/functions/computer_link_filter.py:120, used in outlet() to build a regex that must MATCH the URL text from (1). If they disagree, the filter silently skips decoration. No error, no log line, just no preview.

StevenNotch hit this in #43 after running docker compose -p myproject with a renamed container_name — the default internal hostname stopped resolving and only one of the two settings was updated, so the filter regex never matched.

Changes

File Change
docker-compose.yml Expose FILE_SERVER_URL on the computer-use-server service with the previous default preserved via ${FILE_SERVER_URL:-http://computer-use-server:8081}. Inline comment links to the docs.
.env.example Documented block with the must-match warning and a commented FILE_SERVER_URL=http://localhost:8081 example.
docs/openwebui-filter.md New subsection "Two FILE_SERVER_URL settings — they must match" with a side-by-side table of the two knobs, explicit walkthrough of the silent-failure mode, and a worked example for the -p / renamed-container case. Amends the preceding "Also check" paragraph with a link into it.
docs/KNOWN-BUGS.md New entry #6. Preview breaks after docker compose -p <project> or custom container_name in the existing Severity / How it works / Issue / Workaround format. Links back to the openwebui-filter.md explanation.
README.md New row for FILE_SERVER_URL in the Configuration env-var table with a deep-link to the canonical docs subsection.

No code behavior changes. No Valve rename (out of scope — would break existing deployed Valve configurations; tracked as a follow-up).

Test plan

  • python3 -c "import yaml; yaml.safe_load(open('docker-compose.yml'))" → valid YAML
  • ./tests/test-project-structure.sh → 22/22 PASS
  • grep -n FILE_SERVER_URL docker-compose.yml .env.example docs/openwebui-filter.md docs/KNOWN-BUGS.md README.md → all five files consistent (same spelling, same default, same cross-ref target)
  • CI: Build Sandbox Image, Build Server Image, Build Patched Open WebUI Image all green
  • Default-case smoke (local): cp .env.example .env, docker compose up → existing behavior unchanged (default http://computer-use-server:8081 still flows through)
  • Override smoke (local): uncomment FILE_SERVER_URL=http://192.0.2.1:8081 in .env, restart → new value appears in server-emitted file URLs

https://claude.ai/code/session_01UMvLz4zxSFSZN3TydK28kc

Summary by CodeRabbit

  • New Features

    • Added FILE_SERVER_URL configuration option for customizing the file server endpoint
  • Documentation

    • Added FILE_SERVER_URL setup and configuration documentation
    • Expanded troubleshooting guide for preview issues and configuration mismatches
    • Documented known configuration synchronization issues with troubleshooting steps

…er env var

The project has two settings named FILE_SERVER_URL that must agree but which
weren't documented together, and one side (the container env var read in
computer-use-server/docker_manager.py:44) wasn't exposed via docker-compose.yml
at all. The filter in openwebui/functions/computer_link_filter.py:330 builds
a regex from its own Valve and silently skips decoration if the URL text
embedded by the server doesn't match — no error, no log line, preview just
never appears. Surfaced by issue #43.

This change is docs + compose plumbing only. No code behavior changes.

- docker-compose.yml: expose FILE_SERVER_URL on the computer-use-server
  service with the previous hardcoded default preserved via ${FILE_SERVER_URL:-
  http://computer-use-server:8081}. Overridable from .env without editing
  source. Inline comment points at the filter Valve requirement.

- .env.example: documented block under the Computer Use Server section,
  commented-out example with the matching-Valve warning and a cross-reference
  to docs/openwebui-filter.md.

- docs/openwebui-filter.md: new subsection "Two FILE_SERVER_URL settings —
  they must match" between the existing "Also check" paragraph and the
  Valves reference. Covers the failure mode, a side-by-side table of the two
  settings, how to set them, and the docker-compose -p / renamed
  container_name pitfall. Amends the preceding paragraph with a link into
  the new subsection.

- docs/KNOWN-BUGS.md: new entry #6 reproducing StevenNotch's scenario in the
  project's existing Severity/How-it-works/Issue/Workaround format, linking
  back to the openwebui-filter.md explanation. Notes the rename-the-Valve
  follow-up as not scheduled.

- README.md: FILE_SERVER_URL added to the Configuration table with a link
  to the canonical docs/openwebui-filter.md subsection. README stays a
  quickstart; full explanation lives in docs/.

Fixes the discoverability half of #43. Actual Valve rename is out of scope
here — would break existing deployed Valve configurations.

https://claude.ai/code/session_01UMvLz4zxSFSZN3TydK28kc
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 13, 2026

Warning

Rate limit exceeded

@Yambr has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 47 minutes and 27 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 47 minutes and 27 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5f04d4ed-3745-44e8-9ac2-0af021a3d225

📥 Commits

Reviewing files that changed from the base of the PR and between 5965f98 and b36193b.

📒 Files selected for processing (2)
  • docs/KNOWN-BUGS.md
  • docs/openwebui-filter.md
📝 Walkthrough

Walkthrough

This pull request introduces a new FILE_SERVER_URL environment variable across configuration and documentation to control the public URL used for file/preview server links. The variable is added to .env.example, docker-compose.yml, and README.md, with accompanying documentation and troubleshooting guides explaining required alignment between server and Open WebUI filter configurations.

Changes

Cohort / File(s) Summary
Environment & Configuration
.env.example, docker-compose.yml, README.md
Added FILE_SERVER_URL environment variable with default value (http://computer-use-server:8081) and documentation specifying that it must match the corresponding Open WebUI filter Valve to enable file preview functionality.
Documentation
docs/KNOWN-BUGS.md, docs/openwebui-filter.md
Added known bug entry (#6) describing URL mismatch failures and expanded troubleshooting section with explicit setup steps, silent failure mode behavior, and scenarios involving custom container names or project prefixes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 A URL hops into the fray,
To serve files in the proper way,
Match the Valve, or links will stray,
Configuration saves the day! 🎯

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and clearly describes the main change: documenting the two FILE_SERVER_URL settings that must match, and references the specific issue (#43) being fixed.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/file-server-url-alignment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Yambr
Copy link
Copy Markdown
Owner Author

Yambr commented Apr 13, 2026

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 13, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/openwebui-filter.md`:
- Line 64: Clarify that using docker compose -p alone does not change the
container_name pinned in our docker-compose.yml (container_name:
computer-use-server) and that the earlier example
`myproject-computer-use-server` incorrectly implies -p will rename the
container; update the sentence around the `docker compose -p myproject / renamed
container_name` example to state that if you change the project name AND you do
not pin container_name, internal hostnames will be prefixed (e.g.,
myproject-computer-use-server), but in this repo the compose file pins
container_name: computer-use-server so -p alone won’t change that; mirror the
same corrected wording in docs/KNOWN-BUGS.md and retain the advice to set
FILE_SERVER_URL to the externally reachable URL when hostnames are renamed.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: aa137503-e667-41c9-bf41-d6d3968655df

📥 Commits

Reviewing files that changed from the base of the PR and between b9ba47b and 5965f98.

📒 Files selected for processing (5)
  • .env.example
  • README.md
  • docker-compose.yml
  • docs/KNOWN-BUGS.md
  • docs/openwebui-filter.md

Comment thread docs/openwebui-filter.md Outdated
…RL docs

CodeRabbit flagged the `-p myproject → myproject-computer-use-server`
example as inaccurate: the stock docker-compose.yml pins
`container_name: computer-use-server` (line 25), so `docker compose -p`
alone does not rename the internal hostname. Mirroring the same
imprecision in docs/KNOWN-BUGS.md #6.

Reword both to state the actual precondition — the Compose-generated
hostname only kicks in when the operator REMOVES or CHANGES the
container_name pin (e.g. running two stacks side by side) and/or uses
`-p`. Retain the core advice: when the internal hostname isn't
browser-reachable, set FILE_SERVER_URL to the external URL and keep
the server env var and filter Valve identical. Also update the entry
heading + cross-ref anchor to match the new framing.

https://claude.ai/code/session_01UMvLz4zxSFSZN3TydK28kc
@Yambr Yambr merged commit d0dea68 into main Apr 13, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants