On Windows the config directory, the key directory and the peer ACL defaults disagreed. SYSTEM_CONFIG_DIR and the ACL defaults resolved to /etc/fips on the current drive, the search path never probed the directory the service installer writes to, and fipsctl keygen wrote to the per-user %APPDATA%\fips. A service started before a reboot found none of the installed files and ran on defaults, and a peers.deny placed beside the hosts file in C:\ProgramData\fips was never read, so the ACL failed open. Windows now uses C:\ProgramData\fips for all of them, the directory the hosts file and the service installer already use, and the search path probes it before the per-user config. A key left in %APPDATA%\fips is still picked up when the new directory has none, by the daemon and by fipsctl address, with a note to move it. The daemon warns when it ran on a config found only in %APPDATA%\fips, which the service never reads. fipsctl keygen points at a key left in %APPDATA%\fips, and --install-service names the file the service reads. A peers.allow or peers.deny left at the old /etc/fips location would otherwise be dropped on upgrade, and a dropped deny list fails open. For one release the daemon keeps reading each file from /etc/fips, resolved against the current drive exactly as before, when it is not at the new location, and warns naming both paths and asking for it to be moved. When both exist the new file is read and the warning says the old one is ignored. The choice is made per file and re-checked on every ACL reload, so moving, adding or removing a file takes effect without a restart, including a copy that keeps the old file's modification time. The fallback is meant to be removed in a later release. Linux, macOS and FreeBSD paths are unchanged. The Windows ZIP's README told users to put fips.yaml beside fips.exe or in %APPDATA%\fips, neither of which the service reads, and the reference docs gave %APPDATA%\fips as fipsctl keygen's default. The README now says the service reads C:\ProgramData\fips\fips.yaml and keeps the key, hosts and peer ACL files beside it, and describes the per-user files a foreground run also reads. The reference docs list C:\ProgramData\fips as the Windows system config directory and keygen default.
FIPS Documentation
FIPS (Free Internetworking Peering System) is a self-organizing encrypted mesh network built on Nostr identities, capable of operating over arbitrary transports — local networks, the public internet, Tor, Bluetooth, or point-to-point links — without central infrastructure.
With FIPS, your machine becomes a node in the mesh with a self-generated cryptographic identity. There are two ways to deploy it.
As an overlay on top of existing IP networks, FIPS lets your node reach any other FIPS node wherever it sits — behind a NAT, on a different ISP, on a phone over cellular, on a laptop with only Bluetooth in range, or behind a Tor onion. The mesh forwards IPv6 traffic transparently and end-to-end encrypted, with no central VPN concentrator or coordinating server.
From the ground up over raw Ethernet, WiFi, or Bluetooth, FIPS provides a complete permissionless network without any pre-existing IP infrastructure, ISP, or DNS. Any node that joins the link gets routable IPv6 addresses, peer discovery, and a path to every other node automatically.
Either way, existing networking software runs over it unchanged: SSH, HTTP servers, file transfer, anything IPv6-native works the same way it would on a local network.
New to FIPS? Start with the Getting Started guide.
Documentation Sections
Tutorials
If you are starting from scratch and want a guided path to a working mesh, go here.
How-To Guides
If you have a specific task in mind — enabling a feature, deploying a component, diagnosing a problem — go here.
Reference
If you need to look up wire formats, configuration keys, command flags, or counter inventories, go here.
Design
If you want to understand how the mesh self-organizes, why FIPS makes the choices it does, or how the pieces fit together, go here.
Releases
If you want the notes for a particular version — what changed, what broke, and what to do about it on upgrade — go here.