selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
MeshLAN logo

Self-host MeshLAN

v1.14.10

P2P-first virtual LAN with relay fallback

ReleaseOpen SourceMIT
Updatedlast month
LanguageGo
Setup difficultyAdvanced
Stars
238
Ports
4242 (Nebula UDP overlay traffic), 8443 (Pairing and admin HTTPS API)
Requires
Microsoft Edge WebView2 Runtime, Nebula, Nebula-cert, SQLite (embedded)
Install with Node.js
Live network topology showing devices, P2P/Relay paths, latency, and trafficHistory and replay view with time slider and filtersAI assistant interface with encrypted context and user confirmation workflow

What is MeshLAN?

MeshLAN creates a self-hosted virtual LAN using SlackHQ Nebula as its encrypted overlay. Windows users run a native WebView2 client that enrolls against a Linux control server you host. The control plane handles device authorization, certificate issuance, Lighthouse discovery, and optional relay nodes for NAT traversal. Devices receive stable Mesh IPs and can publish localhost TCP/UDP services to the mesh with custom ports, health checks, and access approval workflows. MeshDNS provides human-readable names like alice.mesh and chat.alice.mesh, while an HTTPS gateway serves .mesh HTTP services portlessly. File transfers travel peer-to-peer; the control server only relays metadata. The admin UI offers live topology, historical replay, per-user AI token accounting, and an AI assistant that keeps model keys on the server and requires user confirmation for every mutation. Updates are signed with Ed25519 manifests and verified via SHA-256 with automatic rollback. The project is written in Go 1.26, uses SQLite for local history, and supports Simplified/Traditional Chinese, English, and Japanese. No Docker images are published; deployment is via pre-built binaries and systemd on Linux, and a portable executable on Windows.

Should you self-host MeshLAN?

MeshLAN scores 44/100 on selfhost.directory (how scoring works) and ranks #45 of 56 in VPN. It has 238 GitHub stars.

It shipped 1 stable release in the past year. The latest, v1.14.10, came out on 24 August 2026.

Setup is advanced: plan for several services and some ongoing maintenance. It is MIT-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is Tailscale (84/100, 38 215 stars). It scores higher overall, so compare the two before you pick. See MeshLAN vs Tailscale side by side.

Features

  • Access approval
  • AI Assistant
  • Direct file transfer
  • History and replay
  • HTTPS gateway
  • Live observability
  • MeshDNS
  • Multi-language interface
  • Multi-node control plane
  • P2P-first connectivity
  • Per-user token accounting
  • Relay fallback
  • Secure updates
  • Service mapping
  • Virtual LAN

MeshLAN README

How to install MeshLAN

Install MeshLAN with Node.js

Linux host, access to main server release URL
Environment variables
MESHLAN_RELEASE_BASE_URL
export MESHLAN_RELEASE_BASE_URL=https://your-meshlan.example
curl -fsSL "$MESHLAN_RELEASE_BASE_URL/download/node/install.sh" -o /tmp/install-mesh-node.sh
sudo -E bash /tmp/install-mesh-node.sh \
  --endpoint 198.51.100.20 \
  --name edge-01

Script outputs MLNODE1... hash. Add the node address and hash in the main server's multi-node page.

Additional Lighthouse/Relay node for redundancy and geographic distribution

How to configure MeshLAN

  • -endpointPublic endpoint address:port for the server

    Public endpoint address:port for the server

  • MESHLAN_MASTER_KEY_FILEPath to master key file loaded via systemd LoadCredential

    Path to master key file loaded via systemd LoadCredential

  • -nebulaPath to nebula binary

    Path to nebula binary

  • -nebula-certPath to nebula-cert binary

    Path to nebula-cert binary

  • -nebula-port4242Nebula UDP listen port

    Nebula UDP listen port

  • -pairing-port8443HTTPS pairing/admin API listen port

    HTTPS pairing/admin API listen port

  • -statePath to server state JSON file

    Path to server state JSON file

  • -subnetMesh subnet CIDR (e.g., 10.77.0.0/24)

    Mesh subnet CIDR (e.g., 10.77.0.0/24)

MeshLAN releases & version history

More in Network

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…