Skip to content

Create new Reverse Proxy.md, remove old#1510

Merged
jokob-sk merged 3 commits intonetalertx:mainfrom
adamoutler:proxy-docs
Feb 12, 2026
Merged

Create new Reverse Proxy.md, remove old#1510
jokob-sk merged 3 commits intonetalertx:mainfrom
adamoutler:proxy-docs

Conversation

@adamoutler
Copy link
Member

@adamoutler adamoutler commented Feb 12, 2026

📌 Description

Replaced the old multi-page reverse-proxy guides with a single, concise REVERSE_PROXY.md


🔍 Related Issues

Relates to #1469 #1496 #1450 #1440 #1403 #1394 #1468


📋 Type of Change

  • 🐛 Bug fix
  • ✨ New feature
  • ♻️ Code refactor
  • 📚 Documentation update
  • 🧪 Test addition or change
  • 🔧 Build/config update
  • 🚀 Performance improvement
  • 🔨 CI/CD or automation
  • 🧹 Cleanup / chore

📷 Screenshots or Logs (if applicable)

Kept BACKEND_API_URL.png and nginx_proxy_manager_npm.png. Removed legacy Authentik/flow images.


🧪 Testing Steps

  • Built docs locally: mkdocs build --strict (no broken links).
  • Grep for removed filenames to confirm no remaining references.
  • Manual proofread of REVERSE_PROXY.md and UI text changes.

✅ Checklist

  • I have read the Contribution Guidelines
  • I have tested my changes locally
  • I have updated relevant documentation (if applicable)
  • I have verified my changes do not break existing behavior
  • I am willing to respond to requested changes and feedback

🙋 Additional Notes

I kept it brief and removed all the clutter, offloading support to where it belongs.

Summary by CodeRabbit

  • Documentation
    • Streamlined reverse-proxy docs into a Getting Started guide with diagrams and port guidance.
    • Removed detailed provider-specific guides for Caddy and Traefik and deleted an outdated diagram.
    • Simplified Backend API URL guidance and example text in the frontend language content.
    • Collapsed reverse-proxy navigation into a single entry and updated a link label for clarity.
    • Removed a Backend API URL subsection from a skills/settings document.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 12, 2026

📝 Walkthrough

Walkthrough

Refactors reverse-proxy documentation into an Nginx Proxy Manager–focused Getting Started guide, removes Caddy/Traefik guides and a draw.io diagram, updates frontend BACKEND_API_URL help text, and adjusts docs navigation and a SKILL.md subsection. No runtime code changes.

Changes

Cohort / File(s) Summary
Main Reverse Proxy Guide
docs/REVERSE_PROXY.md
Rewrote a multi-provider, step-by-step guide into a condensed Getting Started guide focused on Nginx Proxy Manager; added port/connection reference and Mermaid diagrams; removed extensive platform-specific examples.
Removed Platform Guides & Diagram
docs/REVERSE_PROXY_CADDY.md, docs/REVERSE_PROXY_TRAEFIK.md, docs/img/REVERSE_PROXY/reverse_proxy_flow.drawio
Deleted Caddy and Traefik community guides and the draw.io architecture diagram — documentation-only removals.
Docs Navigation & Metadata
mkdocs.yml, docs/README.md
Collapsed nested reverse-proxy nav entries into a single REVERSE_PROXY.md entry; changed a README link label from “Reverse proxy (Nginx, Apache, SWAG)” to “Reverse Proxy”.
Repo Skill Doc
.github/skills/settings-management/SKILL.md
Removed the Backend API URL subsection and Codespaces example from the SKILL.md document.
Frontend Language
front/php/templates/language/en_us.json
Simplified BACKEND_API_URL_description to state frontend-backend communication defaults to /server and generally should not be changed (text-only).

Poem

🐰
I hopped through pages, nibbling moss and hay,
Tidied paths where proxies used to play.
Caddy, Traefik, their maps put away,
/server hums where front and back now stay.
A cozy warren — neat for every day.

🚥 Pre-merge checks | ✅ 3 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Merge Conflict Detection ⚠️ Warning ❌ Merge conflicts detected (82 files):

