No description
Find a file
xtcnet 376d27367c fix(install): remove duplicate act_runner prefix in runner commands
gitea/act_runner sets act_runner as the container entrypoint, so the
register and daemon subcommands must be passed directly without the
binary name prefix.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 23:20:05 +07:00
.agents/skills fix(wireguard): isolate user data by owner_user_id 2026-03-10 10:39:46 +07:00
.github feat: switch Docker registry from ghcr.io to Forgejo (src.d3v.ac) 2026-03-17 23:07:41 +07:00
backend feat(wg-public): add file manager UI with upload, rename, delete 2026-03-17 21:57:49 +07:00
docker Refactor: Standardize units to GB/MB, fix Dashboard live traffic aggregation, and optimize WireGuard client layout with expanded actions. 2026-03-10 19:02:44 +07:00
docs feat: implement wireguard multi-server UI and backend logic 2026-03-08 09:33:24 +07:00
frontend feat(wg-public): add file manager UI with upload, rename, delete 2026-03-17 21:57:49 +07:00
scripts Initial commit for D3V-NPMWG 2026-03-07 20:49:44 +07:00
test feat: implement wireguard multi-server UI and backend logic 2026-03-08 09:33:24 +07:00
.cursorrules feat: implement wireguard multi-server UI and backend logic 2026-03-08 09:33:24 +07:00
.dockerignore Refactor: Standardize units to GB/MB, fix Dashboard live traffic aggregation, and optimize WireGuard client layout with expanded actions. 2026-03-10 19:02:44 +07:00
.gitattributes Fix CRLF: add .gitattributes + fix s6 permissions in Dockerfile 2026-03-07 21:50:09 +07:00
.gitignore Initial commit for D3V-NPMWG 2026-03-07 20:49:44 +07:00
.version Initial commit for D3V-NPMWG 2026-03-07 20:49:44 +07:00
AI_CONTEXT.md feat: implement wireguard multi-server UI and backend logic 2026-03-08 09:33:24 +07:00
install.sh fix(install): remove duplicate act_runner prefix in runner commands 2026-03-17 23:20:05 +07:00
LICENSE Initial commit for D3V-NPMWG 2026-03-07 20:49:44 +07:00
README.md docs: update README for Forgejo migration and new features 2026-03-17 23:13:01 +07:00

D3V-NPMWG — xGat3 + WireGuard VPN

A powerful, all-in-one Docker container that combines xGat3 (reverse proxy with SSL) and WireGuard VPN management in a single web interface.

Features

xGat3

  • Reverse proxy management with SSL (Let's Encrypt)
  • Proxy hosts, redirection hosts, streams, and 404 hosts
  • Access control lists and audit logging

WireGuard VPN Manager

  • Create, enable, disable, and delete VPN clients
  • QR code generation for mobile clients
  • Download .conf configuration files
  • Real-time client status (connected, idle, data transfer)
  • Client expiration support
  • Auto-sync WireGuard configs
  • Client isolation (block inter-client traffic)
  • Encrypted per-client file storage

Forgejo Integration (optional)

  • Self-hosted Git server on the same VPS
  • Accessible only via domain through NPM proxy
  • CI/CD via Forgejo Runner for automated Docker builds

Quick Start

curl -sSL https://src.d3v.ac/xtcnet/D3V-Server/raw/branch/master/install.sh -o install.sh
chmod +x install.sh
sudo ./install.sh

Menu options:

  • 1 Install D3V-NPMWG
  • 2 Uninstall D3V-NPMWG
  • 3 Uninstall D3V-NPMWG + Docker (Purge)
  • 4 Reset Admin Password
  • 5 Update D3V-NPMWG
  • 6 Manage Custom Stream Ports
  • 7 Toggle Admin Port 81 (Block/Unblock)
  • 8 Forgejo → Install / Uninstall / Update / Install Runner / Uninstall Runner

You can also run commands directly:

sudo ./install.sh {install|uninstall|purge|reset|update|manage-ports|toggle-port|forgejo}

Manual Docker Compose

services:
  d3v-npmwg:
    image: src.d3v.ac/xtcnet/d3v-server:latest
    container_name: d3v-npmwg
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1
    ports:
      - "80:80"
      - "81:81"
      - "443:443"
      - "51820-51830:51820-51830/udp"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
      - ./wireguard:/etc/wireguard
    environment:
      WG_HOST: "your.server.ip"   # REQUIRED

Environment Variables

Variable Default Description
WG_HOST (required) Public IP or domain of your server
WG_ENABLED true Enable/disable WireGuard
WG_PORT 51820 WireGuard UDP listen port
WG_DEFAULT_ADDRESS 10.8.0.0/24 VPN subnet CIDR
WG_DNS 1.1.1.1, 8.8.8.8 DNS servers for VPN clients
WG_MTU 1420 MTU value
WG_ALLOWED_IPS 0.0.0.0/0, ::/0 Default allowed IPs for clients
WG_PERSISTENT_KEEPALIVE 25 Keepalive interval in seconds

Ports

Port Protocol Description
80 TCP HTTP
81 TCP Admin Web UI
443 TCP HTTPS
5182051830 UDP WireGuard Multi-Server

Building from Source

git clone https://src.d3v.ac/xtcnet/D3V-Server.git
cd D3V-Server

cd frontend && yarn install && yarn locale-compile && yarn build && cd ..
docker build -t d3v-npmwg -f docker/Dockerfile .

CI/CD

Pushes to master that touch backend/, frontend/, or docker/ automatically build and push the Docker image to src.d3v.ac/xtcnet/d3v-server:latest via Forgejo Actions.


Requirements

  • Docker with Linux containers
  • Host kernel with WireGuard support (Linux 5.6+)
  • NET_ADMIN and SYS_MODULE capabilities
  • net.ipv4.ip_forward=1

Credits

  • xGat3 — Original proxy manager
  • wg-easy — WireGuard management inspiration

License

MIT License