Wireguard flummoxed me when I first tried to get it working and it seems to be a regular problem for new users.
This is how I do things.
______________
You're going to need either a static IP address or a Dynamic DNS service (DDNS) that resolves your ISP's dynamic IP address to an FQDN.
I find Dynu to be very reliable, but I'd recommend creating accounts with two different providers for resilience purposes.
Create an account with the DDNS provider.
Navigate to DDNS Services.
Click +Add.
Choose one of the free domains.
Use a password generator to create a 20 character string of lowercase letters and numbers.
Add that as the Host.
Your FQDN in this example, would be apz69cif9f55u2vzdk6n.kozow.com
I do this because there's very little / zero chance of anybody randomly guessing the FQDN name that I'm going to associate with my wireGuard service.
Click +Add.
Click the link to create an IP update password.
Generate a new 20 character password and save it in your password manager. I think the field might only support uppercase, lowercase and numbers (no symbols).
Now that we have an FQDN, we need to configure our OpenWrt router so that it automatically updates Dynu whenever the WAN's public IP address is updated.
Install the luci-app-ddns and ddns-scripts packages from Software. They will automatically install some dependencies.
You will also need wget-ssl and ca-certificates to encrypt the IP update password credentials when communicating with Dynu.
A Dynamic DNS menu option will appear under Services.

Click Add New Service
Select Dynu from the drop down menu.
Enter the details of your Dynu service.
Bind the service to your wan interface.
Save the config.
Then Save & Applyfrom the main page.
Then Restart DDNS from the main page.
After a couple of minutes you should see the Last Update section get populated and the Lookup Hostname Registered IP should have your domain name and public IP address.
Now that you have a working Dynamic DNS service, you can configure Wireguard.
Install luci-proto-wireguard from Software. It will install the required dependencies.
Go to Interfaces and add your Wireguard interface.
Give it a name, such as wireguard.
Click Generate Key Pair.
Choose a Listen Port (any number between 5,000 and 60,000).
Choose an IP address that's on a different subnet to your router. So, for example, if your router is 192.168.1.1, you could choose 192.168.111.1.
Click Advanced and assign the the interface to the lan
Save the interface.
Save & Apply the config on the main page.
Navigate to Network > Firewall > Traffic Rules
Create a rule that permits inbound traffic on the Wireguard Listen Port that you chose in the previous step.
Save the rule.
Save & Apply on the main page.
Go back to Network > Interfaces
Select your wireGuard interface and then the Peers tab.
Click on Add Peer.
Give it a name.
Click the Generate a new key pair and Generate preshared key buttons.
Give it an IP address from the same subnet that you used when you created the Wireguard interface (192.168.111.0/24 in the previous example).
Add the Endpoint Port which must match the port configured in the Firewall rule and wireGuard interface.
Click on the Generate configuration button.
Add your Dynu FQDN as the Connection Endpoint
Open the Wireguard app on your smartphone and scan the QR code to add the tunnel to your phone.
Click Back to peer configuration
Save the peer.
Save & Apply at the main page.
Reboot your router.
You should now be able to to connect to your network using your smart phone using cellular data (disable your Wi-Fi for testing).
Confirm that wireGuard is working by doing a Google search for What is my IP address on your phone. The IP address displayed should match the IP address of your router's WAN interface.
If you need to add peers to laptops, etc, you can create the peers in the same manner and then copy and paste the config text into the desktop Wireguard app.
Click the small arrow next to Add Tunnel and then select Add Empty Tunnel.
Paste the config of your peer into the box and save the config.
That's it. You should have working Wireguard.























