brianzhang / VPN_ReactNative

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Open Source VPN

Description

Open Source VPN is a free and open source mobile application that allows users to connect to a VPN using the OpenVPN protocol. The application collects data about working with servers and, based on this, gives the user only the best servers. Non-working servers are automatically deleted by the application. Also, the server database is auto-generated, and when new .ovpn files are added, new servers will be added to the application

Tech Stack

  • React Native
  • Redux
  • Typescript
  • Firebase

Website

https://vpn.llill.xyz/

Google Play Store

Get it on Google Play

Getting Started

1. Add and setup firebase to project

1. Include firebase to project

For this:

  1. Register app on firebase for web

Add web app's Firebase configuration to src/api/firebase/config.ts:

const firebaseConfig = {
    apiKey: "AIzaSyAKsIl5UdCMghM9OgaTw14iCBuFSNilYk4",
    authDomain: "todos-d70a6.firebaseapp.com",
    projectId: "todos-d70a6",
    storageBucket: "todos-d70a6.appspot.com",
    messagingSenderId: "811053328343",
    appId: "1:811053328343:web:c74accaddf3e1bdd9f4d92"
};

2. Add data to firebase

1. In firestore
  1. Create collection 'feedback' to get feedback
  2. Create collection 'data' and add document 'serversWithCountries', in this document add field 'servers', Example: This is main collection where information about servers is stored
servers:[]

3.Create collection 'settings' and add document 'check', in this document add field 'lastCheckTime' with type timestamp

Since the application must dynamically add and remove servers, depending on the .ovpn files, for optimization, the application checks files once a day and stores the date of the last check in the check document of this collection

2. In storage

Create a folder with the name of the country code(in upper case) you want to add, then place there files .ovpn

List of addable countries located in './hooks/languages.ts':

countries: {
            AE: {
                ru: "Объединенные Арабские Эмираты",
                ua: "Об'єднані Арабські Емірати",
                gb: "United Arab Emirates"
            },
            AR: {
                ru: "Аргентина",
                ua: "Аргентина",
                gb: "Argentina"
            },
            AU: {
                ru: "Австралия",
                ua: "Австралія",
                gb: "Australia"
            },
            ...
}
You can add a country only if it is included in this list!

2. Install modules, Cmake, Swig and run

npm install
npm start
npx react-native run-android

License

Open Source VPN

Copyright ©2023 Global mobile apps.

Open Source VPN is a commercial open-source app, available under the GPLv3 license. Our intention is to provide the maximal possible transparency: you can personally audit the code and build your own binary.

While derivative works (forks) are explicitly allowed by the GPL, please don't submit them to AppStore and Google Play. Due to a conflict between GPL and AppStore and Google Play terms of service, GPL-licensed apps are banned from AppStore and Google Play. For the same reason, Open Source VPN cannot accept code contributions.

For commercial licensing or custom modifications, please contact us.

About

License:GNU General Public License v3.0


Languages

Language:C 53.1%Language:C++ 21.2%Language:Assembly 11.2%Language:Perl 9.3%Language:Shell 2.5%Language:Makefile 0.8%Language:Python 0.6%Language:CMake 0.2%Language:M4 0.2%Language:xBase 0.2%Language:TypeScript 0.2%Language:HTML 0.2%Language:Java 0.1%Language:Batchfile 0.1%Language:AGS Script 0.0%Language:Meson 0.0%Language:Roff 0.0%Language:Objective-C++ 0.0%Language:eC 0.0%Language:Dockerfile 0.0%Language:Objective-C 0.0%Language:Pawn 0.0%Language:Common Lisp 0.0%Language:GDB 0.0%Language:SourcePawn 0.0%Language:SWIG 0.0%Language:JavaScript 0.0%Language:Starlark 0.0%Language:Ruby 0.0%Language:SmPL 0.0%Language:Tcl 0.0%