How to Set Up and Configure a Mysterium Node with Payment in InternetIncome
To set up a Mysterium node with payment in InternetIncome, enable MYSTERIUM=true in properties.conf, execute internetIncome.sh --start, and complete the one-time payment via the URL saved to mysterium.txt.
InternetIncome is a Bash-driven Docker orchestration framework that automates bandwidth-sharing services, including Mysterium nodes. Setting up and configuring a Mysterium node with payment in InternetIncome requires enabling the service flag, launching the container, and manually completing the registration payment through the generated node URL. This guide walks through the exact implementation details found in the engageub/internetincome repository.
Prerequisites
Before starting, ensure Docker is installed on your host system. InternetIncome relies on Docker to pull and run the official mysteriumnetwork/myst:latest image. Install Docker using your platform's package manager, for example:
sudo apt-get update && sudo apt-get -y install docker.io
Clone the InternetIncome repository to access the orchestration scripts and configuration files:
git clone https://github.com/engageub/InternetIncome.git
cd InternetIncome
Enabling Mysterium in the Configuration
The orchestration script checks properties.conf to determine which services to launch. To activate the Mysterium node workflow, you must set the MYSTERIUM flag to true.
Open properties.conf and locate the configuration block at lines 81-84:
# In properties.conf
MYSTERIUM=true
Alternatively, use sed to enable it programmatically:
sed -i 's/^MYSTERIUM=.*/MYSTERIUM=true/' properties.conf
When MYSTERIUM=true, the script in internetIncome.sh executes the container initialization logic during the startup phase.
Starting the Mysterium Node Container
Launch the node by running the main script with the --start flag. The script performs automatic port detection, creates persistent storage, and configures the container with elevated networking capabilities.
sudo bash internetIncome.sh --start
Port Assignment Logic: The script calls check_open_ports starting from the default value of 2000 (configurable via mysterium_first_port) to find an available host port. This logic appears in internetIncome.sh at lines 68-76 to prevent binding conflicts when running multiple services.
Container Initialization: At lines 75-89 of internetIncome.sh, the script executes the Docker run command with the following specifications:
- Image:
mysteriumnetwork/myst:latest - Capabilities:
--cap-add=NET_ADMIN(required for VPN/tunneling functionality) - Volumes: Mounts a local data directory
mysterium-data/node<i>withchmod 777permissions for state persistence - Port Mapping: Binds the discovered free port to the container's internal service port
The script creates a dedicated data folder for each node instance, ensuring that identity and configuration survive container restarts.
Completing the Payment Registration
Mysterium requires a one-time payment to activate the node and associate it with your account. InternetIncome automates the container deployment but requires manual completion of the payment step.
After the container starts, the script extracts the node URL and performs two actions:
- Prints the URL to the console
- Appends the URL to
mysterium.txtin the repository root
Open the displayed URL (typically http://127.0.0.1:2000 or the dynamically assigned port) in a web browser. Log in to your Mysterium account and complete the on-screen payment flow. Once the payment is confirmed, the node registers with the network and immediately begins earning income for the associated account.
Note: The node will not generate revenue until this payment step is completed, regardless of how long the container has been running.
Verification and Management
Verify that the node is active by checking the generated URL file:
cat mysterium.txt
You should see entries resembling http://127.0.0.1:2000 for each running instance. Access the Mysterium dashboard through this URL to confirm "Running" status and view bandwidth statistics.
To stop the node:
sudo bash internetIncome.sh --delete
To remove persisted data (including node identity):
sudo bash internetIncome.sh --deleteBackup
Summary
- Enable the service by setting
MYSTERIUM=trueinproperties.confbefore starting the script. - Port handling is automatic via
check_open_portsininternetIncome.sh, defaulting to port 2000 but adaptable to any free port. - Data persistence uses local directories
mysterium-data/node<i>with broad permissions to allow container write access. - Payment is mandatory and manual—visit the URL printed to console and saved in
mysterium.txtto activate earning. - Container capabilities require
NET_ADMINto function correctly as a bandwidth-sharing node.
Frequently Asked Questions
How do I change the default port for the Mysterium node?
Edit the mysterium_first_port variable inside internetIncome.sh before running the script. The default value is 2000, but the check_open_ports function will automatically increment from your specified starting point until it finds an available port.
Why does my Mysterium node show as offline even though the container is running?
The node requires a one-time payment registration through the web interface before it becomes active. Check mysterium.txt for the node URL, open it in a browser, and complete the payment step. Until this is done, the daemon runs but does not participate in the network.
Where is my Mysterium node data stored?
InternetIncome creates a directory structure under ./mysterium-data/node<i> (where <i> is the instance number) mapped to the container's internal data path. This directory receives chmod 777 permissions during setup to ensure the container can write its state, allowing your node identity to persist across restarts.
Can I run multiple Mysterium nodes simultaneously?
Yes. The script at lines 68-89 in internetIncome.sh is designed to handle multiple instances by iterating through port assignments and creating separate data directories for each node. Each instance will have its own entry in mysterium.txt with a unique URL for payment and management.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →