How the InternetIncome Test Branch Differs from the Main Branch for Advanced Users

The test branch adds support for custom Chrome and Firefox containers that require manual login, enabling services blocked by Docker-in-Docker limitations to run, while the main branch provides a fully automated experience for supported services only.

The engageub/InternetIncome repository offers two primary branches tailored to different technical requirements. While the main branch delivers a plug-and-play automation environment for general users, the test branch introduces specialized capabilities for power users who need to bypass Docker-in-Docker (DIND) restrictions. Understanding how the test branch differs from the main branch helps advanced users select the right foundation for complex automation workflows involving manual authentication.

Browser Container Architecture

The most significant difference between the branches lies in how they handle browser-based automation for specific revenue-generating services.

Main Branch Limitations

The main branch relies on pre-built Docker-in-Docker images that do not support Adnade and Ebesucher. When these services are detected, the script aborts immediately with a red warning message. According to the source code in internetIncome.sh at lines 312–441, the script explicitly blocks these services with the error: "Adnade and Ebesucher are not supported now in Docker-in-Docker. Please use custom chrome or custom firefox in test branch and login manually."

Test Branch Capabilities

The test branch provides custom Chromium and Firefox containers that run outside the DIND environment. These containers allow you to:

  • Launch browser instances with persistent profile directories
  • Connect via VNC or attach directly to complete manual login flows
  • Continue the automation workflow after providing credentials interactively

This architectural change enables the script to handle services that require browser extensions, CAPTCHA solving, or session cookies that cannot be generated in headless DIND mode.

Authentication Workflows

The branches diverge fundamentally in their approach to user authentication.

Main branch workflow: Fully automated. The script pulls the generic lscr.io/linuxserver/chromium image but cannot execute it properly within DIND for Adnade/Ebesucher, resulting in immediate termination.

Test branch workflow: Semi-automated with manual checkpoints. After starting the custom browser container, you must manually navigate to the service login page, enter credentials, and complete any two-factor authentication before the automation script can proceed with traffic generation.

Target Audience and Stability

As noted in README.md at line 10, the test branch is explicitly recommended for advanced users who need extra flexibility and are comfortable handling manual configuration steps. The main branch targets general users seeking stable, hands-off operation for the supported application stack.

The test branch functions as an experimental feature set useful for testing new services, debugging login flows, or running revenue apps that employ aggressive bot detection requiring genuine browser fingerprints.

Setting Up the Test Branch Environment

To leverage the custom browser capabilities, clone the test branch directly instead of the default main branch.

Cloning the Test Branch

git clone -b test https://github.com/engageub/InternetIncome.git
cd InternetIncome

Running Custom Chrome for Manual Login

The test branch utilizes custom Chromium images configured for interactive use. Pull and start the container with persistent storage for your browser profile:


# Pull the custom Chromium image

sudo docker pull lscr.io/linuxserver/chromium:latest

# Start with profile persistence and authentication enabled

sudo docker run -d \
    --name custom-chrome \
    --shm-size="1gb" \
    -e TZ=Etc/UTC \
    -e CUSTOM_USER="internetincome" \
    -e PASSWORD="internetincome" \
    -v "$PWD/chrome_data_folder/data0/chrome_profile_data:/config" \
    lscr.io/linuxserver/chromium:latest

After the container initializes, open a VNC session to localhost:5900 (or use docker attach) to log in manually to Adnade or Ebesucher. Once authenticated, return to the terminal to start the automation script.

Configuring the Automation Script

Before launching the main orchestration script, edit the configuration file to include your proxy settings and service credentials:

vi properties.conf

Then start the automation using the test branch configuration:

sudo bash internetIncome.sh --start

Summary

  • The test branch provides custom Chrome and Firefox containers that operate outside Docker-in-Docker mode, enabling manual login for Adnade and Ebesucher services.
  • The main branch aborts execution when encountering these services, as implemented in internetIncome.sh:312-441, directing users to the test branch instead.
  • Advanced users should select the test branch when they need to bypass DIND limitations and can handle interactive authentication steps.
  • Configuration requires cloning with -b test, setting up custom browser containers with profile persistence, and completing manual logins before automation proceeds.

Frequently Asked Questions

What specific services require the test branch in InternetIncome?

Adnade and Ebesucher require the test branch because they cannot run within the Docker-in-Docker environment used by the main branch. These services need custom browser containers that support manual login workflows and persistent session data outside the isolated DIND context.

How do I switch from the main branch to the test branch without losing my configuration?

First, back up your existing properties.conf file. Then remove the current repository clone and re-clone specifically from the test branch using git clone -b test https://github.com/engageub/InternetIncome.git. Restore your backed-up configuration file to the new directory, as both branches use the same properties.conf structure for credentials and proxy settings.

Where is the logic that blocks unsupported services on the main branch?

The blocking logic resides in internetIncome.sh between lines 312 and 441. This section contains the conditional check that detects Adnade or Ebesucher configurations and outputs the fatal error message directing users to switch to the test branch for custom browser support.

Is the test branch stable enough for daily automation use?

The test branch is stable for automation once the initial manual login phase is complete, but it requires more hands-on maintenance than the main branch. You must monitor container health for the custom browsers and re-authenticate when sessions expire, whereas the main branch offers fully unattended operation for supported services only.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →