{"id":29482794,"url":"https://github.com/ProtonVPN/proton-vpn-gtk-app","last_synced_at":"2025-07-15T02:02:23.128Z","repository":{"id":199691804,"uuid":"692073597","full_name":"ProtonVPN/proton-vpn-gtk-app","owner":"ProtonVPN","description":"Official ProtonVPN Linux app","archived":false,"fork":false,"pushed_at":"2025-06-17T13:30:48.000Z","size":2444,"stargazers_count":386,"open_issues_count":31,"forks_count":51,"subscribers_count":19,"default_branch":"stable","last_synced_at":"2025-06-17T14:33:34.592Z","etag":null,"topics":["linux","python","vpn-client"],"latest_commit_sha":null,"homepage":"https://protonvpn.com/download-linux","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ProtonVPN.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-09-15T13:55:15.000Z","updated_at":"2025-06-17T13:30:53.000Z","dependencies_parsed_at":"2024-03-04T10:50:26.901Z","dependency_job_id":null,"html_url":"https://github.com/ProtonVPN/proton-vpn-gtk-app","commit_stats":null,"previous_names":["protonvpn/proton-vpn-gtk-app"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ProtonVPN/proton-vpn-gtk-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProtonVPN%2Fproton-vpn-gtk-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProtonVPN%2Fproton-vpn-gtk-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProtonVPN%2Fproton-vpn-gtk-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProtonVPN%2Fproton-vpn-gtk-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProtonVPN","download_url":"https://codeload.github.com/ProtonVPN/proton-vpn-gtk-app/tar.gz/refs/heads/stable","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProtonVPN%2Fproton-vpn-gtk-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265386079,"owners_count":23756747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","python","vpn-client"],"created_at":"2025-07-15T02:01:45.095Z","updated_at":"2025-07-15T02:02:23.117Z","avatar_url":"https://github.com/ProtonVPN.png","language":"Python","funding_links":[],"categories":["Python","Internet and Networking"],"sub_categories":["VPN"],"readme":"# Proton VPN GTK app\n\nCopyright (c) 2023 Proton AG\n\nThis repository holds the Proton VPN GTK app.\nFor licensing information see [COPYING](COPYING.md) and [LICENSE](LICENSE).\nFor contribution policy see [CONTRIBUTING](CONTRIBUTING.md).\n\n## Description\n\nThe [Proton VPN](https://protonvpn.com) GTK app is intended for every Proton VPN service user, it provides full access to all functionalities available to authenticated users, with the user signup process handled on the website.\n\n### Cloning\n\nOnce you've cloned this repo, run:\n\n\u003e git submodule update --init --recursive\n\nto clone the necessary submodule.\n\n### Installation\n\nYou can get the latest stable release from our [Proton VPN official website](https://protonvpn.com/download-linux).\n\n### Dependencies\n\nFor development purposes (within a virtual environment) see the required packages in the setup.py file, under `install_requires` and `extra_require`. As of now these packages will not be available on pypi. Also see [Virtual environment](#virtual-environment) below.\n\n### Virtual environment\n\nIf you didn't do it yet, to be able to pip install Proton VPN components you'll\nneed to set up our internal Python package registry. You can do so running the\ncommand below, after replacing `{GITLAB_TOKEN`} with your\n[personal access token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)\nwith the scope set to `api`.\n\n```shell\npip config set global.index-url https://__token__:{GITLAB_TOKEN}@{GITLAB_INSTANCE}/api/v4/groups/{GROUP_ID}/-/packages/pypi/simple\n```\n\nYou can create the virtual environment and install the rest of dependencies as\nfollows:\n\n```shell\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\n```\n\n#### GUI application\n\nApp logs are stored under `~/.cache/Proton/VPN/logs/` directory.\n\nUser settings are under `~/.config/Proton/VPN/` directory.\n\n## Folder structure\n\n### Folder \"debian\"\n\nContains all debian related data, for easy package compilation.\n\n### Folder \"rpmbuild\"\n\nContains all rpm/fedora related data, for easy package compilation.\n\n### Folder \"proton/app/gtk\"\n\nThis folder contains the gtk app source code.\n\n### Folder \"tests\"\n\nThis folder contains unit/integrations test code.\n\nYou can run the integration tests with:\n\n```shell\nbehave tests/integration/features\n```\n\nOn headless systems, it's possible to run the integration tests using `Xvfb`\n(virtual framebuffer X server). On Debian-based distributions, you just have\nto install the `xvfb` package. After that, you can run the integration tests with:\n\n```shell\nxvfb-run -a behave integration_tests/features\n```\n\n## Versioning\nVersion matches format: `[major][minor][patch]`\n\nWe automate the versioning of the debian and rpm files.\nAll versions of the application are recorded in versions.yml.\nTo bump the version, add the following text to the top of versions.yml\n\n```\nversion: \u003clatest version\u003e\ntime: \u003cdate\u003e \u003ctime\u003e\nauthor: \u003cyour name\u003e\nemail: \u003cyour email address\u003e\nurgency: low\nstability: unstable\ndescription:\n- \u003cA description of the changes this new version contains\u003e\n---\n```\n\nMake sure you have the '---' dashes at the end of your block of text.\nYou can use the previous entries as an example.\n\nFinally run `scripts/build_packages.py`. This will generate a new package.spec\nfile for rpmbuild and a new changelog file for debian.\n\nThat's it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FProtonVPN%2Fproton-vpn-gtk-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FProtonVPN%2Fproton-vpn-gtk-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FProtonVPN%2Fproton-vpn-gtk-app/lists"}