Added scripto to copy all scripts to the ~/.local/bin/ folder so the… - #22
Conversation
… can be executed from everywhere.
📝 WalkthroughWalkthroughThe PR adds a script that installs NordVPN utilities as ChangesNordVPN Meshnet utilities
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 8
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@bash/nord/copy_scripts.sh`:
- Line 21: The installer’s nord_reset command still depends on source-relative
logout.sh, login.sh, and connect.sh paths that are unavailable after
installation. Update reset.sh to invoke the installed nord_logout, nord_login,
and nord_connect commands, or resolve them from the installed script directory,
while preserving reset behavior when run outside the source directory.
- Around line 15-23: Make the global-command installation self-contained: in
bash/nord/copy_scripts.sh lines 15-23, create "$HOME/.local/bin" before copying
and enable fail-fast behavior for copy errors; in lines 8-10 of the same file,
replace the malformed PATH instruction with a portable $HOME-based command; in
bash/nord/README.md lines 7-14, document these prerequisites and instruct users
to source the shell configuration only after PATH setup.
- Line 15: Update copy_scripts.sh to also copy peers.json into ~/.local/bin
alongside nord_config, matching the installed script directory resolved by
nord_config’s PEERS_FILE.
In `@bash/nord/README.md`:
- Around line 16-23: Reformat the command list in the README so the introductory
paragraph, “Available Commands” heading, table header, delimiter row, and each
command row are separated by newlines. Preserve all existing command mappings
and descriptions while ensuring the table renders as valid Markdown.
- Line 9: Clean up the README by removing the unrelated draft text, numbering
artifacts, and leftover update prompt; format the nord_exit_node mesh-raspberry
command as a code block, restore the Connect to Peer heading, and consistently
replace RaspberryPi with Raspberry Pi in the setup examples.
- Around line 40-41: Update the Raspberry Pi exit-node description to state that
LAN access requires the relevant permissions and peer entries in
allowed_for_routing and allowed_for_local; clarify that the provided peers.json
allowlist currently grants local access only to mesh-dell and mesh-hp rather
than implying access is automatic.
- Line 42: Update the README note about routing streaming traffic through a
remote Raspberry Pi so it no longer states that the Pi must run a DNS server.
Explain that using the Pi’s DNS requires configuring custom DNS in the NordVPN
app with the Pi’s Meshnet IP; otherwise, describe the DNS server as optional.
- Line 20: Update the command invoked by list_peers.sh to use the documented
nordvpn meshnet peer list namespace instead of nordvpn mesh peer list, while
preserving the existing nord_list_peers wrapper behavior.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: df3cb608-b319-4b1e-bbdc-473fb4cda356
📒 Files selected for processing (2)
bash/nord/README.mdbash/nord/copy_scripts.sh
| # All copied files will have nord_ prepended and the .sh removed in the new | ||
| # filename. | ||
|
|
||
| cp config.sh ~/.local/bin/nord_config |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
rg -n -C 3 'PEERS_FILE|peers\.json' bash/nordRepository: terjeinnerdal/scripts
Length of output: 8594
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- copy_scripts.sh ---'
cat -n bash/nord/copy_scripts.sh
printf '%s\n' '--- peers.json present ---'
ls -l bash/nord/peers.json 2>/dev/null || true
printf '%s\n' '--- deterministic dirname resolution for installed paths ---'
python3 - <<'PY'
from pathlib import Path
for installed in [
Path.home() / ".local" / "bin" / "nord_config",
Path("/usr/local/bin/nord_config"),
Path(".local/bin/nord_config"),
]:
print(f"{installed!s} -> {installed.parent!s}/peers.json -> {(installed.parent / 'peers.json').name}")
PYRepository: terjeinnerdal/scripts
Length of output: 1609
Copy peers.json to the installed script directory.
nord_config resolves PEERS_FILE to {script-dir}/peers.json, but copy_scripts.sh only copies scripts. After installation, ~/.local/bin/nord_config will look for ~/.local/bin/peers.json, which is not copied. Copy peers.json to that directory or define a stable installed config path.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@bash/nord/copy_scripts.sh` at line 15, Update copy_scripts.sh to also copy
peers.json into ~/.local/bin alongside nord_config, matching the installed
script directory resolved by nord_config’s PEERS_FILE.
| cp config.sh ~/.local/bin/nord_config | ||
| cp connect.sh ~/.local/bin/nord_connect | ||
| cp list_peers.sh ~/.local/bin/nord_list_peers | ||
| cp login.sh ~/.local/bin/nord_login | ||
| cp logout.sh ~/.local/bin/nord_logout | ||
| # cp nord_watchdog.sh ~/.local/bin/nord_watchdog | ||
| cp reset.sh ~/.local/bin/nord_reset | ||
| cp set_nickname.sh ~/.local/bin/nord_set_nickname | ||
| cp exit_node.sh ~/.local/bin/nord_exit_node |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Make the global-command installation contract self-contained.
The installer and README currently depend on an existing target directory, a valid PATH entry, and manual shell configuration.
bash/nord/copy_scripts.sh#L15-L23: create"$HOME/.local/bin"and fail fast on copy errors.bash/nord/copy_scripts.sh#L8-L10: replace the malformed PATH instruction with a portable$HOME-based command.bash/nord/README.md#L7-L14: document the same prerequisites and source the shell configuration only after PATH setup.
📍 Affects 2 files
bash/nord/copy_scripts.sh#L15-L23(this comment)bash/nord/copy_scripts.sh#L8-L10bash/nord/README.md#L7-L14
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@bash/nord/copy_scripts.sh` around lines 15 - 23, Make the global-command
installation self-contained: in bash/nord/copy_scripts.sh lines 15-23, create
"$HOME/.local/bin" before copying and enable fail-fast behavior for copy errors;
in lines 8-10 of the same file, replace the malformed PATH instruction with a
portable $HOME-based command; in bash/nord/README.md lines 7-14, document these
prerequisites and instruct users to source the shell configuration only after
PATH setup.
| cp login.sh ~/.local/bin/nord_login | ||
| cp logout.sh ~/.local/bin/nord_logout | ||
| # cp nord_watchdog.sh ~/.local/bin/nord_watchdog | ||
| cp reset.sh ~/.local/bin/nord_reset |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Keep nord_reset functional after renaming the scripts.
bash/nord/reset.sh invokes ./logout.sh, ./login.sh, and ./connect.sh. This installer creates nord_logout, nord_login, and nord_connect instead. When nord_reset runs outside the source directory, those relative paths fail. Update reset.sh to call the installed command names or resolve the installed script directory.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@bash/nord/copy_scripts.sh` at line 21, The installer’s nord_reset command
still depends on source-relative logout.sh, login.sh, and connect.sh paths that
are unavailable after installation. Update reset.sh to invoke the installed
nord_logout, nord_login, and nord_connect commands, or resolve them from the
installed script directory, while preserving reset behavior when run outside the
source directory.
| - status.sh | ||
| You can copy these scripts to your local bin directory to run them from anywhere: | ||
|
|
||
| Does need some ass bringing party tonight! |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Remove draft text and repair the setup examples.
The README contains unrelated draft text, numbering artifacts, and a merged heading. Format nord_exit_node mesh-raspberry as a code block, restore the Connect to Peer heading, change RaspberryPi to Raspberry Pi, and remove the leftover update prompt.
Also applies to: 26-26, 31-32, 38-38, 44-44
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@bash/nord/README.md` at line 9, Clean up the README by removing the unrelated
draft text, numbering artifacts, and leftover update prompt; format the
nord_exit_node mesh-raspberry command as a code block, restore the Connect to
Peer heading, and consistently replace RaspberryPi with Raspberry Pi in the
setup examples.
Source: Linters/SAST tools
| Once installed, all commands are globally available with a `nord_` prefix (e.g. `nord_login`).# Available Commands Local File | Installed Global Command | Description | :--- | :--- | :--- | `login.sh` | `nord_login` | Authenticate with NordVPN | `logout.sh` | `nord_logout` | Log out of NordVPN | | ||
| `config.sh` | `nord_config` | Configure NordVPN routing and settings | | ||
| `connect.sh` | `nord_connect <peer>` | Connect to a Meshnet peer | | ||
| `exit_node.sh` | `nord_exit_node <peer>` | Set a peer as your exit node | | ||
| `list_peers.sh` | `nord_list_peers` | List available Meshnet peers | | ||
| `set_nickname.sh` | `nord_set_nickname` | Set a local nickname for the device | | ||
| `reset.sh` | `nord_reset` | Reset NordVPN settings to defaults | | ||
|
|
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Restore valid Markdown for the command table.
Line 16 joins the paragraph, heading, table header, and rows. The table rows are not separated by newlines. Markdown will not render the command mapping as a table. Add a separate heading, delimiter row, and one row per command.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@bash/nord/README.md` around lines 16 - 23, Reformat the command list in the
README so the introductory paragraph, “Available Commands” heading, table
header, delimiter row, and each command row are separated by newlines. Preserve
all existing command mappings and descriptions while ensuring the table renders
as valid Markdown.
| `config.sh` | `nord_config` | Configure NordVPN routing and settings | | ||
| `connect.sh` | `nord_connect <peer>` | Connect to a Meshnet peer | | ||
| `exit_node.sh` | `nord_exit_node <peer>` | Set a peer as your exit node | | ||
| `list_peers.sh` | `nord_list_peers` | List available Meshnet peers | |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf 'Files matching nord:\n'
git ls-files | grep -E 'bash/nord/(README\.md|list_peers\.sh|config\.sh)$' || true
printf '\nRelevant source snippets:\n'
for f in bash/nord/README.md bash/nord/list_peers.sh bash/nord/config.sh; do
if [ -f "$f" ]; then
echo "--- $f ---"
wc -l "$f"
cat -n "$f"
fi
done
printf '\nSearch for mesh/meshnet commands in repo:\n'
rg -n "nordvpn (mesh|meshnet)|meshnet|mesh peer|peer list|list_peers" bash/nord || true
printf '\nRepo-level package/version hints:\n'
git ls-files | grep -Ei '(^|/)(package(-lock)?\.json|pyproject\.toml|poetry\.lock|requirements.*\.txt|README\.md)$' | xargs -r rg -n -i "nord|meshnet|bash|version" || trueRepository: terjeinnerdal/scripts
Length of output: 16898
🌐 Web query:
nordvpn mesh net peer list nordvpn mesh peer list documentation
💡 Result:
To view your Meshnet peer list on Linux, use the following command in your terminal [1][2]: nordvpn meshnet peer list This command displays all devices linked to your Meshnet [3][4]. The output typically includes the Nord name, nickname (if assigned), and Meshnet IP address for each device [5][6]. If you are using a terminal emulator, you can often type the beginning of a peer's Nord name and press the Tab key to auto-complete the name, which is useful when running subsequent commands that require a device identifier [2][5][6]. Additionally, you can view your linked devices through the Nord Account dashboard [4]: 1. Log in to your Nord Account website. 2. Navigate to the Meshnet (by NordVPN) section to see a list of all your linked devices [4].
Citations:
- 1: https://meshnet.nordvpn.com/getting-started/how-to-start-using-meshnet/using-meshnet-on-linux
- 2: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-linux
- 3: https://meshnet.nordvpn.com/features/explaining-permissions/traffic-routing-permissions
- 4: https://meshnet.nordvpn.com/getting-started/how-to-start-using-meshnet/using-meshnet-on-linux.md
- 5: https://meshnet.nordvpn.com/features/explaining-permissions/remote-access-permissions
- 6: https://meshnet.nordvpn.com/features/renaming-devices/linux
🌐 Web query:
NordVPN CLI mesh meshnet alias peer list supported "mesh peer list"
💡 Result:
To manage and list Meshnet peers using the NordVPN command-line interface (CLI) on Linux, use the following commands: Listing Meshnet Peers To view a list of all devices in your Meshnet, use the command: nordvpn meshnet peer list [1][2] You can filter this list to see specific types of devices (such as external peers) by appending a filter flag: nordvpn meshnet peer list -filter external [3] For more options and available filters, you can view the help documentation: nordvpn meshnet peer list --help [4][3] Managing Aliases (Nicknames) While there is no "alias" command, you can manage custom nicknames for your peers to make them easier to identify. To assign a nickname to a peer: nordvpn meshnet peer nickname set [5] To remove a custom nickname and revert to the original Nord name: nordvpn meshnet peer nickname remove [5] When you assign a nickname, it will appear as the primary identifier for that device when running the nordvpn meshnet peer list command [5]. General Peer Management To display all supported commands for managing Meshnet peers, use: nordvpn meshnet peer --help [3] If you need to refresh your list of peers, you can run: nordvpn meshnet peer refresh [3] Note that when referring to a peer in these commands, you can generally use its Nord name, its assigned nickname, or its Meshnet IP address [6][5][7]. You can also use the Tab key in most Linux terminals to auto-complete peer names [2][6][5].
Citations:
- 1: https://meshnet.nordvpn.com/getting-started/how-to-start-using-meshnet/using-meshnet-on-linux
- 2: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-linux
- 3: https://meshnet.nordvpn.com/features/linking-devices-in-meshnet/adding-external-meshnet-devices-on-linux
- 4: https://nordvpn.com/blog/nordvpn-linux-release-notes/
- 5: https://meshnet.nordvpn.com/features/renaming-devices/linux
- 6: https://meshnet.nordvpn.com/features/explaining-permissions/remote-access-permissions
- 7: https://meshnet.nordvpn.com/features/explaining-permissions/traffic-routing-permissions
🌐 Web query:
NordVPN CLI latest "Use nordvpn mesh peer list for the peer command"
💡 Result:
The NordVPN CLI command to view your Meshnet peers is: nordvpn meshnet peer list [1][2] If you need to filter the output, such as viewing only external peers, you can use the following command: nordvpn meshnet peer list -filter external [3] To explore all available options and filters for this command, you can use the help flag: nordvpn meshnet peer list --help [3][4] Additionally, if you are looking to see all supported commands for managing your Meshnet peer devices, you can run: nordvpn meshnet peer --help [3]
Citations:
- 1: https://meshnet.nordvpn.com/getting-started/how-to-start-using-meshnet/using-meshnet-on-linux
- 2: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-linux
- 3: https://meshnet.nordvpn.com/features/linking-devices-in-meshnet/adding-external-meshnet-devices-on-linux
- 4: https://github.com/NordSecurity/nordvpn-linux/releases/tag/3.16.0
🌐 Web query:
github NordSecurity nordvpn-linux "mesh peer list" "meshnet peer list"
💡 Result:
To view a list of your Meshnet peers on Linux, use the following command in your terminal [1][2]: nordvpn meshnet peer list You can also filter the results to show only external connected devices by using the filter flag [3]: nordvpn meshnet peer list -filter external For further details on available options and management commands for your peers, you can access the help menu [3][4]: nordvpn meshnet peer --help This command provides the information necessary to identify your peers by their Nord name, nickname, or Meshnet IP address, which are required for tasks such as connecting to peers, managing permissions, or sharing files [1][5][6][7].
Citations:
- 1: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-linux
- 2: https://meshnet.nordvpn.com/getting-started/how-to-start-using-meshnet/using-meshnet-on-linux
- 3: https://meshnet.nordvpn.com/features/linking-devices-in-meshnet/adding-external-meshnet-devices-on-linux
- 4: https://nordvpn.com/blog/nordvpn-linux-release-notes/
- 5: https://meshnet.nordvpn.com/features/sharing-files-in-meshnet/sharing-files-linux
- 6: https://meshnet.nordvpn.com/features/explaining-permissions/local-network-permissions
- 7: https://meshnet.nordvpn.com/features/explaining-permissions/remote-access-permissions
🌐 Web query:
github.com NordSecurity nordvpn-linux "mesh peer" "meshnet peer"
💡 Result:
The nordvpn meshnet peer command set is used in the NordVPN Linux application to manage and interact with other devices (peers) within your Meshnet [1][2]. Below are the key operations and syntax for managing these peers. Key Management Commands To view a list of all your linked Meshnet peers, use: nordvpn meshnet peer list [1][3] To remove (unlink) a specific peer from your Meshnet, use: nordvpn meshnet peer remove [1] (Replace with the peer's Nord name or Meshnet IP address [1]). Peer Permission Management You can control specific access levels for each peer using the following commands (replace with the peer's identifier): 1. Traffic Routing To allow a peer to route their internet traffic through your device: nordvpn meshnet peer routing allow [4] 2. Local Network Access To allow a peer to access devices on your local network (LAN) when they are routing traffic through your device: nordvpn meshnet peer local allow [3][5] To deny this access: nordvpn meshnet peer local deny [3] 3. Incoming Connections (Remote Access) To allow or deny a peer from accessing your device directly via its Meshnet IP or Nord name: nordvpn meshnet peer incoming allow [6] nordvpn meshnet peer incoming deny [6] General Usage Tips - Tab Completion: When typing a peer's Nord name, you can press Tab to auto-complete the name based on your active peers [7][1]. - Help Command: To explore all available options and filters for managing peers, run: nordvpn meshnet peer --help [2] - Filtering: You can filter the peer list, for example, to see only external peers: nordvpn meshnet peer list -filter external [2] - Troubleshooting: If a peer is not appearing correctly or connection issues arise, you can try refreshing your list with: nordvpn meshnet peer refresh [2] For technical configurations, such as accessing services like Docker containers over Meshnet, you may need to combine these permissions (e.g., granting both local and routing permissions) [5][4].
Citations:
- 1: https://meshnet.nordvpn.com/getting-started/how-to-start-using-meshnet/using-meshnet-on-linux
- 2: https://meshnet.nordvpn.com/features/linking-devices-in-meshnet/adding-external-meshnet-devices-on-linux
- 3: https://meshnet.nordvpn.com/features/explaining-permissions/local-network-permissions
- 4: Cannot access Docker containers over Meshnet after upgrade to v.5.0.0 NordSecurity/nordvpn-linux#1539
- 5: https://meshnet.nordvpn.com/troubleshooting/linux
- 6: https://meshnet.nordvpn.com/features/explaining-permissions/remote-access-permissions
- 7: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-linux
🌐 Web query:
"NordVPN" "Use 'nordvpn mesh'" "meshnet" "3.16" "3.17"
💡 Result:
NordVPN Meshnet is a virtual network feature that allows devices to connect and communicate directly with each other over an end-to-end encrypted connection [1]. It functions like a secure local area network (LAN) and enables remote access, file sharing, and traffic routing across different platforms, including Windows, macOS, Linux, Android, iOS, and Android TV [1][2][3]. Meshnet is free to use and does not require a paid NordVPN subscription [4][2][5]. Regarding the specific software versions for the Linux client: - Version 3.16.7: This release, published on October 31, 2023, included improvements to Meshnet documentation and resolved an issue where Meshnet occasionally caused high CPU usage [6]. - Version 3.17.0: This release introduced the ability to set custom nicknames for Meshnet peer devices [7]. This feature allows users to assign recognizable names (e.g., 'home-pc' or 'ubuntu-server') to their devices, which can then be used alongside the generated Nord name or Meshnet IP address for easier identification and connection [8]. Meshnet allows users to link up to 60 devices in a single network: 10 devices registered to a personal account and up to 50 external devices from other trusted accounts [1][2]. Users can manage permissions for remote access, file sharing, and traffic routing via the Meshnet settings menu [9][5]. Official documentation for Meshnet is maintained at https://meshnet.nordvpn.com/ [10].
Citations:
- 1: https://meshnet.nordvpn.com/getting-started/meshnet-explained
- 2: https://nordvpn.com/meshnet/
- 3: https://meshnet.nordvpn.com/getting-started/how-to-start-using-meshnet
- 4: https://meshnet.nordvpn.com/features/linking-devices-in-meshnet
- 5: https://nordvpn.com/meshnet/private-network/
- 6: https://github.com/NordSecurity/nordvpn-linux/releases/tag/3.16.7
- 7: Meshnet peer nicknames NordSecurity/nordvpn-linux#22
- 8: https://meshnet.nordvpn.com/features/renaming-devices
- 9: https://meshnet.nordvpn.com/features
- 10: https://meshnet.nordvpn.com/
🌐 Web query:
NordVPN Linux CLI docs 3.19 3.20 nordvpn mesh peer list
💡 Result:
In NordVPN Linux CLI versions 3.19 and 3.20, the command to list your Meshnet peers is: nordvpn meshnet peer list [1][2] You can also filter the results to show only external peers using the following command: nordvpn meshnet peer list -filter external [3] For additional assistance with managing Meshnet peers, you can view the available command options by running: nordvpn meshnet peer --help [3] The NordVPN Linux CLI version 3.19.0 introduced post-quantum encryption (enabled via nordvpn set pq on) and added support for ARM64 and ARMHF architectures [4], while version 3.20.0 focused on security improvements and stability fixes [5]. These commands are consistent across both versions as they fall under the established Meshnet CLI feature set [1][3].
Citations:
- 1: https://meshnet.nordvpn.com/getting-started/how-to-start-using-meshnet/using-meshnet-on-linux
- 2: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-linux
- 3: https://meshnet.nordvpn.com/features/linking-devices-in-meshnet/adding-external-meshnet-devices-on-linux
- 4: https://github.com/NordSecurity/nordvpn-linux/releases/tag/3.19.0
- 5: https://github.com/NordSecurity/nordvpn-linux/releases/tag/3.20.0
Use the documented meshnet namespace for nord_list_peers.
bash/nord/list_peers.sh invokes nordvpn mesh peer list, but the rest of the Nord scripts use nordvpn meshnet peer list, and NordVPN Meshnet documentation uses the meshnet namespace. Update the wrapper so the installed nord_list_peers command does not depend on an undocumented mesh alias.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@bash/nord/README.md` at line 20, Update the command invoked by list_peers.sh
to use the documented nordvpn meshnet peer list namespace instead of nordvpn
mesh peer list, while preserving the existing nord_list_peers wrapper behavior.
| The Raspberry Pi is configured to act as an exit-node for other Meshnet peers, allowing them to route traffic through it and | ||
| access LAN devices (like printers or cameras). |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Document the permission prerequisites for LAN access.
bash/nord/config.sh grants routing and local-network access only to peers listed in allowed_for_routing and allowed_for_local. The supplied bash/nord/peers.json lists only mesh-dell and mesh-hp for local access. State that permissions and allowlist entries are required instead of presenting LAN access as automatic.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@bash/nord/README.md` around lines 40 - 41, Update the Raspberry Pi exit-node
description to state that LAN access requires the relevant permissions and peer
entries in allowed_for_routing and allowed_for_local; clarify that the provided
peers.json allowlist currently grants local access only to mesh-dell and mesh-hp
rather than implying access is automatic.
| through. Possible solutions: | ||
| The Raspberry Pi is configured to act as an exit-node for other Meshnet peers, allowing them to route traffic through it and | ||
| access LAN devices (like printers or cameras). | ||
| *Note:* If you want to route streaming traffic (e.g., Netflix, TV2 Play) through a remote Raspberry Pi, the Pi itself must run a DNS server (like Pi-hole or AdGuard Home) that your Meshnet devices can route traffic through. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== locate README files =="
fd -a 'README\.md$' . | sed 's#^\./##' | head -100
echo "== target file excerpt =="
if [ -f bash/nord/README.md ]; then
nl -ba bash/nord/README.md | sed -n '1,140p'
else
echo "bash/nord/README.md not found"
fi
echo "== search for Meshnet/Nord DNS docs references in repo =="
rg -n --hidden -i 'meshnet|nord.?vpn|pi-hole|AdGuard|custom.?dns|streaming|Netflix|TV2' . \
--glob '!node_modules' --glob '!dist' --glob '!build' | head -200Repository: terjeinnerdal/scripts
Length of output: 319
🌐 Web query:
NordVPN Meshnet traffic routing NordVPN DNS custom DNS Meshnet.nordvpn.com
💡 Result:
NordVPN Meshnet supports the use of custom DNS, which can be configured alongside both standard VPN connections and Meshnet traffic routing [1][2][3]. When you enable traffic routing in Meshnet—a feature that allows you to route your internet traffic through a remote peer device—the connection defaults to using NordVPN's standard DNS servers (103.86.96.100 and 103.86.99.100) to ensure efficient processing and prevent DNS leaks [4]. However, you can override this by configuring custom DNS settings in the NordVPN application [2][5]: 1. Access the NordVPN app settings (typically located under Profile > Settings or the Connection/Security section) [1][3][6]. 2. Locate the "Use custom DNS" or "DNS" configuration option [2][7][6]. 3. Enter your desired DNS server address [1][6]. If you are using a self-hosted DNS server (such as Pi-hole) on a device within your Meshnet, you can enter that device's Meshnet IP address here to route your DNS queries through it [1][3][6]. By following these steps, you can utilize your preferred DNS servers, including local Meshnet-based DNS, even when traffic routing is active [2][3]. Note that the custom DNS feature is generally available on the direct-download version of the NordVPN app [6].
Citations:
- 1: https://meshnet.nordvpn.com/how-to/security/how-to-set-up-your-own-dns-server
- 2: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-windows
- 3: https://meshnet.nordvpn.com/how-to/security/pi-hole.md
- 4: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet
- 5: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-windows?ask=What+steps+are+required+to+start+using+Meshnet+on+your+devices%3F
- 6: https://meshnet.nordvpn.com/how-to/security/pi-hole
- 7: https://support.nordvpn.com/hc/en-us/articles/35512783419281-How-to-change-your-DNS-using-the-NordVPN-app
🌐 Web query:
"meshnet.nordvpn.com/features/routing-traffic-in-meshnet" "custom DNS"
💡 Result:
NordVPN Meshnet supports the use of custom DNS, which allows you to route DNS queries through specific servers, such as a self-hosted Pi-hole or other private DNS solutions [1][2]. When using Meshnet's traffic routing feature, the connection by default utilizes NordVPN's standard DNS addresses (103.86.96.100 and 103.86.99.100) to ensure efficient query processing and prevent DNS leaks [3]. However, you can override this behavior by configuring custom DNS settings within the NordVPN app [4][5]. To configure custom DNS for use with Meshnet: 1. Locate the Meshnet IP address of the device acting as your DNS server (e.g., your Pi-hole) within the Devices in Meshnet tab of the NordVPN app [2]. 2. Navigate to your app's settings, typically found under Profile > Settings > Connection and security (the exact path may vary slightly by platform) [4][2]. 3. Enable the Use custom DNS option and enter the Meshnet IP address you copied [1][2]. 4. Save your changes and reconnect to the VPN for the settings to take effect [1][2]. Note that the Custom DNS feature is generally designed to work when connected to a VPN connection via the NordVPN app [1][2][6]. If you encounter issues, ensure you are using a supported version of the app, as specific features like Custom DNS may be limited to the direct download version on certain platforms [1][2].
Citations:
- 1: https://meshnet.nordvpn.com/how-to/security/how-to-set-up-your-own-dns-server
- 2: https://meshnet.nordvpn.com/how-to/security/pi-hole
- 3: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet
- 4: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-windows
- 5: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-windows?ask=What+steps+are+required+to+start+using+Meshnet+on+your+devices%3F
- 6: https://www.reddit.com/r/nordvpn/comments/1hztytr/local_dns_over_meshnet_on_mobile/
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== bash/nord/README.md excerpt (line-numbered via awk) =="
awk 'NR>=1 && NR<=180 { printf "%6d\t%s\n", NR, $0 }' bash/nord/README.md
echo "== relevant occurrences =="
awk 'NR>=35 && NR<=50 { printf "%6d\t%s\n", NR, $0 }' bash/nord/README.mdRepository: terjeinnerdal/scripts
Length of output: 3051
🌐 Web query:
site:meshnet.nordvpn.com/features/routing-traffic-in-meshnet streaming Netflix NordVPN DNS traffic routing
💡 Result:
When using NordVPN's standard VPN connection or the Meshnet traffic routing feature, DNS traffic is handled by NordVPN's servers to ensure efficient query processing and to prevent DNS leaks [1]. By default, these connections utilize NordVPN's specific DNS addresses (such as 103.86.96.100 and 103.86.99.100) [1]. Users have the option to customize this behavior by configuring custom DNS servers within the NordVPN application settings, typically found under Profile > Settings > Connection and security [2][3][4]. This functionality allows users to specify alternative DNS providers if needed. Regarding Netflix and other streaming services, NordVPN manages traffic routing to help bypass geo-restrictions by masking a user's original IP address with that of a chosen VPN server or a Meshnet host device [1][5]. When traffic is routed through a Meshnet peer, the client device adopts the public IP address of the host device [1]. Because streaming platforms like Netflix often detect and block known VPN IP addresses, routing traffic through a residential IP via Meshnet is sometimes used as a method to appear as a standard home network connection, potentially improving access to region-locked content [1]. In summary: - DNS Routing: Handled by NordVPN by default to prevent leaks [1]. - Customization: Users can override default DNS settings in the application menu [2][3]. - Streaming Impact: Standard VPN connections or Meshnet traffic routing mask your IP to facilitate access to streaming content [1][5]. Meshnet specifically allows you to route traffic through your own residential devices, which may be less likely to be flagged by streaming services than data center VPN IPs [1].
Citations:
- 1: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet
- 2: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-windows
- 3: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-windows?ask=What+steps+are+required+to+start+using+Meshnet+on+your+devices%3F
- 4: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-windows.md
- 5: https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-android
Scope the DNS requirement correctly.
NordVPN Meshnet routes DNS through NordVPN DNS by default; custom DNS is an optional client setting. Change this note to say: if you want streaming through the Raspberry Pi to use the Pi’s DNS, configure custom DNS in the NordVPN app with the Pi’s Meshnet IP. Otherwise, remove must.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@bash/nord/README.md` at line 42, Update the README note about routing
streaming traffic through a remote Raspberry Pi so it no longer states that the
Pi must run a DNS server. Explain that using the Pi’s DNS requires configuring
custom DNS in the NordVPN app with the Pi’s Meshnet IP; otherwise, describe the
DNS server as optional.
…y can be executed from everywhere.
Summary by CodeRabbit
New Features
~/.local/bin.nord_commands without.shextensions.Documentation