Sign inSign up

kaisatoshi/wg-easy-custom

By kaisatoshi

•Updated 5 months ago

Wg-easy v14 fork with client expiry. Set lifetime per client, auto-disable, HTTP no domain.

Image
Networking
Security
0

950

kaisatoshi/wg-easy-custom repository overview

⁠wg-easy-custom

A fork of wg-easy v14⁠ with client expiry management — set a lifetime for each WireGuard client directly from the UI.

Works over HTTP without a domain (unlike v15 which requires HTTPS).


⁠What's new

  • Expiry on creation — set days / hours / minutes when creating a client (optional, leave empty for unlimited)
  • Extend or reset — calendar button on each client opens a modal to add time from now
  • Auto-disable — expired clients are automatically disabled every minute
  • Smart toggle — manually enabling an expired client makes it permanent (∞)
  • Two quick actions in the expiry modal:
    • ⛔ Reset time — clears expiry and disables the client (revoke access)
    • ∞ Make permanent — clears expiry, client keeps running
  • Visual status badge — ⏳ 3 d. 2 h. / ⏳ 45 min. / ⛔ Expired / ∞
  • Expired rows are dimmed (opacity) for easy identification

⁠Quick start

services:
  wg-easy:
    image: kaisatoshi/wg-easy-custom:latest
    container_name: wg-easy
    environment:
      - LANG=en
      - WG_HOST=YOUR_SERVER_IP
      - PASSWORD_HASH=$$2a$$12$$YOUR_BCRYPT_HASH
    volumes:
      - etc_wireguard:/etc/wireguard
    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

volumes:
  etc_wireguard:
⁠Generate password hash
docker run --rm ghcr.io/wg-easy/wg-easy:14 wgpw 'YOUR_PASSWORD'

Note: Every $ in the hash must be doubled ($$) in the compose file.


⁠Environment variables

VariableDefaultDescription
WG_HOST—⚠️ Required. Your server's public IP or hostname
PASSWORD_HASH—Bcrypt hash of the UI password (double the $)
LANGenUI language (en, ru, de, ua and more)
WG_PORT51820WireGuard UDP port
WG_DEFAULT_DNS1.1.1.1DNS for clients
WG_DEFAULT_ADDRESS10.8.0.xClient IP range
WG_MTU1420MTU value
UI_TRAFFIC_STATSfalseShow traffic charts

⁠Requirements

  • Docker 20+
  • Linux with WireGuard kernel module (wireguard-tools)
  • No domain required — works on plain IP over HTTP

⁠Based on

wg-easy⁠ v14 by WeeJeWel⁠ — MIT License

⁠Source

GitHub: KaiSatoshi/wg-easy-custom⁠

Tag summary

Content type

Image

Digest

sha256:97e430610…

Size

58.9 MB

Last updated

5 months ago

docker pull kaisatoshi/wg-easy-custom