How it fits together
IPC Terminal connects your cameras and the people who watch them through a private server that you own. Everything is encrypted with WireGuard, and the server only passes traffic between your own devices. It never sends anything to the internet.
The four kinds of device
Every device that joins your network is a peer. It has its own key pair and gets a fixed address from a range that depends on its role:
| Role | What it is | Address range* | What it can reach |
|---|---|---|---|
| Server | The hub you build with the builder | .1 | Only answers tunnel traffic |
| Box | Next to the cameras: the recorder PC, or a small gateway | .2 – .99 | Nothing on its own. Viewers connect to it. |
| Viewer | People who watch live video and playback | .100 – .199 | Boxes, on the camera ports you allow |
| Admin | A viewer who may also use Remote Desktop or server SSH | .200 – .254 | Same as viewer, plus RDP (if enabled) and SSH |
*Inside the private network, which defaults to 10.77.0.0/24. Viewers cannot reach each other, and boxes cannot start connections to viewers.
Two ways to build a site
The recorder PC is the box
Install WireGuard on the Windows PC that already runs your recorder software. Viewers connect to that PC’s tunnel address. Nothing else to buy or install, and the camera network can keep its own address range.
A small gateway on the camera network
A mini-PC or Raspberry Pi running Linux sits next to the cameras and forwards tunnel traffic to them, so viewers can reach every camera and recorder on that LAN by its normal address. Each site needs a different LAN address range.
Where things stand: the server builder is ready now. A dedicated Windows client and a ready-made box image are still in development, so this guide uses the standard, free WireGuard app for the peers. They will keep working when the dedicated client arrives.
Before you start
Gather these first. You can follow every step below with just this list.
- A place to run the server. This can be a small PC or mini-PC with at least 1 GB of RAM, a rack server, or a hosting provider that lets you boot your own ISO image (custom ISO upload or virtual media). The server runs entirely from memory.
- A public address for it. A fixed IP or a hostname that points to it. Behind a home or office router, you must forward one UDP port (default 51820) to the server.
- A build machine running Debian 13 (Trixie) with sudo access, about 15 GB free disk space and an internet connection. A virtual machine works. This is only used to create the server image, not to run it.
- One or two USB sticks (4 GB or more) to put the image on, unless your provider boots ISO files directly. A second stick is needed if you choose the safer key-on-USB option.
- The WireGuard app on every other device. Download it from wireguard.com/install. It exists for Windows, macOS, Linux, iOS and Android.
- A list of who and what will connect: which sites (boxes), which people (viewers), and who needs admin rights.
Never email or paste a private key. Each device creates its own key pair. You only ever share the public key, which is safe. The builder website cannot see your private keys and never needs them.
Quick start
The whole process in eight lines. Each step has a full section below.
Create a key pair on every device
On each box, viewer and admin device, using the WireGuard app. Copy down the public key of each. Details →
Answer the questions at build.ipcterminal.com
Name, network, port, key delivery, allowed ports, SSH, hardening, and paste the public keys. Details →
Download the build script and run it on Debian 13
It creates the server key on your machine, builds the image and prints the server public key. Details →
Back up the
secretsfolderKeep it offline. It is the identity of your server. Details →
Write the image to a USB stick and boot the server
Open the UDP port. Details →
Finish each peer’s configuration
Add the server’s public key, its address and the peer’s assigned tunnel address. Boxes → Viewers →
Test
Ping the server, then the box, then open a camera. Details →
Keep the Peers file
It is how you add or remove devices later. Details →
Create a key pair on every device
The server needs to know every peer’s public key when it is built. So create the keys first. If you forget one, you can always add it later by rebuilding (see Add peers & update).
On Windows, macOS, iOS or Android
Open the WireGuard app
Choose Add Tunnel → Add empty tunnel… (on Windows) or the equivalent Create from scratch (mobile and Mac).
Give it a name
Use something meaningful such as
site-malmooralice-laptop.Copy the public key
The app creates a key pair automatically and shows Public key, a 44-character string ending in
=. Copy it and keep it with the device’s name. Do not close this window yet. You will come back and finish this tunnel in step 5 or step 6.
On Linux
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
cat publickeyKeep privatekey on the device. Send only the contents of publickey.
Tip: keep a simple list as you go: role, name, public key. For example: box, site-malmo, AbC…=. You will paste this list into the builder.
Answer the builder
Open build.ipcterminal.com. It asks one question at a time and everything happens in your browser. Nothing is uploaded. Here is what each question means and what to answer if you are unsure.
| Question | What it means | Good default |
|---|---|---|
| Server name | A label for this customer or location. It becomes the folder name. | The customer’s name |
| Architecture | The CPU of the server. Most PCs and VPS are x86_64. Raspberry Pi 4/5 and Ampere servers are ARM64. | x86_64 |
| Network | DHCP takes its address from the network. Static needs an address like 203.0.113.10/24, a gateway and DNS. | DHCP on a LAN, static on a rack or VPS |
| UDP port | The one port the server listens on. This is the only port you open. | 51820 |
| Overlay network | The private address range inside the tunnel. It must be a /24 and must not clash with a real network you want to reach. | 10.77.0.0/24 (change it if 10.77.x.x is already in use) |
| MTU | The largest packet through the tunnel. Lower it on mobile, PPPoE or double-NAT links if video stutters. | 1420 |
| Public IP or hostname | Where peers will find the server. Only printed in your guide so that you can copy it later. | Your DNS name or fixed IP |
| Key delivery | Embedded: the server key is inside the image, so the image itself is a secret and the server boots unattended. Separate USB: the image holds no secrets, but someone must insert a USB stick labelled IPCKEYS at every boot. | Embedded for unattended sites, USB for the highest security |
| Traffic ports | What viewers may send to the cameras. Everything else is dropped by the server firewall. RTSP 554, HTTP 80, HTTPS 443 and the Hikvision SDK port 8000 are on by default. RDP 3389 is for admins only. | Leave the defaults. Add RDP only if you will use Remote Desktop. |
| Extra TCP ports | Any other ports your equipment uses. Dahua uses 37777 for its main service. Some cameras use 8080 or 8554. | Dahua: 37777. Otherwise empty. |
| Admin SSH | Lets an admin log in to the server through the tunnel, with a key, to look at status. Without it the server has no login at all and is changed only by rebuilding. | Headless unless you need to inspect it |
| Hardening | Extra protection layers. All are on by default, and you should leave them. | Keep the defaults. Turn on Preshared keys if you want one more layer. |
| Peers | Paste the public keys you collected in step 1. See below. |
Pasting peers
At the peers step, paste your list. The simplest format is one public key per line, with a default role chosen from the dropdown. For more control, use one line per peer in this form:
box,site-malmo,<44-character public key>
viewer,alice,<44-character public key>
admin,ops,<44-character public key>
box,site-lund,<44-character public key>,,192.168.50.0/24- The address is optional. Leave it empty and the builder assigns the next free one for the role.
- Routes are only for Option B gateways. They are the camera LAN behind the box, for example
192.168.50.0/24. Use a semicolon to list more than one. Only private ranges between /16 and /32 are accepted, and two boxes cannot share a range. - You can also paste a whole client config. The builder works out its public key locally and throws the private key away. You can paste the Peers file or an old build script from a previous build to carry over everything.
Write down each peer’s address. After you generate the build, open the Peers file tab. The fourth column is the tunnel address each device must use in its own configuration.
Finish by choosing Generate build guide & script. You get three things: a build guide, the script (download it) and the Peers file (save it).
Build the server image
Do this on your Debian 13 build machine. The builder shows the exact commands with your own file names, so copy them from there. This is what they do:
Install the build tools
Terminalsudo apt update sudo apt install -y live-build debootstrap squashfs-tools xorriso wireguard-tools openssh-client git curl gnupgFor an ARM64 server built on a normal PC, the guide also adds
qemu-user-static binfmt-support. That build is much slower.Run the script as root
Terminalchmod +x ~/Downloads/build-ipc-name.sh sudo ~/Downloads/build-ipc-name.shThe script creates a folder
~/ipc-name, makes the server key on your machine, writes every configuration file and asksRun the build now? [y/N]. Typey. A build takes 20–60 minutes.Write down the server public key
Near the end the script prints a box containing the Server public key, the listen port, the overlay network and the endpoint. Every peer needs the first and the last.
Back up the
secretsfolderDo this now.
~/ipc-name/secretsholds the server private key (and the SSH host key and preshared keys, if you use them). Copy it to encrypted offline storage. If you lose it, every peer has to be reconfigured. Rebuilds reuse it automatically, which is how an update keeps the same server identity.Check the files
Terminalcd ~/ipc-name && sha256sum -c SHA256SUMSEvery line should say
OK. The finished image islive-image-amd64.hybrid.iso(orarm64) in the same folder, and its checksum is inISO.sha256.
Boot the server
Write the image to a USB stick
Or attach the ISO as virtual media if your provider or server supports it.
Terminallsblk sudo dd if=~/ipc-name/live-image-amd64.hybrid.iso of=/dev/sdX bs=4M status=progress conv=fsyncThis erases the target. Replace
sdXwith the whole USB device you identified withlsblk, for example/dev/sdb, never a partition and never your own system disk. If you are not certain, stop and check the size and name inlsblkagain.On Windows or macOS you can use a tool such as balenaEtcher or Rufus to write the same ISO file (use “DD image” mode in Rufus).
If you chose “Separate USB stick”, prepare the key stick
Use a second stick. The label must be exactly
IPCKEYS.Terminalsudo mkfs.vfat -F 32 -n IPCKEYS /dev/sdY1 sudo mkdir -p /mnt/ipckeys && sudo mount /dev/sdY1 /mnt/ipckeys sudo cp -r ~/ipc-name/secrets/. /mnt/ipckeys/ sudo umount /mnt/ipckeysKeep this stick offline except while the server boots. The server waits up to 15 minutes for it, copies the keys into memory and unmounts it, and then you can take it out.
Boot the server from the stick
Plug the stick into the server and choose it in the boot menu (UEFI or BIOS). The system loads completely into RAM, so the server needs at least 1 GB. Leave the stick plugged in if you can: after a power cut the server will come back on its own.
If a server refuses to boot with Secure Boot enabled, turn Secure Boot off in its firmware settings. The image is not signed for it.
Open the UDP port
Allow UDP 51820 (or the port you picked) to the server, and nothing else. On a router, forward that port to the server’s address. On a hosting provider, add it to the firewall or security group.
Point a name at it
Create a DNS record for your hostname, or use the fixed public IP. This is the Endpoint the peers will use, for example
vpn.example.com:51820.
Connect a site (box)
Pick one of the two options. You will need three things from the earlier steps: the server public key, the endpoint and the tunnel address the Peers file gave this box.
Option A: the recorder PC is the box (Windows)
Open the tunnel you created in step 1
In the WireGuard app select the tunnel and choose Edit. Leave the
PrivateKeyline exactly as the app made it, and add the rest:WireGuard config[Interface] PrivateKey = (leave the line the app generated) Address = 10.77.0.2/32 MTU = 1420 [Peer] PublicKey = <SERVER public key from the build> Endpoint = vpn.example.com:51820 AllowedIPs = 10.77.0.0/24 PersistentKeepalive = 25Keep
AllowedIPsto the tunnel network only. Never use0.0.0.0/0. It would try to send all your internet traffic into the tunnel. The server would drop it anyway, but the PC would lose its internet.Save and activate
Click Save, then Activate. After a few seconds the status should show a latest handshake.
Allow the recorder software through Windows Firewall
Windows treats the tunnel as a public network, so rules written only for “Private” networks will not apply. Create an inbound rule that allows your recorder’s ports (for example TCP 80, 443, 554, 8000 and, if you use admin Remote Desktop, 3389) and limit it to the remote address range
10.77.0.0/24.Remote Desktop can only be hosted on Windows Pro or higher, not Windows Home.
Make it start by itself
For a recorder that must reconnect after every reboot, install the tunnel as a Windows service. Run this in an administrator Command Prompt, using the full path to a saved copy of the config file:
Command Prompt (admin)"C:\Program Files\WireGuard\wireguard.exe" /installtunnelservice "C:\path\to\site-malmo.conf"Delete the loose
.confcopy afterwards, because it contains the private key.
Option B: a gateway on the camera network (Linux)
Use a mini-PC or Raspberry Pi running Debian or Ubuntu, connected to the same LAN as the cameras. In this setup the box needs a route: when you pasted its peer in the builder, you added the camera LAN, for example 192.168.50.0/24.
Install WireGuard and create the keys
Terminalsudo apt install -y wireguard iptables umask 077 wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkeyCreate
/etc/wireguard/wg0.confReplace
eth0with the box’s network interface name (seeip -br link) and use your own addresses and keys./etc/wireguard/wg0.conf[Interface] PrivateKey = <contents of /etc/wireguard/privatekey> Address = 10.77.0.3/32 MTU = 1420 PostUp = sysctl -w net.ipv4.ip_forward=1; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] PublicKey = <SERVER public key from the build> Endpoint = vpn.example.com:51820 AllowedIPs = 10.77.0.0/24 PersistentKeepalive = 25The two extra lines let the box pass tunnel traffic on to the cameras and make the cameras see it as coming from the box itself, so the cameras do not need any special route back.
Start it and keep it running
Terminalsudo systemctl enable --now wg-quick@wg0 sudo wg showwg showshould list the server with alatest handshakeof a few seconds ago.
Do not use the same LAN range at two sites when you use gateways. Each box must have its own camera range, because viewers reach cameras by their normal LAN address. Many sites use 192.168.1.0/24. Change one of them, or use Option A for that site, which has no such limit.
Connect viewers and admins
A viewer is configured in the same way as a box. The differences are the address range and AllowedIPs.
Open the tunnel you created in step 1 and edit it
WireGuard config[Interface] PrivateKey = (leave the line the app generated) Address = 10.77.0.100/32 MTU = 1420 [Peer] PublicKey = <SERVER public key from the build> Endpoint = vpn.example.com:51820 AllowedIPs = 10.77.0.0/24, 192.168.50.0/24 PersistentKeepalive = 25- Address: the address from the Peers file. Viewers use .100–.199, admins .200–.254.
- AllowedIPs: the tunnel network, plus the camera LAN of every Option B gateway you want to reach (here
192.168.50.0/24). If you only use Option A boxes, the tunnel network alone is enough.
Save and activate
Turn the tunnel on when you want to view cameras and off when you are done. Everything else on the computer keeps using the normal internet connection.
Open your viewing software
Add the device by IP address, using the box’s tunnel address (Option A) or the camera’s own LAN address (Option B).
What Use Hikvision iVMS-4200 / NVR Add the IP, SDK port 8000, and the device’s user and passwordDahua SmartPSS / NVR Add the IP, port 37777(add it as an extra port in the builder), user and passwordVLC or any RTSP player (Hikvision) rtsp://user:pass@IP:554/Streaming/Channels/101VLC or any RTSP player (Dahua) rtsp://user:pass@IP:554/cam/realmonitor?channel=1&subtype=0Camera web page http://IPorhttps://IPRemote control of the recorder PC (admin) Remote Desktop to the box’s tunnel address, when RDP is enabled in the builder Automatic device search tools (such as Hikvision SADP) only find devices on the same local network, so they will not see devices through the tunnel. Always add them by IP address.
Phones and tablets: the WireGuard app for iOS and Android can import a config by QR code or file. The setup is the same as for a viewer. Make sure the config only lists the tunnel network and camera LANs in AllowedIPs.
Test it
Test in small steps, so that if something fails you know which part. Start from a viewer with its tunnel turned on.
Ping the server
Terminalping 10.77.0.1A reply proves the tunnel itself works. No reply? See no handshake.
Ping the box
Terminalping 10.77.0.2Windows blocks ping by default. If the recorder PC does not answer but the tunnel shows a handshake, go on to the next step and test the real port instead.
Open a camera or the recorder
Use the software from step 6, or open
http://<box or camera address>in a browser.Check the isolation (optional, recommended)
With the tunnel on, check that your public IP address is unchanged by visiting any “what is my IP” page. It must still show your own connection. This confirms that no internet traffic goes through the server.
Check from the server (only if you enabled SSH)
Terminal (admin peer, tunnel on)ssh ipcadmin@10.77.0.1 sudo wg show sudo nft list rulesetYou should see a recent
latest handshakefor each connected peer and aforwardchain that only accepts traffic fromwg0towg0.
Add peers and update the server
The server never changes while it is running, which is what makes it secure. To add or remove a device, change a port, or update the system, you build a fresh image with the same identity and boot it.
Collect the new public keys
Create the key pair on the new device as in step 1.
Open the builder and paste your old peers
At the peers step paste your saved Peers file (or the previous build script). All existing peers come back automatically. Add the new public keys, or remove peers with the × button.
Generate and run the new script on the same build machine
It reuses
secrets/, so the server key does not change and no peer needs updating. If you build somewhere else, copy thesecretsfolder there first.Write the new image and reboot the server
Peers reconnect by themselves, typically within a minute. Save the new Peers file for next time.
Finish the new peer
Give the new device the server public key, the endpoint and its tunnel address, as in steps 5 and 6.
If you change the port, the tunnel network or the MTU, every peer’s own configuration must be updated too. Plan this before you make the change.
Lost or compromised device
Remove its public key at the peers step, rebuild and reboot. From then on it can no longer connect. If a device is stolen, also change the passwords on cameras and recorders that it could reach.
Lost secrets folder
The server can still be rebuilt, but it gets a new key. Every peer must then be given the new server public key. Keeping an offline backup avoids this.
Camera-side tips
The tunnel protects the path between sites and viewers. These settings make the cameras themselves safer:
- Remove the camera’s route to the internet. On an isolated camera LAN, leave the camera’s default gateway empty so it cannot reach vendor servers.
- Turn off cloud and P2P features (for example Hik-Connect, EZVIZ or Dahua P2P) on cameras and recorders. They are not needed with IPC Terminal.
- Change default passwords and use a different strong password per device.
- Prefer RTSP over TCP. It travels cleanly inside the tunnel. Only enable “RTP over UDP” in the builder if you have a specific need, because it weakens isolation.
- Keep firmware up to date by downloading it on a separate machine and uploading it locally.
Troubleshooting
Find the symptom, then work down the list. Start with the first one that matches what you see.
The tunnel is on but there is no “latest handshake”
The peer never reached the server, or the server did not accept it. Check in this order:
- Port. UDP (not TCP) 51820 must be open or forwarded to the server. Test from a different network, such as a phone hotspot.
- Endpoint. The hostname or IP and the port must be exactly right, with no
http://. - Server public key. It must be the one printed by the build script, not the peer’s own key.
- Was the peer in the build? The server only accepts keys that were in the peers list when the image was built. A new device needs a rebuild (see Add peers).
- Is the server running? Did it finish booting? With key-stick mode, it waits for the
IPCKEYSstick. - Hotel or guest Wi-Fi sometimes blocks UDP. Try another network.
Handshake works but I cannot reach a camera or recorder
- Wrong address? Use the box’s tunnel address for Option A, and the camera’s LAN address for Option B.
- Port not allowed. The server firewall only passes the ports chosen in the builder. Dahua needs
37777. Rebuild with the extra port added. - Option B route missing. The camera LAN must be in the box’s routes (builder) and in the viewer’s
AllowedIPs. - Option B forwarding. On the gateway,
sysctl net.ipv4.ip_forwardmust print1and the masquerade rule must exist (sudo iptables -t nat -S). Check thateth0is the right interface name. - Option A firewall. Windows Firewall must allow the recorder’s ports from
10.77.0.0/24on all profiles. - Same address as your own LAN. If your local network also uses the camera’s address range, your computer sends the traffic to the wrong place. Use a different camera range, or Option A.
- Role limits. Viewers can only reach boxes. They cannot reach each other.
Ping to the recorder PC fails but the tunnel is up
Windows blocks ping (ICMP) by default. This is normal. Test the real service instead, for example by opening http://<address> or adding the device in your viewing software. If you need ping, allow “File and Printer Sharing (Echo Request – ICMPv4-In)” in Windows Firewall.
Video freezes, stutters or shows grey blocks
- Use RTSP over TCP in your player. In VLC, add
--rtsp-tcpto the options. - Lower the stream’s resolution or bit rate (use the sub-stream) if the site’s upload is slow.
- On mobile, PPPoE or double-NAT links, reduce the MTU to 1380 or 1280. This needs a rebuild and an update of every peer.
- Check the site’s uplink speed. One 4 Mbit/s camera stream needs about 4 Mbit/s of upload.
My software cannot find the devices automatically
Discovery tools such as SADP, Dahua ConfigTool search and ONVIF device discovery use broadcasts that do not cross a VPN. Add devices manually by IP address and port.
The build script fails or stops
- Run
df -hand confirm at least 15 GB free in your home folder. - Confirm the machine is Debian 13 and that you ran the script with
sudo. - Check the internet connection and that
apt updateworks. - The script rebuilds from scratch each time, so you can simply run it again. Your
secretsfolder is kept. - A mirror can be temporarily unavailable. Wait a few minutes and try again.
The server does not boot from the USB stick
- Choose the stick in the boot menu (often F12, F11 or Esc). Try both UEFI and legacy/BIOS entries.
- Turn off Secure Boot in the firmware.
- Write the image again with
ddto the whole device, and runsyncbefore removing it. - Verify the file:
sha256sumof the ISO should matchISO.sha256. - Check that the architecture matches (x86_64 image on an x86_64 server).
“IPCKEYS USB stick not found” or the server never comes up (key-stick mode)
- The label must be exactly
IPCKEYSand the format FAT32. - The files (
server.keyand so on) must be at the top level of the stick, not inside a folder. Thecp -r secrets/. …command in step 4 does this. - Insert the stick before or right after the boot. The server waits up to 15 minutes and then gives up, and you would have to reboot it.
I cannot log in with SSH
- SSH only works inside the tunnel, from an admin peer (address .200–.254). Connect to the server’s tunnel address, for example
ssh ipcadmin@10.77.0.1. - The user is
ipcadmin, and only the key you pasted in the builder works. There is no password. - If there was no admin peer in the build, rebuild with one.
- The server has no other login, not even on screen. That is by design.
The builder warns about overlapping addresses
A box’s camera LAN overlaps the tunnel network, the server’s own network or another box’s LAN. Pick a different tunnel network at the “Overlay network” question (for example 10.99.0.0/24), or give the site another camera range, or connect that site with Option A.
Internet on my computer stopped working when the tunnel is on
The config probably has AllowedIPs = 0.0.0.0/0. Change it to only the tunnel network (and any camera LANs). IPC Terminal is never meant to carry your internet traffic.
The tunnel drops after being idle
Make sure every peer has PersistentKeepalive = 25. It keeps the path open through routers and firewalls. Peers behind NAT, such as every box, need it.
FAQ
Does my video go through someone else’s server?
Only through your own server, which you build and run. It is encrypted all the way between the viewer and the site. There is no IPC Terminal cloud in the middle and no vendor cloud such as Hik-Connect.
Can someone use my server as a VPN for the internet?
No. The firewall forwards traffic only between tunnel peers, there is no NAT and no route out. Even if a peer’s config is edited to ask for 0.0.0.0/0, the server drops it.
Why is the server “diskless”?
It runs entirely from memory and hides internal disks, so there is nothing stored on it to steal or tamper with. A reboot returns it to a known, clean state.
Does the builder website see my keys?
No. It runs only in your browser, and nothing is uploaded. It only handles public keys. The server’s private key is created by the script on your own machine. If you paste a client config, the private key is used locally to work out the public key and is then discarded. Even so, prefer pasting public keys only.
How many devices can I have?
In a /24 tunnel network: up to 98 boxes, 100 viewers and 55 admins per server. For more, create another server. The design is one server per customer anyway.
What do I need on the server side for a hosting provider?
A virtual or dedicated server where you can boot your own ISO (custom ISO upload, or IPMI/KVM virtual media), at least 1 GB of RAM, a public IP and the ability to open one UDP port. Providers that only offer fixed operating-system images will not work.
Can I use it with other makes than Hikvision and Dahua?
Yes. IPC Terminal works at the network level. Anything that speaks over the allowed TCP ports works, including ONVIF cameras and any RTSP source. Add the ports your equipment uses at the “Extra TCP ports” question.
Is there a Windows app?
A dedicated IPC Terminal client is in development. Until then, use the free WireGuard app as described in this guide.
What happens if the server loses power?
It starts again from the same USB stick and reconnects all peers. With “Embedded” key delivery this happens without help. With “Separate USB stick” someone must insert the IPCKEYS stick during the boot.
Can I rename, move or clone a server?
Move or clone: copy the secrets folder and build again. For a separate customer, always use a new server with its own secrets.
Is it free?
The tools and guide are free to use. You supply the hardware or hosting and your own time.
Asking for help
The fastest way to a solution is to send the facts. Please include:
- What you were doing and the exact step that failed.
- The exact error message, copied as text.
- The role of the device that fails (box, viewer, admin) and whether it is Option A or B.
- The output of
wg showon the Linux device, or a screenshot of the Windows tunnel status, with the latest handshake visible. - On the server (SSH enabled):
sudo wg show. - Your Peers file. It holds public keys only and is safe to share.
Never send private keys, the secrets folder, the privatekey file or a full client config with a PrivateKey line. If you pasted one by mistake, replace that key pair and rebuild the server.
Find the maker and project updates on the project homepage.