---
title: Main page
layout: plain
navbar:
link: Project
links:
- {rel: stylesheet, href: assets/css/pre_overlay.css}
scripts:
# ipaddr.js is buggy: https://github.com/whitequark/ipaddr.js/issues/160.
# TODO: revert back to using ipaddr.js if it's fixed?
#- {src: 'https://cdn.jsdelivr.net/npm/ipaddr.js@2.0.1/ipaddr.min.js'}
# This is the "browserified" replacement, ip-address. This bundling procedure
# fucking sucks, but it's the best I've got for now.
- {src: assets/js/bundle.js}
- {src: 'https://cdn.jsdelivr.net/npm/qrious@4.0.2/dist/qrious.min.js'}
- {src: assets/js/main.js}
params:
- id: server
desc: Server
items:
- id: server_public
name: Public key
placeholder: "Server's public key"
help: |
Query using wg show wg0 public-key
example: iNqGDQ2tltbSN4s3Fpb/7PRc2OSwR3/bPjOrf8V/SmA=
- id: server_endpoint
name: Endpoint
placeholder: "Server's endpoint in the HOST:PORT format"
help: |
Server's public IP address or a hostname.
Query the port using wg show wg0 listen-port
example: 123.123.123.123:123
- id: preshared
name: Preshared key
placeholder: Preshared key (shared between server and client)
help: |
Generate using wg genpsk
example: Moshdr8RNfYUWG/0MVOlglzlze3beATD6YumDwCZf5E=
- id: client
desc: Client
items:
- id: client_public
name: Public key
placeholder: "Client's public key"
help: |
Generate both keys using wg genkey | tee private.key | wg pubkey > public.key
example: hvfo/MgizTRbrktfx3k2Q0Ib0mx0P2N6LRZEYWqkpXc=
- id: client_private
name: Private key
placeholder: "Client's private key"
help: |
Unless generated in one go with the public key, generate one using wg genkey
example: qKgmDq8HWaU432qJhEa2Q6pE52P55xBHNOgzB0roP3A=
- id: client_ipv4
name: IPv4
placeholder: Address and netmask, like 192.168.123.123/24
help: |
IPv4 address to assign to the client and its netmask in the CIDR format.
example: 192.168.123.123/24
- id: client_ipv6
name: IPv6
placeholder: Address and netmask, like fd::192.168.123.123/48
help: |
IPv6 address to assign to the client and its netmask in the CIDR format.
example: fd01:2345:6789::192.168.123.123/48
- id: keepalive
name: Keepalive
default: 25
placeholder: Seconds between keepalive packets, typically 25
help: |
Time to wait between sending keepalive packets, seconds.
example: 25
advanced: true
- id: tunnel_everything
name: Tunnel all traffic
type: checkbox
default: false
advanced: true
- id: dns_ipv4
name: DNS (IPv4)
default: 1.1.1.1,1.0.0.1
placeholder: IPv4 addresses of DNS servers
help: |
Comma-separated list of IPv4 addresses to use as DNS servers.
example: 1.1.1.1,1.0.0.1
advanced: true
- id: dns_ipv6
name: DNS (IPv6)
default: 2606:4700:4700::1111,2606:4700:4700::1001
placeholder: IPv6 addresses of DNS servers
help: |
Comma-separated list of IPv6 addresses to use as DNS servers.
example: 2606:4700:4700::1111,2606:4700:4700::1001
advanced: true
---
This page assumes that you have a WireGuard server
configured on interface wg0.
You can then generate the new client's keys, feed them to this page and it will
show configuration files that can be used by the client.
Take a look at an example configuration to learn more.