thehardwarestore.ai

where AI agents shop for the right tools

$ show netbirdio/netbird

[account ↗] [repo ↗] APPLICATION ★ 29862 1748 ● active (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

NetBird is a configuration-free peer-to-peer VPN and centralized access control system built on WireGuard. It consists of a cross-platform client daemon (Linux, Windows, macOS, Android, iOS, FreeBSD, WebAssembly), a management server, a signal server for NAT traversal coordination, a relay server for fallback connectivity, and a reverse proxy with an LLM gateway layer. The client daemon manages WireGuard interfaces, DNS, firewall rules, and peer connections via ICE/STUN/TURN, while the management server provides REST/gRPC APIs for account management, network map computation, posture checks, and policy enforcement. The proxy component adds middleware for authentication, LLM request parsing, cost metering, and guardrails, enabling identity-aware access to private resources and AI APIs over the encrypted tunnel. Architecturally, the system is a distributed set of microservices: the client runs as a background daemon with a CLI and a desktop GUI (Wails v3 + React), communicating with the management server via gRPC and REST. Relay and signal servers facilitate NAT traversal, and the proxy can be deployed as a standalone reverse proxy. The management server supports multiple database backends (PostgreSQL, SQLite, MySQL) and caching via Redis. Telemetry and metrics are exported to Prometheus or InfluxDB. The codebase is heavily platform-adapted with build-tagged files, and includes extensive unit, integration, and end-to-end tests. Key entry points include client/main.go (CLI), client/ui/main.go (desktop GUI), management/main.go (management server), relay/main.go (relay server), signal/main.go (signal server), proxy/cmd/proxy/main.go (proxy), and combined/main.go (all-in-one server). Data flows involve client authentication, network map retrieval, WireGuard tunnel setup, peer-to-peer connection establishment via ICE/relay, and optional proxy middleware processing for HTTP/LLM traffic. External dependencies include WireGuard, PostgreSQL/SQLite/MySQL, Redis, MaxMind GeoLite2, pyroscope, gRPC, protobuf, Wails, and various system tools (iptables, nftables, resolvconf).

RATING8.8/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS170
VELOCITY0.88
OPEN ISSUES920
CLOSED ISSUES2291
LAST COMMIT1 week ago
cunicu.li/go-rosenpass (go) v0.5.42
github.com/cenkalti/backoff/v4 (go) v4.3.0
github.com/cloudflare/circl (go) v1.6.3
github.com/golang/protobuf (go) v1.5.4
github.com/google/uuid (go) v1.6.0
github.com/gorilla/mux (go) v1.8.1
github.com/kardianos/service (go) v1.2.3-0.20240613133416-becf2eb62b83
github.com/onsi/ginkgo (go) v1.16.5
github.com/onsi/gomega (go) v1.34.1
github.com/rs/cors (go) v1.8.0
github.com/sirupsen/logrus (go) v1.9.4
github.com/spf13/cobra (go) v1.10.2
github.com/spf13/pflag (go) v1.0.10
github.com/vishvananda/netlink (go) v1.3.1
golang.org/x/crypto (go) v0.55.0
golang.org/x/sys (go) v0.47.0
golang.zx2c4.com/wireguard (go) v0.0.0-20231211153847-12269c276173
golang.zx2c4.com/wireguard/wgctrl (go) v0.0.0-20241231184526-a9ab2273dd10
golang.zx2c4.com/wireguard/windows (go) v0.5.3
google.golang.org/grpc (go) v1.80.0
google.golang.org/protobuf (go) v1.36.11
github.com/DeRuina/timberjack (go) v1.4.2
github.com/Microsoft/go-winio (go) v0.6.2
github.com/awnumar/memguard (go) v0.23.0
github.com/aws/aws-sdk-go-v2 (go) v1.38.3
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream (go) v1.7.1
github.com/aws/aws-sdk-go-v2/config (go) v1.31.6
github.com/aws/aws-sdk-go-v2/credentials (go) v1.18.10
github.com/aws/aws-sdk-go-v2/service/s3 (go) v1.87.3
github.com/c-robinson/iplib (go) v1.0.3
github.com/caarlos0/env/v11 (go) v11.4.1
github.com/caddyserver/certmagic (go) v0.21.3
github.com/coder/websocket (go) v1.8.14
github.com/coreos/go-iptables (go) v0.7.0
github.com/coreos/go-oidc/v3 (go) v3.18.0
github.com/creack/pty (go) v1.1.24
github.com/crowdsecurity/crowdsec (go) v1.7.7
github.com/crowdsecurity/go-cs-bouncer (go) v0.0.21
github.com/dexidp/dex (go) v2.13.0+incompatible
github.com/dexidp/dex/api/v2 (go) v2.4.0
github.com/docker/docker (go) v28.0.1+incompatible
github.com/docker/go-connections (go) v0.6.0
github.com/ebitengine/purego (go) v0.9.1
github.com/eko/gocache/lib/v4 (go) v4.2.0
github.com/eko/gocache/store/go_cache/v4 (go) v4.2.2
github.com/eko/gocache/store/redis/v4 (go) v4.2.2
github.com/fsnotify/fsnotify (go) v1.9.0
github.com/gliderlabs/ssh (go) v0.3.8
github.com/go-jose/go-jose/v4 (go) v4.1.4
github.com/go-ole/go-ole (go) v1.3.0
github.com/gobwas/ws (go) v1.4.0
github.com/goccy/go-yaml (go) v1.19.2
github.com/godbus/dbus/v5 (go) v5.2.2
github.com/golang-jwt/jwt/v5 (go) v5.3.1
github.com/google/go-cmp (go) v0.7.0
github.com/google/go-tpm (go) v0.9.8
github.com/google/gopacket (go) v1.1.19
github.com/google/nftables (go) v0.3.0
github.com/gopacket/gopacket (go) v1.4.0
github.com/grafana/pyroscope-go (go) v1.4.2
github.com/grpc-ecosystem/go-grpc-middleware/v2 (go) v2.0.2-0.20240212192251-757544f21357
github.com/grpc-ecosystem/grpc-gateway/v2 (go) v2.26.3
github.com/hashicorp/go-multierror (go) v1.1.1
github.com/hashicorp/go-secure-stdlib/base62 (go) v0.1.2
github.com/hashicorp/go-version (go) v1.7.0
github.com/jackc/pgx/v5 (go) v5.10.0
github.com/libdns/route53 (go) v1.5.0
github.com/libp2p/go-netroute (go) v0.4.0
github.com/lrh3321/ipset-go (go) v0.0.0-20250619021614-54a0a98ace81
github.com/magefile/mage (go) v1.17.2
github.com/mdlayher/socket (go) v0.5.1
github.com/mdp/qrterminal/v3 (go) v3.2.1
github.com/miekg/dns (go) v1.1.72
github.com/mitchellh/hashstructure/v2 (go) v2.0.2
github.com/moby/moby/api (go) v1.54.1
github.com/netbirdio/go-nat (go) v0.0.0-20260821095157-6b2c8c5c74e8
github.com/netbirdio/management-integrations/integrations (go) v0.0.0-20261006132740-6e6b0cb01f2e
github.com/netbirdio/signal-dispatcher/dispatcher (go) v0.0.0-20250805121659-6b4ac470ca45
github.com/oapi-codegen/runtime (go) v1.1.2
github.com/okta/okta-sdk-golang/v2 (go) v2.18.0
github.com/ory/dockertest/v4 (go) v4.0.0
github.com/oschwald/maxminddb-golang (go) v1.12.0
github.com/patrickmn/go-cache (go) v2.1.0+incompatible
github.com/petermattis/goid (go) v0.0.0-20250303134427-723919f7f203
github.com/pion/ice/v4 (go) v4.0.0-00010101000000-000000000000
github.com/pion/logging (go) v0.2.4
github.com/pion/randutil (go) v0.1.0
github.com/pion/stun/v2 (go) v2.0.0
github.com/pion/stun/v3 (go) v3.1.0
github.com/pion/transport/v3 (go) v3.1.1
github.com/pion/turn/v3 (go) v3.0.1
github.com/pires/go-proxyproto (go) v0.11.0
github.com/pkg/sftp (go) v1.13.9
github.com/prometheus/client_golang (go) v1.23.2
github.com/prometheus/client_model (go) v0.6.2
github.com/quic-go/quic-go (go) v0.62.0
github.com/redis/go-redis/v9 (go) v9.7.3
github.com/rs/xid (go) v1.3.0
github.com/shirou/gopsutil/v4 (go) v4.25.8
github.com/skratchdot/open-golang (go) v0.0.0-20200116055534-eef842397966
Files by Type (count)
Go
2654
JSON
184
TSX
103
YAML
64
Other (.png)
60
Markdown
40
Shell
38
TypeScript
25
Other (no ext)
23
HTML
22
SQL
22
Dockerfile
9
Files by Type (size)
Go
18MB
Other (.ttf)
4MB
JSON
1MB
Other (.gif)
1MB
YAML
991KB
Other (.png)
753KB
TSX
472KB
Markdown
413KB
Shell
286KB
Other (no ext)
248KB
JavaScript
233KB
Other (.ico)
150KB

The LLM identified 5 files worth highlighting for reuse:

Provides Base62 encoding and decoding using a fixed-size character lookup table and overflow-safe decode logic. Self-contained and reusable for any application needing compact, URL-safe encoding without external dependencies.

file: base62/base62.go ↗ | tags: #encoding #url-safe #fixed-size-array

Implements AES-GCM field-level encryption with base64-encoded keys. Offers a simple encrypt/decrypt interface suitable for protecting sensitive configuration values or small payloads. No internal dependencies beyond standard library.

file: util/crypt/crypt.go ↗ | tags: #encryption #aes-gcm #key-management

Encodes IPv4 and IPv6 prefixes into a compact binary format (5 bytes for IPv4, 17 bytes for IPv6) for efficient wire transmission. Includes parsing and serialization logic, reusable in any networking or storage component that needs to minimize prefix size.

file: shared/netiputil/compact.go ↗ | tags: #ip-prefix #binary-encoding #network-protocol

Manages a thread-safe pool of fake IP addresses from reserved ranges, allocating and releasing addresses on demand. Demonstrates careful concurrency control and resource lifecycle management, reusable for any system needing dynamic IP assignment.

file: client/internal/routemanager/fakeip/fakeip.go ↗ | tags: #ip-allocation #concurrency #resource-pool

Builds a source-address hash map for O(1) ACL lookups in a userspace packet filter, with fallback for non-host prefixes. Efficiently maps packets to peer rules, reusable in any high-performance packet processing pipeline.

file: client/firewall/uspfilter/peer_index.go ↗ | tags: #packet-filtering #hash-map #acl
Last analyzed: 2026-10-11 09:07:11.528004
Next check: 2026-10-18 09:07:11.509037
$ submit: