| .forgejo/workflows | ci: add scheduled Renovate workflow [skip ci] ( #19 ) | |
| ci/flathub-linter | chore: rename id to page.codeberg.WebSpider.EduVPN | |
| patches | chore: bump client to v4.7.2 | |
| .gitignore | hello world | |
| LICENSE | chore: rename id to page.codeberg.WebSpider.EduVPN | |
| page.codeberg.WebSpider.EduVPN.flatpakrepo | chore: rename id to page.codeberg.WebSpider.EduVPN | |
| page.codeberg.WebSpider.EduVPN.metainfo.xml | chore: rename id to page.codeberg.WebSpider.EduVPN | |
| page.codeberg.WebSpider.EduVPN.yaml | chore: add renovate.json for automated dependency tracking | |
| README.md | docs: recommend user install, add system-wide install guidance | |
| renovate.json | chore: add renovate.json for automated dependency tracking | |
EduVPN Flatpak
Unofficial distribution. This Flatpak is not produced or endorsed by the eduVPN project or GÉANT. For the official Linux client, see codeberg.org/eduVPN/linux-app.
Flatpak packaging for the eduVPN Linux client — a VPN service for students and staff at research and education institutions worldwide.
This repository contains the Flatpak manifest and supporting files needed to build and distribute page.codeberg.WebSpider.EduVPN, bundling a compatible NetworkManager stack inside the sandbox.
Features
- Automatic discovery of institutional eduVPN servers
- OpenVPN and WireGuard protocol support
- Secure credential storage via the system keyring
- Desktop notifications for connection state changes
- Automatic reconnection on network changes
Installation
Note:
x86_64andaarch64are supported. Other architectures (armv7, riscv64, ppc64le, s390x) can be added upon request.
User install vs system install
Flatpak can install applications per-user (--user, into ~/.local/share/flatpak/) or system-wide (into /var/lib/flatpak/, available to all users). For most people, a user install is the right choice:
- No root or sudo required.
- The remote and app are only visible to your own account.
- VPN profiles and credentials are inherently per-user anyway.
Use a system-wide install only if you are on a shared or multi-user machine and want eduVPN available to every account on it.
User install (recommended)
Add the remote for your user and install:
flatpak remote-add --user --no-gpg-verify eduvpn https://webspider.codeberg.page/eduvpn-flatpak
flatpak install --user eduvpn page.codeberg.WebSpider.EduVPN//stable
Note:
--no-gpg-verifyis required for now - GPG signing of the repository will be added soon.
Or add via the .flatpakrepo file (e.g. by opening it in GNOME Software or Discover):
flatpak remote-add --user --from eduvpn https://webspider.codeberg.page/eduvpn-flatpak/page.codeberg.WebSpider.EduVPN.flatpakrepo
flatpak install --user eduvpn page.codeberg.WebSpider.EduVPN//stable
System-wide install (multi-user machines)
If you need the application available to all users on the machine, omit --user (root or sudo may be required depending on your system):
flatpak remote-add --no-gpg-verify eduvpn https://webspider.codeberg.page/eduvpn-flatpak
flatpak install eduvpn page.codeberg.WebSpider.EduVPN//stable
Available branches
The repository publishes the following branches for both x86_64 and aarch64:
| Branch | Description |
|---|---|
stable |
Latest tagged release (recommended) |
main |
Latest CI build from the main branch |
{version} |
Pinned version, e.g. flatpak install eduvpn page.codeberg.WebSpider.EduVPN//4.7.2 |
Building Locally
Install the required GNOME runtime and SDK (version 50):
flatpak install flathub org.gnome.Platform//50 org.gnome.Sdk//50
Build and install for the current user:
flatpak-builder --user --install --force-clean build-dir page.codeberg.WebSpider.EduVPN.yaml
The build-dir/ and repo/ directories are generated by the build and should not be committed.
Patches
Two patches are applied to make the application work inside the Flatpak sandbox:
patches/client/001-utils-add-flatpak-prefix.patch
Adds /app to the search path used by eduvpn/utils.py when locating mainwindow.ui. Without this, the GTK builder cannot find the UI file because Flatpak installs to /app rather than the standard system prefixes.
patches/nm/0001-disable-ownership-check-for-plugins.patch
Disables NetworkManager's file ownership verification for VPN plugins (nm-utils.c). Inside the Flatpak sandbox, plugin file ownership does not match what NM expects on a normal host system, causing the ownership check to fail and preventing the OpenVPN plugin from loading.
Bundled Dependencies
The Flatpak manifest bundles the following libraries to provide VPN connectivity without depending on the host's NetworkManager installation:
| Package | Version | Notes |
|---|---|---|
| NetworkManager | 1.40.18 | Pinned < 1.42.0 — breaking DNS API changes in 1.42.x |
| NetworkManager-openvpn | 1.10.2 | Pinned < 1.10.4 — later versions cause connection failures in Flatpak |
| libnma | 1.10.6 | NetworkManager GTK UI library |
| libndp | 1.9 | Network Discovery Protocol library, required by NM |
Sandbox Permissions
| Permission | Purpose |
|---|---|
--share=network |
VPN connectivity |
--share=ipc |
GTK shared memory (X11) |
--socket=wayland, --socket=fallback-x11 |
GUI display |
--device=dri |
GTK3 GPU rendering |
--system-talk-name=org.freedesktop.NetworkManager |
Create and manage VPN connections |
--talk-name=org.freedesktop.secrets |
Store credentials in the system keyring |
--talk-name=org.freedesktop.Notifications |
Connection state notifications |
--system-talk-name=org.freedesktop.login1 |
D-Bus daemon reconnector |
--filesystem=~/.cert/nm-openvpn:create |
OpenVPN certificate storage |
Links
- Upstream application: https://codeberg.org/eduVPN/linux-app
- Documentation: https://docs.eduvpn.org/client/linux
- Bug tracker: https://codeberg.org/eduVPN/linux-app/issues
- eduVPN website: https://www.eduvpn.org/
License
The original packaging files in this repository (Flatpak manifests and supporting files) are licensed under EUPL-1.2 — see LICENSE for details.
The patches are derived from upstream GPL-3.0-or-later code and remain licensed under GPL-3.0-or-later.
The AppStream metadata (page.codeberg.WebSpider.EduVPN.metainfo.xml) is licensed under CC0-1.0, as required for distribution in Flatpak repositories and app catalogs.
The eduVPN application itself is licensed under GPL-3.0-or-later.