Skip to content

Commit 4f93398

Browse files
authored
Dev (#21)
* Update NordVPN to 3.18.4, README * Update deprecated NodeJS actions * Add Nickname, Change DEV actions * Action fix * Update README and fix #11 * Fix permissions * Lock base image version
1 parent 6c2a200 commit 4f93398

File tree

8 files changed

+77
-12
lines changed

8 files changed

+77
-12
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Docker Image CI Dev
2+
3+
on:
4+
push:
5+
paths:
6+
- 'fs/**'
7+
- 'Dockerfile'
8+
branches:
9+
- 'dev'
10+
11+
env:
12+
REGISTRY: ghcr.io
13+
IMAGE_NAME: ${{ github.repository }}
14+
15+
jobs:
16+
build-push:
17+
runs-on: ubuntu-latest
18+
19+
permissions:
20+
contents: read
21+
packages: write
22+
23+
steps:
24+
- name: Checkout
25+
uses: actions/checkout@v4
26+
27+
- name: Set up QEMU
28+
uses: docker/setup-qemu-action@v3
29+
30+
- name: Set up Docker Buildx
31+
uses: docker/setup-buildx-action@v3
32+
33+
- name: Docker Meta
34+
id: meta
35+
uses: docker/metadata-action@v5
36+
with:
37+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
38+
39+
- name: Login to GHCR
40+
if: github.event_name != 'pull_request'
41+
uses: docker/login-action@v3
42+
with:
43+
registry: ghcr.io
44+
username: ${{ github.actor }}
45+
password: ${{ secrets.GITHUB_TOKEN }}
46+
47+
- name: Docker Build and Push
48+
uses: docker/build-push-action@v6
49+
with:
50+
context: .
51+
platforms: linux/amd64,linux/arm64
52+
push: ${{ github.event_name != 'pull_request' }}
53+
tags: ${{ steps.meta.outputs.tags }}
54+
labels: ${{ steps.meta.outputs.labels }}

.github/workflows/docker-image.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ on:
77
- 'Dockerfile'
88
branches:
99
- 'master'
10-
- 'dev'
1110
tags:
1211
- v*
1312

@@ -25,30 +24,30 @@ jobs:
2524

2625
steps:
2726
- name: Checkout
28-
uses: actions/checkout@v3
27+
uses: actions/checkout@v4
2928

3029
- name: Set up QEMU
31-
uses: docker/setup-qemu-action@v2
30+
uses: docker/setup-qemu-action@v3
3231

3332
- name: Set up Docker Buildx
34-
uses: docker/setup-buildx-action@v2
33+
uses: docker/setup-buildx-action@v3
3534

3635
- name: Docker Meta
3736
id: meta
38-
uses: docker/metadata-action@v4
37+
uses: docker/metadata-action@v5
3938
with:
4039
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
4140

4241
- name: Login to GHCR
4342
if: github.event_name != 'pull_request'
44-
uses: docker/login-action@v2
43+
uses: docker/login-action@v3
4544
with:
4645
registry: ghcr.io
4746
username: ${{ github.actor }}
4847
password: ${{ secrets.GITHUB_TOKEN }}
4948

5049
- name: Docker Build and Push
51-
uses: docker/build-push-action@v3
50+
uses: docker/build-push-action@v6
5251
with:
5352
context: .
5453
platforms: linux/amd64,linux/arm64

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
FROM ghcr.io/linuxserver/baseimage-ubuntu:jammy
1+
FROM ghcr.io/linuxserver/baseimage-ubuntu:jammy-version-21e99ce9
22
LABEL maintainer="Matts Bos - MattsTechInfo"
33

44
# Configure the NordVPN client version to install at build
5-
ARG NORDVPN_CLIENT_VERSION=3.17.4
5+
ARG NORDVPN_CLIENT_VERSION=3.18.4
66

77
# Avoid interactions during build process
88
ARG DEBIAN_FRONTEND=noninteractive

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This (Docker) container provides the official NordVPN client configured for Mesh
1010
> Note: I've created this container for my personal needs, which is to run Meshnet nodes at different locations to be used as outgoing gateways. If you have another use for this container, feel free to let me know or help add functionality if what you are trying to do doesn't work as expected.
1111
1212
## General Meshnet information
13-
Meshnet is a free self hosted VPN network connecting multiple nodes together. It's functionality, provided with the NordVPN application, is available on most platforms, including Android/Google TV. This could potentially make for an excellent Netflix password sharing workaround and viewing your own country's content when abroad, but obviously I would never recommend to do anything against the rules now would I.
13+
Meshnet is a free self hosted VPN network connecting multiple nodes together. It's functionality, provided with the NordVPN application, is available on most platforms, including Android/Google TV. The usecases are extensive, the most popular ones are to access local data/network through Meshnet while having remote clients or setting up an exit node to route all client traffic through a single location.
1414
Read more about Meshnet over here: https://meshnet.nordvpn.com/
1515

1616
## Installation and configuration
@@ -41,6 +41,7 @@ A `.env` file is supplied with the `docker-compose.yml` file for configuration p
4141
- `NORDVPN_MESHNET_DEBUG` - Enable debug mode, anything non-empty will ENABLE. Use this if you need more verbose error logging for troubleshooting.
4242
- `NORDVPN_HEALTHCHECK_INTERVAL` - Set the interval to verify connectivity to the set URL, defaults to 300 (seconds).
4343
- `NORDVPN_HEALTHCHECK_URL` - An address to verify if connectivity is available. Choose something depending on what connectivity you want to verify, defaults to www.google.com. Please keep in mind, if the healthcheck fails the container will be killed.
44+
- `NORDVPN_NICKNAME`- Set a nickname for this device/instance on Meshnet, every peer will see and can use this nickname.
4445

4546
#### Meshnet Permissions
4647
In this version of NordVPN, permissions must be configured directly on the client. NordVPN currently ALLOWS all peers connected to Meshnet by default for Fileshare and Remote access services and DENIES Routing and Local network services. Configuring peer permissions through the NordVPN account website is still in development and not currently available.

docker-compose/.env

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@ NORDVPN_MESHNET_DEBUG=
1111
NORDVPN_HEALTHCHECK_INTERVAL=300
1212
# Healthcheck URL to verify if connectivity is up. Replace this with something on your Meshnet (if available), defaults to Google.
1313
NORDVPN_HEALTHCHECK_URL=www.google.com
14+
# Set a nickname for this device/instance on Meshnet, every peer will see and can use this nickname.
15+
NORDVPN_NICKNAME=
1416

1517
# Meshnet permissions
1618
# In this version of NordVPN, permissions must be configured directly on the client.
1719
# Configuring peer permissions through the NordVPN account website is still in development.
1820
# This container will run DENY configuration first, followed by ALLOW. ALLOW will overwrite the DENY!
19-
# NordVPN currently ALLOWS all peers connected to Meshnet by default.
21+
# NordVPN currently ALLOWS all peers connected to Meshnet by default for Fileshare and Remote access services and DENIES Routing and Local network services.
2022
# Peers must be entered with their FQDN/Name assigned by Meshnet, comma separated.
2123

2224
# DENY peer configuration, comma separated.

fs/etc/cont-init.d/perms

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ chmod +x /usr/bin/nordvpn_login
55
chmod +x /usr/bin/meshnet_config
66
chmod +x /usr/bin/meshnet_watch
77
chmod +x /etc/services.d/nordvpn/data/check
8+
chmod +x /etc/services.d/nordvpn/run
9+
chmod +x /etc/services.d/nordvpn/finish
810
echo "Executable permissions set."

fs/usr/bin/meshnet_config

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ IFS=','
66
# Enable Meshnet, this creates the interface and connects
77
nordvpn set meshnet on
88

9+
# Set nickname of this instance on the Meshnet network
10+
if [[ -n ${NORDVPN_NICKNAME} ]]; then
11+
nordvpn meshnet set nickname ${NORDVPN_NICKNAME}
12+
fi
13+
914
# Iterate through Meshnet peer permissions
1015
if [[ -n ${NORDVPN_DENY_PEER_ROUTING} ]]; then
1116
read -ra deny_routing <<< "${NORDVPN_DENY_PEER_ROUTING}"

kubernetes/meshnet-env.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ data:
1717
NORDVPN_HEALTHCHECK_INTERVAL: 300
1818
# Healthcheck URL to verify if connectivity is up. Replace this with something on your Meshnet (if available), defaults to Google.
1919
NORDVPN_HEALTHCHECK_URL: www.google.com
20+
# Set a nickname for this device/instance on Meshnet, every peer will see and can use this nickname.
21+
NORDVPN_NICKNAME: ""
2022

2123
# Meshnet permissions
2224
# In this version of NordVPN, permissions must be configured directly on the client.
2325
# Configuring peer permissions through the NordVPN account website is still in development.
2426
# This container will run DENY configuration first, followed by ALLOW. ALLOW will overwrite the DENY!
25-
# NordVPN currently ALLOWS all peers connected to Meshnet by default.
27+
# NordVPN currently ALLOWS all peers connected to Meshnet by default for Fileshare and Remote access services and DENIES Routing and Local network services.
2628
# Peers must be entered with their FQDN/Name assigned by Meshnet, comma separated.
2729

2830
# DENY peer configuration, comma separated.

0 commit comments

Comments
 (0)