mirror of
https://github.com/FlareSolverr/FlareSolverr.git
synced 2025-12-05 17:18:19 +01:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e518d7267 | ||
|
|
3005ba3629 | ||
|
|
176c69d1e8 | ||
|
|
7a1cf7dd80 | ||
|
|
456dfc222e | ||
|
|
23fde49f2b |
@@ -5,9 +5,9 @@ ARG TARGETPLATFORM
|
||||
ARG BUILDPLATFORM
|
||||
RUN printf "I am running on ${BUILDPLATFORM:-linux/amd64}, building for ${TARGETPLATFORM:-linux/amd64}\n$(uname -a)\n"
|
||||
|
||||
# Install the web browser (package firefox is available too)
|
||||
# Install the web browser (package firefox-esr is available too)
|
||||
RUN apk update && \
|
||||
apk add --no-cache firefox-esr dumb-init && \
|
||||
apk add --no-cache firefox dumb-init && \
|
||||
rm -Rf /var/cache
|
||||
|
||||
# Copy FlareSolverr code
|
||||
@@ -28,7 +28,7 @@ RUN npm install && \
|
||||
|
||||
EXPOSE 8191
|
||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||
CMD ["npm", "start"]
|
||||
CMD ["node", "./dist/server.js"]
|
||||
|
||||
# docker build -t flaresolverr:custom .
|
||||
# docker run -p 8191:8191 -e LOG_LEVEL=debug flaresolverr:custom
|
||||
|
||||
@@ -221,6 +221,7 @@ LOG_HTML | false | Only for debugging. If `true` all HTML that passes through th
|
||||
CAPTCHA_SOLVER | none | Captcha solving method. It is used when a captcha is encountered. See the Captcha Solvers section.
|
||||
TZ | UTC | Timezone used in the logs and the web browser. Example: `TZ=Europe/London`.
|
||||
HEADLESS | true | Only for debugging. To run the web browser in headless mode or visible.
|
||||
BROWSER_TIMEOUT | 30000 | If you are experiencing errors/timeouts because your system is slow, you can try to increase this value. Remember to increase the `maxTimeout` parameter too.
|
||||
PORT | 8191 | Listening port. You don't need to change this if you are running on Docker.
|
||||
HOST | 0.0.0.0 | Listening interface. You don't need to change this if you are running on Docker.
|
||||
|
||||
|
||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "flaresolverr",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.2",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "flaresolverr",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.2",
|
||||
"description": "Proxy server to bypass Cloudflare protection.",
|
||||
"scripts": {
|
||||
"start": "node ./dist/server.js",
|
||||
|
||||
@@ -46,4 +46,13 @@ testWebBrowserInstallation().then(() => {
|
||||
app.listen(serverPort, serverHost, () => {
|
||||
log.info(`Listening on http://${serverHost}:${serverPort}`);
|
||||
})
|
||||
}).catch(function(e) {
|
||||
log.error(e);
|
||||
const msg: string = "" + e;
|
||||
if (msg.includes('while trying to connect to the browser!')) {
|
||||
log.error(`It seems that the system is too slow to run FlareSolverr.
|
||||
If you are running with Docker, try to remove CPU limits in the container.
|
||||
If not, try setting the 'BROWSER_TIMEOUT' environment variable and the 'maxTimeout' parameter to higher values.`);
|
||||
}
|
||||
process.exit(1);
|
||||
})
|
||||
|
||||
@@ -47,12 +47,15 @@ function buildExtraPrefsFirefox(proxy: Proxy): object {
|
||||
"startup.homepage_welcome_url.additional": "",
|
||||
|
||||
// Disable images to speed up load
|
||||
"permissions.default.image": 2
|
||||
"permissions.default.image": 2,
|
||||
|
||||
// Limit content processes to 1
|
||||
"dom.ipc.processCount": 1
|
||||
}
|
||||
|
||||
// proxy.url format => http://<host>:<port>
|
||||
if (proxy && proxy.url) {
|
||||
const [host, portStr] = proxy.url.replace(/https?:\/\//g, '').split(':');
|
||||
const [host, portStr] = proxy.url.replace(/.+:\/\//g, '').split(':');
|
||||
const port = parseInt(portStr);
|
||||
|
||||
const proxyPrefs = {
|
||||
@@ -64,6 +67,7 @@ function buildExtraPrefsFirefox(proxy: Proxy): object {
|
||||
"network.proxy.share_proxy_settings": true,
|
||||
"network.proxy.socks": host,
|
||||
"network.proxy.socks_port": port,
|
||||
"network.proxy.socks_remote_dns": true,
|
||||
"network.proxy.ssl": host,
|
||||
"network.proxy.ssl_port": port,
|
||||
"network.proxy.type": 1
|
||||
@@ -116,6 +120,7 @@ export async function create(session: string, options: SessionCreateOptions): Pr
|
||||
const puppeteerOptions: any = {
|
||||
product: 'firefox',
|
||||
headless: process.env.HEADLESS !== 'false',
|
||||
timeout: process.env.BROWSER_TIMEOUT || 30000
|
||||
}
|
||||
|
||||
puppeteerOptions.extraPrefsFirefox = buildExtraPrefsFirefox(options.proxy)
|
||||
|
||||
Reference in New Issue
Block a user