⚔️ .github/skills/code-standards/SKILL.md (content)
⚔️ .github/skills/settings-management/SKILL.md (content)
⚔️ .github/workflows/run-all-tests.yml (content)
⚔️ .gitignore (content)
⚔️ docs/README.md (content)
⚔️ docs/REVERSE_PROXY.md (content)
⚔️ front/deviceDetailsEvents.php (content)
⚔️ front/js/common.js (content)
⚔️ front/network.php (content)
⚔️ front/php/templates/language/en_us.json (content)
⚔️ front/php/templates/language/fr_fr.json (content)
⚔️ front/php/templates/language/it_it.json (content)
⚔️ front/php/templates/language/lang.php (content)
⚔️ front/php/templates/language/merge_translations.py (content)
⚔️ front/php/templates/language/ru_ru.json (content)
⚔️ front/php/templates/language/uk_ua.json (content)
⚔️ front/php/templates/language/zh_cn.json (content)
⚔️ front/plugins/_publisher_apprise/apprise.py (content)
⚔️ front/plugins/_publisher_email/email_smtp.py (content)
⚔️ front/plugins/_publisher_mqtt/mqtt.py (content)
⚔️ front/plugins/_publisher_ntfy/ntfy.py (content)
⚔️ front/plugins/_publisher_pushover/pushover.py (content)
⚔️ front/plugins/_publisher_pushsafer/pushsafer.py (content)
⚔️ front/plugins/_publisher_telegram/tg.py (content)
⚔️ front/plugins/_publisher_webhook/webhook.py (content)
⚔️ front/plugins/csv_backup/script.py (content)
⚔️ front/plugins/freebox/freebox.py (content)
⚔️ front/plugins/internet_ip/script.py (content)
⚔️ front/plugins/internet_speedtest/script.py (content)
⚔️ front/plugins/ipneigh/ipneigh.py (content)
⚔️ front/plugins/luci_import/config.json (content)
⚔️ front/plugins/nmap_scan/script.py (content)
⚔️ front/plugins/pihole_api_scan/pihole_api_scan.py (content)
⚔️ front/plugins/plugin_helper.py (content)
⚔️ front/plugins/sync/sync.py (content)
⚔️ front/plugins/vendor_update/script.py (content)
⚔️ install/production-filesystem/entrypoint.d/25-first-run-db.sh (content)
⚔️ install/production-filesystem/services/config/nginx/netalertx.conf.template (content)
⚔️ mkdocs.yml (content)
⚔️ scripts/db_cleanup/regenerate-database.sh (content)
⚔️ server/__main__.py (content)
⚔️ server/api.py (content)
⚔️ server/api_server/graphql_endpoint.py (content)
⚔️ server/api_server/openapi/schemas.py (content)
⚔️ server/api_server/sessions_endpoint.py (content)
⚔️ server/api_server/sync_endpoint.py (content)
⚔️ server/app_state.py (content)
⚔️ server/const.py (content)
⚔️ server/database.py (content)
⚔️ server/db/authoritative_handler.py (content)
⚔️ server/db/db_helper.py (content)
⚔️ server/db/db_upgrade.py (content)
⚔️ server/initialise.py (content)
⚔️ server/logger.py (content)
⚔️ server/messaging/in_app.py (content)
⚔️ server/models/device_instance.py (content)
⚔️ server/models/event_instance.py (content)
⚔️ server/models/notification_instance.py (content)
⚔️ server/models/plugin_object_instance.py (content)
⚔️ server/models/user_events_queue_instance.py (content)
⚔️ server/plugin.py (content)
⚔️ server/scan/device_handling.py (content)
⚔️ server/scan/session_events.py (content)
⚔️ server/scheduler.py (content)
⚔️ server/utils/datetime_utils.py (content)
⚔️ test/api_endpoints/test_dbquery_endpoints.py (content)
⚔️ test/api_endpoints/test_device_endpoints.py (content)
⚔️ test/api_endpoints/test_devices_endpoints.py (content)
⚔️ test/api_endpoints/test_events_endpoints.py (content)
⚔️ test/api_endpoints/test_graphq_endpoints.py (content)
⚔️ test/api_endpoints/test_history_endpoints.py (content)
⚔️ test/api_endpoints/test_mcp_extended_endpoints.py (content)
⚔️ test/api_endpoints/test_mcp_tools_endpoints.py (content)
⚔️ test/api_endpoints/test_nettools_endpoints.py (content)
⚔️ test/api_endpoints/test_sessions_endpoints.py (content)
⚔️ test/api_endpoints/test_settings_endpoints.py (content)
⚔️ test/scan/test_device_field_lock.py (content)
⚔️ test/scan/test_field_lock_scan_integration.py (content)
⚔️ test/scan/test_ip_format_and_locking.py (content)
⚔️ test/scan/test_ip_update_logic.py (content)
⚔️ test/server/test_graphql_endpoints.py (content)
⚔️ test/test_plugin_helper.py (content)

