Skip to content

feat: add WRP (Web Rendering Proxy) LXC script - #2168

Open
N0t4R0b0t wants to merge 3 commits into
community-scripts:mainfrom
N0t4R0b0t:feat/wrp
Open

feat: add WRP (Web Rendering Proxy) LXC script#2168
N0t4R0b0t wants to merge 3 commits into
community-scripts:mainfrom
N0t4R0b0t:feat/wrp

Conversation

@N0t4R0b0t

Copy link
Copy Markdown

✍️ Description

Adds a new LXC script for WRP (Web Rendering Proxy) — a browser-in-browser proxy that drives a headless Chromium and renders pages back as clickable images or simplified HTML, so vintage browsers can reach the modern HTTPS-only web.

Structure follows ct/hister.sh closely, as both are single-binary GitHub-release apps:

  • check_for_gh_release gates the update path.
  • fetch_and_deploy_gh_release ... "singlefile" with an explicit per-architecture asset name.
  • Service config lives in a plain systemd unit; no custom download or version-check logic.

Upstream publishes per-arch static binaries, so the arch case statement maps dpkg --print-architecture onto the exact published asset names (wrp-amd64-linux, wrp-arm64-linux, wrp-arm-linux), and errors out on anything else rather than guessing.

I run this container daily and have exercised both a clean install and an in-place update through update_script.

🔗 Related PR / Issue

Link: #

✅ Prerequisites (X in brackets)

  • Self-review completed – Code follows project standards.
  • Tested thoroughly – Changes work as expected.
  • No breaking changes – Existing functionality remains intact.
  • No security risks – No hardcoded secrets, unnecessary privilege escalations, or permission issues.

🏗️ arm64 Support (X in brackets)

  • arm64 supported - Tested and supported on arm64.
  • arm64 not tested - Assumed to work on arm64, but testing has not been done.
  • arm64 not supported - Confirmed upstream dependencies or binaries do not support arm64.

🛠️ Type of Change (X in brackets)

  • 🐞 Bug fix – Resolves an issue without breaking functionality.
  • New feature – Adds new, non-breaking functionality.
  • 💥 Breaking change – Alters existing functionality in a way that may require updates.
  • 🆕 New script – A fully functional and tested script or script set.
  • 🌍 Website update – Changes to website-related JSON files or metadata.
  • 🔧 Refactoring / Code Cleanup – Improves readability or maintainability without changing functionality.
  • 📝 Documentation update – Changes to README, AppName.md, CONTRIBUTING.md, or other docs.

🔍 Code & Security Review (X in brackets)

  • Follows CODE-AUDIT.md & CONTRIBUTING.md guidelines
  • Uses correct script structure (AppName.sh, AppName-install.sh, AppName.json)
  • No hardcoded credentials
  • No Docker / Docker Compose – The application is installed bare-metal; Docker is not used.
  • No git pull – Updates use fetch_and_deploy_gh_release, fetch_and_deploy_codeberg_release, fetch_and_deploy_gl_release, or fetch_and_deploy_from_url instead of git pull.

🤖 AI Assistance (X in brackets)

  • No AI used – Scripts were written without AI assistance.
  • AI was used – I confirm the scripts were built using AGENTS.md and .github/agents/pve-script-creator.agent.md as guidance, and the output has been reviewed and corrected to match those guidelines.

📋 Additional Information (optional)

A couple of deliberate choices worth calling out:

  • Logo is a placeholder. No dedicated WRP icon exists in the selfhst icon set, so the Chromium icon is used, since WRP is a Chromium-driven proxy. Noted in wrp.json so it is not mistaken for an oversight. Happy to swap it if the org would rather add a proper icon first.
  • Config surface. WRP is configured entirely through ExecStart flags rather than a config file, so config_path points at the systemd unit and a note explains how to add flags (-t, -g, -m, …) and restart.
  • Dependencies are chromium and fonts-liberation only — no core packages re-listed.

📦 Application Requirements (for new scripts)

  • The application is at least 6 months old
  • The application is actively maintained
  • The application has 600+ GitHub stars
  • Official release tarballs are published
  • I understand that not all scripts will be accepted due to various reasons and criteria by the community-scripts ORG

🌐 Source

Upstream: https://github.com/tenox7/wrp
Latest release: https://github.com/tenox7/wrp/releases/latest

N0t4R0b0t and others added 2 commits July 29, 2026 19:47
Browser-in-browser proxy so legacy/vintage browsers can use the modern
HTTPS web. Installed from tenox7/wrp's prebuilt release binaries
(bare-metal, no Go toolchain needed) plus Chromium as the rendering
backend.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Matches the metadata layout used by comparable single-binary scripts
(hister, newt) so the website can surface the config location.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@N0t4R0b0t
N0t4R0b0t requested a review from a team as a code owner August 10, 2026 16:15
Comment thread ct/wrp.sh Outdated
Replaces the manual dpkg --print-architecture case statements in both
the ct and install scripts with core.func's arch_resolve helper.

The armhf branch is dropped: arch_check already exits 106 on anything
that is not amd64 or arm64, so it was unreachable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@N0t4R0b0t
N0t4R0b0t requested a review from CrazyWolf13 August 10, 2026 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants