Files
Byparr/README.md
T
ThePhaselessandClaude c45a464462 Add Building Feature (#276)
* feat: Build Docker images for PRs with branch name labels

- Remove condition preventing PR builds
- Add branch name extraction and sanitization
- Add branch labels to Docker images (org.opencontainers.image.branch and branch)
- Enable pushing of PR Docker images
- Sanitize branch names for Docker tags (replace / with -)

This allows PR images to be built and tagged with their branch names,
making it easier to test specific PR builds.

* feat: Add path filters to Docker workflow

Only build Docker images when relevant files change:
- Source code (src/**, main.py, tests/**)
- Docker configuration (Dockerfile, compose.yaml)
- Dependencies (pyproject.toml, uv.lock)
- Workflow file itself

This prevents unnecessary builds when only documentation or
other non-functional files are changed.

* feat: Add automatic cleanup of PR Docker images

Create a new workflow that automatically deletes Docker images
when a PR is closed or merged. This prevents accumulation of
old PR images in the container registry.

Features:
- Triggers on PR close/merge events
- Deletes images tagged with PR number and SHA
- Handles both architecture variants (amd64, arm64)
- Supports both organization and user repositories
- Provides detailed logging of cleanup operations

* refactor: Remove redundant branch label preparation

Remove duplicate branch name preparation step in merge-and-push job.
Branch labels are already added during the build step, so no need
to add them again when creating the manifest.

* refactor: Remove redundant label configurations

Remove custom label configurations from docker-publish workflow.
The docker/metadata-action already sets standard OCI labels by
default, so explicit label configuration is unnecessary.

Also removed unused BRANCH_TAG variable preparation.

* refactor: Use PR number for Docker image tags instead of SHA

Changed Docker image tagging strategy for pull requests:
- Use pr-{number}-{arch} for individual platform builds
- Use pr-{number} for final manifest
- Non-PR builds still use SHA-based tags

Benefits:
- Simpler, more readable tags for PRs
- Easier to identify which PR an image belongs to
- Cleanup script simplified to match only PR number tags

Updated cleanup workflow to match new tag pattern.

* docs: Add PR Docker image tags to README

Document the pr-{number} tag pattern used for pull request images.
These images are automatically built for PRs and cleaned up when
the PR is closed.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-20 01:25:00 +01:00

4.8 KiB
Raw Blame History

Byparr

Built with camoufox and FastAPI, this project aims to mimic FlareSolverr's API and functionality of providing you with http cookies and headers for websites protected with anti-bot protections.

Important

This software does not guarantee (only greatly increases the chance) that any challenge will be bypassed. While this tool passes the initial browser check, Cloudflare and other captcha providers likely require valid network traffic originating from the user’s public IP address to mark a connection as legitimate. If any website does not pass the challenge, please run troubleshooting steps and check if other websites work before you create an GitHub issue.

Important

Support for NAS devices (like Synology) is minimal. Please report issues, but do not expect it to be fixed quickly. The only ARM device I have is a free Ampere Oracle VM, so I can only test ARM support on that. See #22 and #3

Note

Thanks to FastAPI implementation, now you can also see the API documentation at /docs or / (redirect to /docs) endpoints.

Troubleshooting

Docker

  1. Clone repo to the host that has issues with Byparr.
  2. Run docker build --target test .
  3. Depending of the build success:
    1. If run successfully, try updating container or if already on newest stable release create an issue for creating new release with new dependencies
    2. If build fails, try troubleshooting on another host/using other method

Local

  1. Download uv
  2. Download dependencies using uv sync --group test
  3. Run tests with uv run pytest --retries 3 (You can add -n auto for parallelization)
  4. If you see any F character in terminal, that means test failed even after retries.
  5. Depending of the test success:
    1. If run successfully, try updating container or if already on newest stable release create an issue for creating new release with new dependencies
    2. If test fails, try troubleshooting on another host/using other method

Options

Environment Variable Default Description
HOST 0.0.0.0 Host address to bind the server to. Use 0.0.0.0 to bind to all IPv4 interfaces, :: for all IPv6 interfaces, or 127.0.0.1/localhost for local access only.
PORT 8191 Port to bind the server to.
PROXY_SERVER None Proxy to use in format: protocol://host:port.
PROXY_USERNAME None Username for proxy authentication.
PROXY_PASSWORD None Password for proxy authentication.

Proxy Recommendation

Recently I've partnered with a new in town proxy service - ProxyBase - to offer affordable proxy services that seems to work seamlessly with Byparr! Using my affiliate code byparr (case sensitive!) when signing up will not only get you access to their cost-effective ($0.69/GB with occasional promotions at the time of writing) proxy network but will also help support the continued development of this project. ProxyBase's proxies can significantly improve your success rate when bypassing anti-bot challenges. Check out ProxyBase and enhance your Byparr experience!

Tags

  • v*.*.*/latest - Releases considered stable
  • main - Latest release from main branch (untested)
  • pr-{number} - Pull request images for testing (automatically cleaned up when PR closes)

Usage

Docker Compose

See compose.yaml

Docker

docker run -p 8191:8191 ghcr.io/thephaseless/byparr:latest

Local

uv sync && uv run main.py

Need help with / TODO

  • Slimming container (only ~1.11 GB now!)
  • Add more anti-bot challenges
  • Add doc strings
  • Implement versioning
  • Proxy support
  • Add more architectures support