From 07a784f0d654fcd552069e85b314ea7c29cb5dd6 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sat, 6 Jun 2026 22:18:37 +0200 Subject: move Jekyll source files to src/ --- src/index.html | 187 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 src/index.html (limited to 'src/index.html') diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..8ad2cfd --- /dev/null +++ b/src/index.html @@ -0,0 +1,187 @@ +--- +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 +--- +

{{ site.settings.project.name }}

+ +
+
+

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.

+{% assign example_url = '?' %} +{% assign first = true %} +{% for grp in page.params %} + {% for param in grp.items %} + {% unless first %} + {% capture example_url %}{{ example_url }}&{% endcapture %} + {% endunless %} + {% assign first = false %} + {% capture example_url %}{{ example_url }}{{ param.id }}={{ param.example | url_encode }}{% endcapture %} + {% endfor %} +{% endfor %} +{% assign example_url = example_url | escape_uri | baseurl %} +

Take a look at an example configuration to learn more.

+
+
+ +
+
+{% for grp in page.params %} +
+
+
+
+

{{ grp.desc }}

+
+
+ {% for param in grp.items %} + {% assign type = param.type | default: "text" %} + {% if type == "text" %} + + {% endif %} + {% if type == "checkbox" %} + + {% endif %} + {% endfor %} +
+
+{% endfor %} +
+
+
+
+
+ +
+
+
+
+
+
+ + + + + +
+
+
+
+
+ +
-- cgit v1.3