No description
Find a file
xtcnet 23f197aeb1
Some checks failed
Docker Cloud Build / Build & Publish Image (push) Failing after 36m19s
feat: auto-tune swap and Node.js memory based on VPS RAM
install.sh: detect RAM at runner install time and create swap only when
needed (<2GB → 2G swap, 2-4GB → 1G swap, >4GB → no swap).

workflow: detect RAM at build time and set NODE_OPTIONS accordingly
(<2GB → 768MB, 2-4GB → 1536MB, >4GB → 3072MB).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 23:30:17 +07:00
.agents/skills fix(wireguard): isolate user data by owner_user_id 2026-03-10 10:39:46 +07:00
.github feat: auto-tune swap and Node.js memory based on VPS RAM 2026-03-17 23:30:17 +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 feat: auto-tune swap and Node.js memory based on VPS RAM 2026-03-17 23:30:17 +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