Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/libreservice/my_ovpn
OpenVPN configuration generator.
https://github.com/libreservice/my_ovpn
naive-ui openvpn pwa saas vue wasm
Last synced: about 1 month ago
JSON representation
OpenVPN configuration generator.
- Host: GitHub
- URL: https://github.com/libreservice/my_ovpn
- Owner: LibreService
- License: agpl-3.0
- Created: 2022-09-13T00:56:01.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-06-10T18:20:47.000Z (over 1 year ago)
- Last Synced: 2024-10-06T17:35:25.990Z (3 months ago)
- Topics: naive-ui, openvpn, pwa, saas, vue, wasm
- Language: Vue
- Homepage: https://my-ovpn.vercel.app/
- Size: 84 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# My OVPN
![](https://img.shields.io/github/license/LibreService/my_ovpn)Generate CA, server and client configuration for OpenVPN.
https://my-ovpn.vercel.app/
This is a **STATIC** website so you **DON'T** need to own a server to host it.
All computation is performed in browser, thanks to Web Assembly.
It's also a [PWA](https://web.dev/progressive-web-apps/), so you can install it like a native App and use it **OFFLINE**.
## Use case
### CA
* Generate `ca.key` and `ca.crt`.
### Server
* Given `ca.key` and `ca.crt`, generate `server.key` and `server.crt`.
* Generate `dh2048.pem` (extremely slow).
* Generate `ta.key` to be shared with every client.
* Generate `server.conf`.
### Client
* Given `ca.key` and `ca.crt`, generate `client.key` and `client.crt`.
* Generate `client.ovpn`.
* Embed `ca.crt`, `client.key`, `client.crt` and `ta.key` into `client.ovpn` (useful for Android and iOS).## Self host
Download latest [artifact](https://github.com/LibreService/my_ovpn/releases/download/latest/my-ovpn-dist.zip) built by GitHub Actions.## Development workflow
My OVPN can be built on Linux and macOS.For Windows, you may use WSL.
### Install node
You may use [nvm](https://github.com/nvm-sh/nvm) to install node.
### Install pnpm and dev dependencies
```sh
npm i -g pnpm
pnpm i
```
### Install emsdk
https://emscripten.org/docs/getting_started/downloads.html
### Get submodule
```sh
git submodule init
git submodule update
```
### Build wasm
```sh
pnpm run lib
pnpm run wasm
```
### Run develop server
```sh
pnpm run dev
```
### Lint
```sh
pnpm run lint:fix
```
### Check type
```sh
pnpm run check
```
### Build
```sh
pnpm run build
```
### Test
```sh
pnpm run test
```
### Preview
```sh
pnpm run preview
```
### Deploy
```sh
export LIBRESERVICE_CDN=https://cdn.jsdelivr.net/npm/@libreservice/my-ovpn@VERSION/dist/ # optional
vercel build --prod
vercel deploy --prebuilt --prod
```## License
AGPLv3+