These conflicts must be resolved before merging into main.
Resolve conflicts locally and push changes to this branch.
✅ 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 describes the main change: consolidating multi-page reverse proxy guides into a single REVERSE_PROXY.md file and removing legacy documentation.
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
  • Post copyable unit tests in a comment
⚔️ Resolve merge conflicts (beta)
  • Auto-commit resolved conflicts to branch proxy-docs
  • Post resolved changes as copyable diffs in a comment

No actionable comments were generated in the recent review. 🎉

🧹 Recent nitpick comments
docs/REVERSE_PROXY.md (2)

28-28: Minor terminology inconsistency.

Line 28 says "accessible on 20212" but should say "port 20212" for consistency with the rest of the document (e.g., lines 19-20, 94-95).

📝 Suggested fix
-For local testing or LAN access. The browser accesses the UI on port 20211. Code and API docs are accessible on 20212.
+For local testing or LAN access. The browser accesses the UI on port 20211. Code and API docs are accessible on port 20212.

103-104: Consider clarifying the /server usage to avoid confusion with the warning on line 23.

While technically correct, readers might be confused seeing /server recommended here after the warning on line 23 that says "Do not document or use /server as an external API endpoint."

The distinction is that line 103 refers to the internal frontend-to-backend communication path, while line 23 warns against exposing it externally. Consider adding a brief note to make this distinction explicit.

📝 Suggested clarification
-1. **BACKEND_API_URL**: This should be set to `/server`.
-   * *Reason:* The frontend should communicate with the backend via the internal Nginx proxy rather than routing out to the internet and back.
+1. **BACKEND_API_URL**: This should be set to `/server` (note: this is for internal container communication, not external access—see the warning in the NetAlertX Ports section).
+   * *Reason:* The frontend should communicate with the backend via the internal Nginx proxy rather than routing out to the internet and back.

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.

Copy link
Contributor

@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

🤖 Fix all issues with AI agents
In @.github/skills/settings-management/SKILL.md:
- Around line 43-46: The instruction text and example disagree: the line
instructs "set BACKEND_API_URL to your Codespace URL" but the example value is
"/server"; update the doc so they match by replacing the example `/server` with
a Codespaces URL placeholder (e.g. https://<your-codespace>.githubpreview.dev)
or alternatively change the sentence to say "set BACKEND_API_URL to your backend
path (e.g. /server)"; modify the SKILL.md lines referencing BACKEND_API_URL and
the example value so the wording and example are consistent.

Copy link
Contributor

@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

🤖 Fix all issues with AI agents
In `@docs/REVERSE_PROXY.md`:
- Around line 74-76: The sentence in the "Why is this important?" paragraph
ambiguously attaches "which is a safer, and password-protectable interface" to
the backend; rewrite the sentence that mentions the backend API (`:20212`) and
the Web UI so it clearly contrasts them (backend is powerful, Web UI is safer
and password-protectable). Locate the paragraph containing "`The backend API
(`:20212`) is powerful.`" and rephrase it (for example: "The backend API
(`:20212`) is powerful—more so than the Web UI, which is a safer,
password-protectable interface. By using a reverse proxy to **limit sources**…")
so the modifier unambiguously applies to the Web UI.

Removed section about Backend API URL configuration.
Clarified the importance of using a reverse proxy for securing API access.
@jokob-sk jokob-sk merged commit eb35e80 into netalertx:main Feb 12, 2026
5 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