Byparr/README.md

73 lines
3.6 KiB
Markdown
Raw Permalink Normal View History

2024-07-25 00:52:06 +00:00
# Byparr
An alternative to [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr) as a drop-in replacement, built with [seleniumbase](https://seleniumbase.io/) and [FastAPI](https://fastapi.tiangolo.com).
2024-07-25 00:52:06 +00:00
2024-12-13 22:38:47 +00:00
> [!IMPORTANT]
2024-11-26 17:56:10 +00:00
> Due to recent challenge changes, this software does not guarantee that the Cloudflare challenge will be bypassed. Cloudflare likely requires valid network traffic originating from the users public IP address to mark a connection as legitimate. While this tool may bypass the initial browser check, it does not ensure that requests will consistently pass Cloudflare's validation. More testing and data are required to understand how Cloudflare identifies connections and requests as valid. Invalid requests will result in Byparr's looping and eventually time-outing.
2024-12-13 22:38:47 +00:00
> [!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](https://github.com/ThePhaseless/Byparr/issues/22) and [#3](https://github.com/ThePhaseless/Byparr/issues/3)
2024-07-25 01:02:04 +00:00
> [!NOTE]
> Thanks to FastAPI implementation, now you can also see the API documentation at `/docs` or `/` (redirect to `/docs`) endpoints.
2024-07-25 00:52:06 +00:00
## 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](https://docs.astral.sh/uv/getting-started/installation/)
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
2024-07-25 01:02:04 +00:00
2024-12-18 13:29:00 +00:00
## Options
| Env | Default | Description |
| -------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `USE_XVFB` | `SeleniumBase default` | Use virtual desktop with Xvfb. (Linux only) (Can cause performance hog [#14](https://github.com/ThePhaseless/Byparr/issues/14)) |
| `USE_HEADLESS` | `SeleniumBase default` | Use headless chromium. |
| `PROXY` | None | Proxy to use. (format: `username:password@host:port`) |
2024-12-18 13:29:00 +00:00
## Tags
- `v*.*.*`/`latest` - Releases considered stable
- `main` - Latest release from main branch (untested)
2024-07-25 01:02:04 +00:00
## Usage
### Docker Compose
2024-12-18 13:29:00 +00:00
See `compose.yaml`
2024-07-25 01:02:04 +00:00
2024-12-10 22:48:35 +00:00
### Docker
```bash
docker run -p 8191:8191 ghcr.io/thephaseless/byparr:latest
```
### Local
```bash
uv sync && ./cmd.sh
```
2024-07-25 01:03:12 +00:00
## Need help with / TODO
2024-07-25 01:02:04 +00:00
2024-12-02 10:29:13 +01:00
- [x] Slimming container (only ~650 MB now!)
2024-11-26 17:56:10 +00:00
- [x] Add more anti-bot challenges
2024-12-10 22:48:35 +00:00
- [x] Add doc strings
2024-11-26 17:56:10 +00:00
- [x] Implement versioning
- [x] Proxy support
2024-11-26 17:56:10 +00:00
- [x] Add more architectures support