# How to Set Up and Configure a Mysterium Node with Payment in InternetIncome

> Easily set up and configure your Mysterium node with payment in InternetIncome. Follow simple steps to enable Mysterium, start the script, and complete your payment.

- Repository: [engageub/internetincome](https://github.com/engageub/internetincome)
- Tags: how-to-guide
- Published: 2026-03-01

---

**To set up a Mysterium node with payment in InternetIncome, enable `MYSTERIUM=true` in [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf), execute `internetIncome.sh --start`, and complete the one-time payment via the URL saved to [`mysterium.txt`](https://github.com/engageub/internetincome/blob/main/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:

```bash
sudo apt-get update && sudo apt-get -y install docker.io

```

Clone the InternetIncome repository to access the orchestration scripts and configuration files:

```bash
git clone https://github.com/engageub/InternetIncome.git
cd InternetIncome

```

## Enabling Mysterium in the Configuration

The orchestration script checks [`properties.conf`](https://github.com/engageub/internetincome/blob/main/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`](https://github.com/engageub/internetincome/blob/main/properties.conf) and locate the configuration block at lines 81-84:

```bash

# In properties.conf

MYSTERIUM=true

```

Alternatively, use `sed` to enable it programmatically:

```bash
sed -i 's/^MYSTERIUM=.*/MYSTERIUM=true/' properties.conf

```

When `MYSTERIUM=true`, the script in [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/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.

```bash
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`](https://github.com/engageub/internetincome/blob/main/internetIncome.sh) at lines 68-76 to prevent binding conflicts when running multiple services.

**Container Initialization:** At lines 75-89 of [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/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>` with `chmod 777` permissions 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:
1. Prints the URL to the console
2. Appends the URL to [`mysterium.txt`](https://github.com/engageub/internetincome/blob/main/mysterium.txt) in 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:

```bash
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:**

```bash
sudo bash internetIncome.sh --delete

```

**To remove persisted data (including node identity):**

```bash
sudo bash internetIncome.sh --deleteBackup

```

## Summary

- **Enable the service** by setting `MYSTERIUM=true` in [`properties.conf`](https://github.com/engageub/internetincome/blob/main/properties.conf) before starting the script.
- **Port handling** is automatic via `check_open_ports` in [`internetIncome.sh`](https://github.com/engageub/internetincome/blob/main/internetIncome.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.txt`](https://github.com/engageub/internetincome/blob/main/mysterium.txt) to activate earning.
- **Container capabilities** require `NET_ADMIN` to 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`](https://github.com/engageub/internetincome/blob/main/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`](https://github.com/engageub/internetincome/blob/main/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`](https://github.com/engageub/internetincome/blob/main/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`](https://github.com/engageub/internetincome/blob/main/mysterium.txt) with a unique URL for payment and management.