- Establishes a VPN connection using WireGuard, with all traffic controlled server-side.
- Uses
tcand theifbmodule on the server to enforce both upload and download bandwidth limits. - Bandwidth is limited to 128 kbps for both upload and download.
- Easily and quickly deployable via Next.js and Docker.
- User information is managed using Firebase Authentication.
- Provides management APIs to check and disconnect active sessions.
- Web interface is multilingual.
- Enables HTTPS communication via Nginx as a reverse proxy.
- Requires Linux to utilize network control features like
tcandifb. - Docker is required to run the application.
- You must obtain the Firebase Client SDK config and Admin SDK config in advance and set them in the
.envfile. - To use the management API, a shared secret must be set in the
.envfile.
Install Docker
curl https://get.docker.com | sudo shLoad ifb and act_mirred, ip_tables module
sudo modprobe ifb
sudo modprobe act_mirred
sudo modprobe ip_tablesCopy the .env.sample file and fill in the required information
cp .env.sample .envPlease place the private key (privkey.pem) and the server certificate issued by a certificate authority such as Let's Encrypt + intermediate certificate (fullchain.pem) in the nginx directory.
(In a development environment, use mkcert to generate the certificate.)
cp /path/to/privkey.pem nginx/privkey.pem
cp /path/to/fullchain.pem nginx/fullchain.pemBuild (Dev)
sudo docker compose -f compose.dev.yml up -d
sudo docker compose -f compose.dev.yml downBuild (Prod)
sudo docker compose up -d
sudo docker compose downBuild only app (Prod)
sudo docker compose up -d app
sudo docker compose downImportant
The GUI works perfectly, but the VPN is not available.
Copy the .env.sample file and fill in the required information
cp .env.sample .envPlease start DevContainer.
Change to the src/ directory
cd src/Install dependencies
npm installBuild (Dev)
npm run devBuild (Prod)
npm run build
npm run start
