Librem tunnel VPN (Windows, Arch, fdroid)


In case it helps, for Fedora 30 I did something like:

mkdir -p ~/libremonesetup
cd ~/libremonesetup
pipenv --python 3.7
sudo dnf install cairo-devel gobject-introspection-devel cairo-gobject-devel
pipenv install ldh-client

then searched for the installed and applied the same edit on Line 67 as for Arch (to remove the x86_64-linux-gnu/ from the path to
CORRECTION: and change ‘/usr/lib’ to ‘/usr/lib64’ as @weswil07 pointed out in a comment below.

After that the following command completed the setup fine:

pipenv run liberty tunnel-setup

Meanwhile, I also found (via that you can set up automatic connection to the vpn when connecting to networks that NetworkManager has remembered for you. In summary running


allows you to edit any non-vpn network entry to automatically connect to any vpns you have set up via the General tab.


using pipenv might have been overkill of course! Just edited the post to include making a directory for the Pipfile to go in.


Sorry for the delay and apologies @mladen
It appears to accept my creds then halts with this message.

“Your tunnel service is not active”.

Any ideas? @zOvRWwWcD0Dc You said you got it running on Manjaro, did you do anything else? I am running Gnome stable.




Thank you! All good.


All good… Well kinda…
Now that I have tunnel up and running it leads to more questions…

It looks like this may be a TODO in the docs. Is there any way to get .opvn files or pass params to liberty to get more access points configured?



For the OpenVPN part, I wrote about it here: Librem One: Generic doc issues
On my setup I am using the Librem Tunnel with only the OpenVPN client and a .ovpn file


Where do you put the ovpn file? I tried simply passing the config to openvpn but joy. How did you use the file you linked to @neowutran ?


This worked for me on Fedora as well, I did use pipx instead of pip.

In addition to removing x86_64-linux-gnu/ from Line 67, I needed to change /usr/lib/ to /usr/lib64/


@weswil07 I got liberty and the initial tunnel set up. Now I would like to change the access point.


I also can’t seem to find any VPN file.
Also, could someone please post instructions for Windows? The PureOs instructions don’t work. Thanks


You have 3 files in a directory:

librem.ovpn pass

Librem.ovpn is my config that I pasted in this thread: Librem One: Generic doc issues
You can use this configuration directly ( or use a config file from PIA, or … ) is the script that generate the “pass” file. The source code is in the same thread.
You run it like that:


Then just launch openvpn:

sudo openvpn ./librem.ovpn

( Purism software are easier to use. This is just a solution for people who can’t / don’t want to have a dedicated software to automate those steps )


@neowutran thanks!
I was passing the .ovpn file as a config not with ./
All good appreciate it.
Now can you get it in to networkmanager the gui? :slight_smile:


Ofcourse ^^
A bit too lazy to explain step by step, but:
NetworkManager -> VPN Connections -> Configure VPN -> “+” -> OpenVPN

Authentication type -> Password

& Fill the field on the main page and on the “advanced” page with the data contained in the .ovpn file


You are not the lazy one. I am way too lazy since I wanted a file i could just import but I guess if I have to do it that way I can…

Thanks again.


Yes, my mistake for not including that so I’ve updated my post to reflect. To generalise, if you can find the file, modify those lines to point to it.


on archlinux,
Is the building from source required? or Should I be able to just launchpython after the modification?
When building from source, it gives trouble for 2 packages,
An error occurred while installing pycairo==1.18.1
An error occurred while installing pygobject==3.32.2
Is there no any other dependencies that we should be aware of?

and when running it is working until it encounters:
which is essentially the problem from the line 67.


and comparatively to what @gjm has written,
the explicit procedure to build and install with pipenv was : pipenv -install --dev -e . (while being in the directory)
so which one is it then? Because it is not quite the same thing .


where would that be? the installed since we have also to modify it after the installation…
Because the error only points to the binary package and not to modifiable folder : /usr/lib/python3.7/site-packages/ldh_client-0.0.1-py3.7.egg/ So where did you modify it?