Skip to content

Repository files navigation

UltraVPN

Family-friendly VPN management platform that combines two anti-censorship transports — anYTransportProxy (slow but stable) and whitelist-bypass (fast but less stable) — into a single dashboard with smart auto-failover.

Built for Russian users facing whitelist-based internet censorship. One admin manages everything; family members get a dead-simple one-click client.

Features

  • Dual-transport architecture — whitelist-bypass (fast, via VK/Telemost/WB Stream) + YTP (stable, via cloud storage providers)
  • Smart auto-failover — automatically switches from whitelist-bypass to YTP when the fast channel degrades
  • Multi-exit nodes — servers in Germany, Norway, Finland, etc.
  • Admin dashboard — full management: servers, clients, transports, logs, firewall, diagnostics
  • Client view — one-click connect, no technical knowledge needed
  • Real-time updates — WebSocket (Socket.IO) for live traffic, health, and notifications
  • Health monitoring — periodic server health checks with degraded/healthy/down states
  • Docker/systemd deploy — one-click server deployment with generated configs
  • Dark/Light/System theme — full theme support via next-themes
  • Export/Import — full config backup and restore as JSON
  • Client setup guide — step-by-step instructions for Android, iOS, Windows, macOS, Linux

Quick Start

One-liner install (Ubuntu)

git clone https://github.com/meanwebuser/UltraVPN.git
cd UltraVPN
./scripts/install.sh

Manual install

# 1. Install Bun
curl -fsSL https://bun.sh/install | bash

# 2. Clone and enter project
git clone https://github.com/meanwebuser/UltraVPN.git
cd UltraVPN

# 3. Install dependencies
bun install
cd mini-services/realtime-service && bun install && cd ../..

# 4. Configure environment
cp .env.example .env
# Edit .env with your settings

# 5. Initialize database
bun run db:push
bun run db:generate

Start / Stop

./scripts/start.sh    # Start all services (main + realtime + caddy)
./scripts/stop.sh     # Stop all services

Or run individually:

bun run dev           # Start Next.js dev server on port 3000
cd mini-services/realtime-service && bun run dev  # Socket.IO on port 3003

Access

Service URL
Dashboard http://localhost:3000
Via Caddy proxy http://localhost:81
Realtime (Socket.IO) ws://localhost:3003

Default login: admin / ultravpn2024

Tech Stack

Layer Technology
Framework Next.js 16 (App Router)
Language TypeScript 5
Styling Tailwind CSS 4 + shadcn/ui
Database SQLite via Prisma ORM
State Zustand + TanStack Query
Charts Recharts
Animations Framer Motion
Real-time Socket.IO
Reverse Proxy Caddy
Runtime Bun

Project Structure

├── prisma/
│   └── schema.prisma          # Database schema (7 models)
├── src/
│   ├── app/
│   │   ├── api/               # 20+ REST API routes
│   │   │   ├── auth/          # Login, logout, session
│   │   │   ├── servers/       # CRUD + health
│   │   │   ├── clients/       # CRUD + bandwidth
│   │   │   ├── transport-configs/
│   │   │   ├── connections/
│   │   │   ├── logs/
│   │   │   ├── stats/
│   │   │   ├── health-check/
│   │   │   ├── export/        # Config export
│   │   │   ├── import/        # Config import
│   │   │   ├── deploy/        # Docker/systemd generation
│   │   │   ├── docker-compose/
│   │   │   ├── diagnostics/
│   │   │   ├── firewall-rules/
│   │   │   ├── speed-test/
│   │   │   ├── ytp-nodes/     # YTP node management
│   │   │   ├── ytp-providers/
│   │   │   ├── wb-relays/     # WB relay management
│   │   │   ├── wb-platforms/
│   │   │   └── audit-log/
│   │   ├── layout.tsx
│   │   └── page.tsx           # Main SPA page
│   ├── components/
│   │   ├── ui/                # shadcn/ui components
│   │   └── vpn/               # App-specific components
│   │       ├── dashboard.tsx
│   │       ├── client-view.tsx
│   │       ├── servers.tsx
│   │       ├── clients.tsx
│   │       ├── transports.tsx
│   │       ├── traffic-monitor.tsx
│   │       ├── logs.tsx
│   │       ├── settings.tsx
│   │       ├── login.tsx
│   │       ├── store.ts       # Zustand global store
│   │       └── ...            # 20+ components
│   ├── hooks/
│   │   ├── use-realtime.ts    # Socket.IO hook
│   │   ├── use-mobile.ts
│   │   └── use-toast.ts
│   └── lib/
│       ├── db.ts              # Prisma client
│       └── utils.ts           # Tailwind utils
├── mini-services/
│   └── realtime-service/      # Socket.IO server (port 3003)
├── scripts/
│   ├── install.sh             # Ubuntu install script
│   ├── start.sh               # Start all services
│   └── stop.sh                # Stop all services
├── Caddyfile                  # Reverse proxy config
├── .env.example               # Environment template
└── ARCHITECTURE.md            # Detailed architecture docs

How It Works

UltraVPN sits between your devices and the censored internet. It manages two types of anti-censorship tunnels:

  1. whitelist-bypass (fast) — Tunnels SOCKS5 traffic through whitelisted video call platforms (VK Calls, Yandex Telemost, Wildberries Stream). These platforms are on Russia's whitelist, so traffic flows freely. Speeds up to ~20 Mbps.

  2. anYTransportProxy (stable) — Tunnels data through cloud storage providers (VK Documents, OK Photos, Yandex Disk, Telegram) using steganographic encoding. Slower (~1-5 Mbps) but extremely resilient.

When whitelist-bypass degrades or drops, UltraVPN automatically fails over to YTP. When the fast channel recovers, it switches back. Family members just click "Connect" — the system handles everything.

API Overview

All endpoints are RESTful JSON APIs under /api/:

Method Endpoint Description
POST /api/auth/login Authenticate, get session token
GET /api/auth/session Validate session
GET /api/servers List all servers
POST /api/servers Create server
GET /api/clients List all clients
GET /api/stats Dashboard statistics
GET /api/health-check Run health checks
GET /api/export Export all config as JSON
POST /api/import Import config from JSON
POST /api/deploy Generate Docker/systemd configs
GET /api/diagnostics System diagnostics
GET /api/logs Connection logs with filters

Full API documentation available in ARCHITECTURE.md.

License

MIT

About

Ideal VPN for family - combining YTP and whitelist-bypass with admin dashboard and client UI

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages