André Gilerson 3f258d3500 Fix crash when peer has nil publicKey in site config
Skip sites with empty/nil publicKey instead of passing them to the
WireGuard UAPI layer, which expects a valid 64-char hex string. A nil
key occurs when a Newt site has never connected. Previously this caused
all sites to fail with "hex string does not fit the slice".
2026-03-07 20:44:25 -08:00
2026-01-19 17:12:15 -08:00
2026-02-02 18:03:29 -08:00
2026-01-01 17:38:01 -05:00
2026-01-18 12:18:48 -08:00
2026-02-24 19:47:30 -08:00
2025-12-08 14:05:48 -05:00
2025-11-01 18:34:00 -07:00
2025-08-28 17:26:43 +02:00
2026-01-23 10:22:21 -08:00
2026-02-02 10:03:22 -08:00
2025-10-19 15:12:37 -07:00
2025-08-31 07:22:32 +00:00
2025-02-21 12:31:25 -05:00
2026-01-23 10:23:42 -08:00
2026-01-23 10:23:42 -08:00
2025-01-04 21:22:32 -05:00
2026-01-23 10:22:21 -08:00
2025-11-18 10:34:49 -05:00
2026-02-25 14:57:56 -08:00
2025-12-22 17:24:51 -05:00
2025-10-19 15:12:37 -07:00

Olm

Olm is a WireGuard tunnel client designed to securely connect your computer to Newt sites running on remote networks.

Installation and Documentation

Olm is used with Pangolin and Newt as part of the larger system. See documentation below:

Key Functions

Registers with Pangolin

Using the Olm ID and a secret, the olm will make HTTP requests to Pangolin to receive a session token. Using that token, it will connect to a websocket and maintain that connection. Control messages will be sent over the websocket.

Receives WireGuard Control Messages

When Olm receives WireGuard control messages, it will use the information encoded (endpoint, public key) to bring up a WireGuard tunnel on your computer to a remote Newt. It will ping over the tunnel to ensure the peer is brought up.

Hole Punching

In the default mode, olm uses both relaying through Gerbil and NAT hole punching to connect to Newt. Hole punching attempts to orchestrate a NAT traversal between the two sites so that traffic flows directly, which can save data costs and improve speed. If hole punching fails, traffic will fall back to relaying through Gerbil.

Build

Binary

Make sure to have Go 1.25 installed.

make

Licensing

Olm is dual licensed under the AGPLv3 and the Fossorial Commercial license. For inquiries about commercial licensing, please contact us.

Contributions

Please see CONTRIBUTIONS in the repository for guidelines and best practices.

Description
No description provided
Readme AGPL-3.0 60 MiB
Latest
2025-10-27 23:42:52 -05:00
Languages
Go 94.3%
Shell 3.2%
Inno Setup 1.4%
Makefile 0.5%
Python 0.4%
Other 0.2%