Home
Softono
m

mudler

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
2

Software by mudler

LocalAI
Open Source

LocalAI

<h1 align="center"> <br> <img width="300" src="./core/http/static/logo.png"> <br> <br> </h1> <p align="center"> <a href="https://github.com/go-skynet/LocalAI/stargazers" target="blank"> <img src="https://img.shields.io/github/stars/go-skynet/LocalAI?style=for-the-badge" alt="LocalAI stars"/> </a> <a href='https://github.com/go-skynet/LocalAI/releases'> <img src='https://img.shields.io/github/release/go-skynet/LocalAI?&label=Latest&style=for-the-badge'> </a> <a href="LICENSE" target="blank"> <img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge" alt="LocalAI License"/> </a> </p> <p align="center"> <a href="https://twitter.com/LocalAI_API" target="blank"> <img src="https://img.shields.io/badge/X-%23000000.svg?style=for-the-badge&logo=X&logoColor=white&label=LocalAI_API" alt="Follow LocalAI_API"/> </a> <a href="https://discord.gg/uJAeKSAGDy" target="blank"> <img src="https://img.shields.io/badge/dynamic/json?color=blue&label=Discord&style=for-the-badge&query=approximate_member_count&url=https%3A%2F%2Fdiscordapp.com%2Fapi%2Finvites%2FuJAeKSAGDy%3Fwith_counts%3Dtrue&logo=discord" alt="Join LocalAI Discord Community"/> </a> </p> <p align="center"> <a href="https://trendshift.io/repositories/5539" target="_blank"><img src="https://trendshift.io/api/badge/repositories/5539" alt="mudler%2FLocalAI | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a> </p> **LocalAI** is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required. **A small core, not a bundle.** Each backend wraps a best-in-class engine (llama.cpp, vLLM, whisper.cpp, stable-diffusion, MLX...) in its own image, pulled only when a model needs it. You install nothing you don't use. - **Composable by design**: backends are separate and pulled on demand, so you install only what your model needs - **Open and extensible**: load any model, or build your own backend in any language against an open interface - **Drop-in API compatibility**: OpenAI, Anthropic, and ElevenLabs APIs across every backend - **Any model, any modality**: LLMs, vision, voice, image, and video behind one API - **Any hardware**: NVIDIA, AMD, Intel, Apple Silicon, Vulkan, or CPU-only - **Multi-user ready**: API key auth, user quotas, role-based access - **Built-in AI agents**: autonomous agents with tool use, RAG, MCP, and skills - **Privacy-first**: your data never leaves your infrastructure ![A small LocalAI core with backends (llama.cpp, vLLM, MLX, whisper.cpp, stable-diffusion, kokoro, parakeet.cpp...) plugged in as separate on-demand images](docs/static/images/diagrams/composable-core.png) Created by [Ettore Di Giacinto](https://github.com/mudler) and maintained by the [LocalAI team](#team). > [:book: Documentation](https://localai.io/) | [:speech_balloon: Discord](https://discord.gg/uJAeKSAGDy) | [πŸ’» Quickstart](https://localai.io/basics/getting_started/) | [πŸ–ΌοΈ Models](https://models.localai.io/) | [❓FAQ](https://localai.io/faq/) ## Guided tour https://github.com/user-attachments/assets/08cbb692-57da-48f7-963d-2e7b43883c18 <details> <summary> Click to see more! </summary> #### User and auth https://github.com/user-attachments/assets/228fa9ad-81a3-4d43-bfb9-31557e14a36c #### Agents https://github.com/user-attachments/assets/6270b331-e21d-4087-a540-6290006b381a #### Usage metrics per user https://github.com/user-attachments/assets/cbb03379-23b4-4e3d-bd26-d152f057007f #### Fine-tuning and Quantization https://github.com/user-attachments/assets/5ba4ace9-d3df-4795-b7d4-b0b404ea71ee #### WebRTC https://github.com/user-attachments/assets/ed88e34c-fed3-4b83-8a67-4716a9feeb7b </details> ## Quickstart ### macOS <a href="https://github.com/mudler/LocalAI/releases/latest/download/LocalAI.dmg"> <img src="https://img.shields.io/badge/Download-macOS-blue?style=for-the-badge&logo=apple&logoColor=white" alt="Download LocalAI for macOS"/> </a> > **Note:** The DMG is not signed by Apple. After installing, run: `sudo xattr -d com.apple.quarantine /Applications/LocalAI.app`. See [#6268](https://github.com/mudler/LocalAI/issues/6268) for details. ### Containers (Docker, podman, ...) > Already ran LocalAI before? Use `docker start -i local-ai` to restart an existing container. #### CPU only: ```bash docker run -ti --name local-ai -p 8080:8080 localai/localai:latest ``` #### NVIDIA GPU: ```bash # CUDA 13 docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-gpu-nvidia-cuda-13 # CUDA 12 docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-gpu-nvidia-cuda-12 # NVIDIA Jetson ARM64 (CUDA 12, for AGX Orin and similar) docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-nvidia-l4t-arm64 # NVIDIA Jetson ARM64 (CUDA 13, for DGX Spark) docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-nvidia-l4t-arm64-cuda-13 ``` #### AMD GPU (ROCm): ```bash docker run -ti --name local-ai -p 8080:8080 --device=/dev/kfd --device=/dev/dri --group-add=video localai/localai:latest-gpu-hipblas ``` #### Intel GPU (oneAPI): ```bash docker run -ti --name local-ai -p 8080:8080 --device=/dev/dri/card1 --device=/dev/dri/renderD128 localai/localai:latest-gpu-intel ``` #### Vulkan GPU: ```bash docker run -ti --name local-ai -p 8080:8080 localai/localai:latest-gpu-vulkan ``` ### Loading models ```bash # From the model gallery (see available models with `local-ai models list` or at https://models.localai.io) local-ai run llama-3.2-1b-instruct:q4_k_m # From Huggingface local-ai run huggingface://TheBloke/phi-2-GGUF/phi-2.Q8_0.gguf # From the Ollama OCI registry local-ai run ollama://gemma:2b # From a YAML config local-ai run https://gist.githubusercontent.com/.../phi-2.yaml # From a standard OCI registry (e.g., Docker Hub) local-ai run oci://localai/phi-2:latest ``` > **Automatic Backend Detection**: LocalAI automatically detects your GPU capabilities and downloads the appropriate backend. For advanced options, see [GPU Acceleration](https://localai.io/features/gpu-acceleration/). For more details, see the [Getting Started guide](https://localai.io/basics/getting_started/). ## Latest News - **May 2026**: **LocalAI 4.3.0** - `llama.cpp` [prompt cache on by default](https://github.com/mudler/LocalAI/pull/9925) (repeated system prompts collapse from minutes to seconds), [keyless cosign signing of backend OCI images](https://github.com/mudler/LocalAI/pull/9823), [per-API-key + per-user usage attribution](https://github.com/mudler/LocalAI/pull/9920), Distributed v3 with [per-request replica routing](https://github.com/mudler/LocalAI/pull/9968). [Release notes](https://github.com/mudler/LocalAI/releases/tag/v4.3.0) - **May 2026**: **LocalAI 4.2.0** - LocalAI sees and hears: [voice recognition](https://github.com/mudler/LocalAI/pull/9500), [face recognition + antispoofing liveness](https://github.com/mudler/LocalAI/pull/9480), speaker diarization. Plus [drop-in Ollama API](https://github.com/mudler/LocalAI/pull/9284), [video generation](https://github.com/mudler/LocalAI/pull/9420), redesigned UI with i18n + admin-configurable branding, vLLM at feature parity with llama.cpp, and 11 new backends. [Release notes](https://github.com/mudler/LocalAI/releases/tag/v4.2.0) - **April 2026**: **LocalAI 4.1.0** - LocalAI becomes a control tower: distributed cluster mode with VRAM-aware smart routing + autoscaling, multi-user platform with OIDC and API keys, per-user quotas with predictive analytics, in-UI fine-tuning with TRL (auto-export to GGUF), on-the-fly quantization backend, visual pipeline editor. [Release notes](https://github.com/mudler/LocalAI/releases/tag/v4.1.0) - **March 2026**: **LocalAI 4.0.0** - native agentic orchestration with the new [Agenthub](https://agenthub.localai.io) community hub, full React UI rewrite with Canvas mode, [MCP Apps + client-side](https://github.com/mudler/LocalAI/pull/8947) with tool streaming, [WebRTC realtime audio](https://github.com/mudler/LocalAI/pull/8790), [MLX-distributed](https://github.com/mudler/LocalAI/pull/8801). [Release notes](https://github.com/mudler/LocalAI/releases/tag/v4.0.0) - **February 2026**: [Realtime API for audio-to-audio with tool calling](https://github.com/mudler/LocalAI/pull/6245), [ACE-Step 1.5 support](https://github.com/mudler/LocalAI/pull/8396) - **January 2026**: **LocalAI 3.10.0** β€” Anthropic API support, Open Responses API, video & image generation (LTX-2), unified GPU backends, tool streaming, Moonshine, Pocket-TTS. [Release notes](https://github.com/mudler/LocalAI/releases/tag/v3.10.0) - **December 2025**: [Dynamic Memory Resource reclaimer](https://github.com/mudler/LocalAI/pull/7583), [Automatic multi-GPU model fitting (llama.cpp)](https://github.com/mudler/LocalAI/pull/7584), [Vibevoice backend](https://github.com/mudler/LocalAI/pull/7494) - **November 2025**: [Import models via URL](https://github.com/mudler/LocalAI/pull/7245), [Multiple chats and history](https://github.com/mudler/LocalAI/pull/7325) - **October 2025**: [Model Context Protocol (MCP)](https://localai.io/docs/features/mcp/) support for agentic capabilities - **September 2025**: New Launcher for macOS and Linux, extended backend support for Mac and Nvidia L4T, MLX-Audio, WAN 2.2 - **August 2025**: MLX, MLX-VLM, Diffusers, llama.cpp now supported on Apple Silicon - **July 2025**: All backends migrated outside the main binary β€” [lightweight, modular architecture](https://github.com/mudler/LocalAI/releases/tag/v3.2.0) For older news and full release notes, see [GitHub Releases](https://github.com/mudler/LocalAI/releases) and the [News page](https://localai.io/basics/news/). ## Features - [Text generation](https://localai.io/features/text-generation/) (`llama.cpp`, `transformers`, `vllm` ... [and more](https://localai.io/model-compatibility/)) - [Text to Audio](https://localai.io/features/text-to-audio/) - [Audio to Text](https://localai.io/features/audio-to-text/) - [Image generation](https://localai.io/features/image-generation) - [OpenAI-compatible tools API](https://localai.io/features/openai-functions/) - [Realtime API](https://localai.io/features/openai-realtime/) (Speech-to-speech) - [Embeddings generation](https://localai.io/features/embeddings/) - [Constrained grammars](https://localai.io/features/constrained_grammars/) - [Download models from Huggingface](https://localai.io/models/) - [Vision API](https://localai.io/features/gpt-vision/) - [Object Detection](https://localai.io/features/object-detection/) - [Reranker API](https://localai.io/features/reranker/) - [P2P Inferencing](https://localai.io/features/distribute/) - [Distributed Mode](https://localai.io/features/distributed-mode/) β€” Horizontal scaling with PostgreSQL + NATS - [Model Context Protocol (MCP)](https://localai.io/docs/features/mcp/) - [Built-in Agents](https://localai.io/features/agents/) β€” Autonomous AI agents with tool use, RAG, skills, SSE streaming, and [Agent Hub](https://agenthub.localai.io) - [Backend Gallery](https://localai.io/backends/) β€” Install/remove backends on the fly via OCI images - Voice Activity Detection (Silero-VAD) - Integrated WebUI ## Supported Backends & Acceleration LocalAI supports **36+ backends** including llama.cpp, vLLM, transformers, whisper.cpp, diffusers, MLX, MLX-VLM, and many more. Hardware acceleration is available for **NVIDIA** (CUDA 12/13), **AMD** (ROCm), **Intel** (oneAPI/SYCL), **Apple Silicon** (Metal), **Vulkan**, and **NVIDIA Jetson** (L4T). All backends can be installed on-the-fly from the [Backend Gallery](https://localai.io/backends/). See the full [Backend & Model Compatibility Table](https://localai.io/model-compatibility/) and [GPU Acceleration guide](https://localai.io/features/gpu-acceleration/). ## Resources - [Documentation](https://localai.io/) - [LLM fine-tuning guide](https://localai.io/docs/advanced/fine-tuning/) - [Build from source](https://localai.io/basics/build/) - [Kubernetes installation](https://localai.io/basics/getting_started/#run-localai-in-kubernetes) - [Integrations & community projects](https://localai.io/docs/integrations/) - [Installation video walkthrough](https://www.youtube.com/watch?v=cMVNnlqwfw4) - [Media & blog posts](https://localai.io/basics/news/#media-blogs-social) - [Examples](https://github.com/mudler/LocalAI-examples) ## Team LocalAI is maintained by a small team of humans, together with the wider community of contributors. - **[Ettore Di Giacinto](https://github.com/mudler)** β€” original author and project lead - **[Richard Palethorpe](https://github.com/richiejp)** β€” maintainer A huge thank you to everyone who contributes code, reviews PRs, files issues, and helps users in [Discord](https://discord.gg/uJAeKSAGDy) β€” LocalAI is a community-driven project and wouldn't exist without you. See the full [contributors list](https://github.com/mudler/LocalAI/graphs/contributors). ## Citation If you utilize this repository, data in a downstream project, please consider citing it with: ``` @misc{localai, author = {Ettore Di Giacinto}, title = {LocalAI: The free, Open source OpenAI alternative}, year = {2023}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/go-skynet/LocalAI}}, ``` ## Sponsors > Do you find LocalAI useful? Support the project by becoming [a backer or sponsor](https://github.com/sponsors/mudler). Your logo will show up here with a link to your website. A huge thank you to our generous sponsors who support this project covering CI expenses, and our [Sponsor list](https://github.com/sponsors/mudler): <p align="center"> <a href="https://www.spectrocloud.com/" target="blank"> <img height="200" src="https://github.com/user-attachments/assets/72eab1dd-8b93-4fc0-9ade-84db49f24962"> </a> </p> <details> <summary> Past sponsors </summary> <p align="center"> <a href="https://www.premai.io/" target="blank"> <img height="200" src="https://github.com/mudler/LocalAI/assets/2420543/42e4ca83-661e-4f79-8e46-ae43689683d6"> <br> </a> </p> </details> ### Individual sponsors A special thanks to individual sponsors, a full list is on [GitHub](https://github.com/sponsors/mudler) and [buymeacoffee](https://buymeacoffee.com/mudler). Special shout out to [drikster80](https://github.com/drikster80) for being generous. Thank you everyone! ## Star history [![LocalAI Star history Chart](https://api.star-history.com/svg?repos=go-skynet/LocalAI&type=Date)](https://star-history.com/#go-skynet/LocalAI&Date) ## License LocalAI is a community-driven project created by [Ettore Di Giacinto](https://github.com/mudler/) and maintained by the [LocalAI team](#team). MIT - Author Ettore Di Giacinto <[email protected]> ## Acknowledgements LocalAI couldn't have been built without the help of great software already available from the community. Thank you! - [llama.cpp](https://github.com/ggerganov/llama.cpp) - https://github.com/tatsu-lab/stanford_alpaca - https://github.com/cornelk/llama-go for the initial ideas - https://github.com/antimatter15/alpaca.cpp - https://github.com/EdVince/Stable-Diffusion-NCNN - https://github.com/ggerganov/whisper.cpp - https://github.com/rhasspy/piper - [exo](https://github.com/exo-explore/exo) for the MLX distributed auto-parallel sharding implementation ## Contributors This is a community project, a special thanks to our contributors! <a href="https://github.com/go-skynet/LocalAI/graphs/contributors"> <img src="https://contrib.rocks/image?repo=go-skynet/LocalAI" /> </a>

LLM Tools & Chat UIs Video Editing
46.7K Github Stars
edgevpn
Open Source

edgevpn

<h1 align="center"> <br> <img src="https://user-images.githubusercontent.com/2420543/144679248-1f6e4c10-a558-424c-b6f5-b3695269c906.png" width=128 alt="logo"><br> EdgeVPN <br> </h1> <h3 align="center">Create Decentralized private networks </h3> <p align="center"> <a href="https://opensource.org/licenses/"> <img src="https://img.shields.io/badge/licence-GPL3-brightgreen" alt="license"> </a> <a href="https://github.com/mudler/edgevpn/issues"><img src="https://img.shields.io/github/issues/mudler/edgevpn"></a> <img src="https://img.shields.io/badge/made%20with-Go-blue"> <img src="https://goreportcard.com/badge/github.com/mudler/edgevpn" alt="go report card" /> </p> <p align="center"> <br> Fully Decentralized. Immutable. Portable. Easy to use Statically compiled VPN and a reverse proxy over p2p.<br> <b>VPN</b> - <b>Reverse Proxy</b> - <b>Send files securely over p2p</b> - <b>Blockchain</b> </p> EdgeVPN uses libp2p to build private decentralized networks that can be accessed via shared secrets. It can: - **Create a VPN** : Secure VPN between p2p peers - Automatically assign IPs to nodes - Embedded tiny DNS server to resolve internal/external IPs - Create trusted zones to prevent network access if token is leaked - For example, the [Kairos](https://github.com/kairos-io/kairos) CNCF project uses it as a layer for creating decentralized clusters with Kubernetes - **Act as a reverse Proxy** : Share a tcp service like you would do with `ngrok`. EdgeVPN let expose TCP services to the p2p network nodes without establishing a VPN connection: creates reverse proxy and tunnels traffic into the p2p network. - **Send files via p2p** : Send files over p2p between nodes without establishing a VPN connection. - **Be used as a library**: Plug a distributed p2p ledger easily in your golang code! For example EdgeVPN powers [LocalAI](https://github.com/mudler/LocalAI)'s P2P features (you can learn more about it [here](https://localai.io/features/distribute/)). See the [documentation](https://mudler.github.io/edgevpn). # :camera: Screenshots Dashboard (Dark mode) | Dashboard (Light mode) :-------------------------:|:-------------------------: ![Screenshot 2021-10-31 at 00-12-16 EdgeVPN - Machines index](https://user-images.githubusercontent.com/2420543/163020448-8e9238c1-3b6d-435d-9b25-7729d8779ebd.png) | ![Screenshot 2021-10-31 at 23-03-26 EdgeVPN - Machines index](https://user-images.githubusercontent.com/2420543/163020460-e18c07d7-8426-4992-aab3-0b2fd90279ae.png) DNS | Machine index :-------------------------:|:-------------------------: ![Screenshot 2021-10-31 at 23-03-44 EdgeVPN - Services index](https://user-images.githubusercontent.com/2420543/163020465-3d481da4-4912-445e-afc0-2614966dcadf.png) | ![Screenshot 2021-10-31 at 23-03-59 EdgeVPN - Files index](https://user-images.githubusercontent.com/2420543/163020462-7821a622-8c13-4971-8abe-9c5b6b491ae8.png) Services | Blockchain index :-------------------------:|:-------------------------: ![Screenshot 2021-10-31 at 23-04-12 EdgeVPN - Users connected](https://user-images.githubusercontent.com/2420543/163021285-3c5a980d-2562-4c10-b266-7e99f19d8a87.png) | ![Screenshot 2021-10-31 at 23-04-20 EdgeVPN - Blockchain index](https://user-images.githubusercontent.com/2420543/163020457-77ef6e50-40a6-4e3b-83c4-a81db729bd7d.png) # :new: GUI A Desktop GUI application (alpha) for Linux is available [here](https://github.com/mudler/edgevpn-gui) Dashboard | Connections index :-------------------------:|:-------------------------: ![edgevpn-gui-2](https://user-images.githubusercontent.com/2420543/147854909-a223a7c1-5caa-4e90-b0ac-0ae04dc0949d.png) | ![edgevpn-3](https://user-images.githubusercontent.com/2420543/147854904-09d96991-8752-421a-a301-8f0bdd9d5542.png) ![edgevpn-gui](https://user-images.githubusercontent.com/2420543/147854907-1e4a4715-3181-4dc2-8bc0-d052b3bf46d3.png) | # Kubernetes Check out [Kairos](https://github.com/kairos-io/kairos) for seeing EdgeVPN in action with Kubernetes! # :running: Installation Download the precompiled static release in the [releases page](https://github.com/mudler/edgevpn/releases). You can either install it in your system or just run it. # :computer: Usage EdgeVPN works by generating tokens (or a configuration file) that can be shared between different machines, hosts or peers to access to a decentralized secured network between them. Every token is unique and identifies the network, no central server setup, or specifying hosts ip is required. To generate a config run: ```bash # Generate a new config file and use it later as EDGEVPNCONFIG $ edgevpn -g > config.yaml ``` OR to generate a portable token: ```bash $ EDGEVPNTOKEN=$(edgevpn -g -b) ``` Note, tokens are config merely encoded in base64, so this is equivalent: ```bash $ EDGEVPNTOKEN=$(edgevpn -g | tee config.yaml | base64 -w0) ``` All edgevpn commands implies that you either specify a `EDGEVPNTOKEN` (or `--token` as parameter) or a `EDGEVPNCONFIG` as this is the way for `edgevpn` to establish a network between the nodes. The configuration file is the network definition and allows you to connect over to your peers securely. **Warning** Exposing this file or passing-it by is equivalent to give full control to the network. ## :satellite: As a VPN To start the VPN, simply run `edgevpn` without any argument. An example of running edgevpn on multiple hosts: ```bash # on Node A $ EDGEVPNTOKEN=.. edgevpn --address 10.1.0.11/24 # on Node B $ EDGEVPNTOKEN=.. edgevpn --address 10.1.0.12/24 # on Node C ... $ EDGEVPNTOKEN=.. edgevpn --address 10.1.0.13/24 ... ``` ... and that's it! the `--address` is a _virtual_ unique IP for each node, and it is actually the ip where the node will be reachable to from the vpn. You can assign IPs freely to the nodes of the network, while you can override the default `edgevpn0` interface with `IFACE` (or `--interface`) *Note*: It might take up time to build the connection between nodes. Wait at least 5 mins, it depends on the network behind the hosts. # :question: Is it for me? EdgeVPN makes VPN decentralization a first strong requirement. Its main use is for edge and low-end devices and especially for development. The decentralized approach has few cons: - The underlying network is chatty. It uses a Gossip protocol for synchronizing the routing table and p2p. Every blockchain message is broadcasted to all peers, while the traffic is to the host only. - Might be not suited for low latency workload. Keep that in mind before using it for your prod networks! But it has a strong pro: it just works everywhere libp2p works! # :question: Why? First of all it's my first experiment with libp2p. Second, I always wanted a more "open" `ngrok` alternative, but I always prefer to have "less infra" as possible to maintain. That's why building something like this on top of `libp2p` makes sense. # :warning: Warning! I'm not a security expert, and this software didn't went through a full security audit, so don't use and rely on it for sensible traffic and not even for production environment! I did this mostly for fun while I was experimenting with libp2p. ## Example use case: network-decentralized [k3s](https://github.com/k3s-io/k3s) test cluster Let's see a practical example, you are developing something for kubernetes and you want to try a multi-node setup, but you have machines available that are only behind NAT (pity!) and you would really like to leverage HW. If you are not really interested in network performance (again, that's for development purposes only!) then you could use `edgevpn` + [k3s](https://github.com/k3s-io/k3s) in this way: 1) Generate edgevpn config: `edgevpn -g > vpn.yaml` 2) Start the vpn: on node A: `sudo IFACE=edgevpn0 ADDRESS=10.1.0.3/24 EDGEVPNCONFIG=vpn.yml edgevpn` on node B: `sudo IFACE=edgevpn0 ADDRESS=10.1.0.4/24 EDGEVPNCONFIG=vpm.yml edgevpn` 3) Start k3s: on node A: `k3s server --flannel-iface=edgevpn0` on node B: `K3S_URL=https://10.1.0.3:6443 K3S_TOKEN=xx k3s agent --flannel-iface=edgevpn0 --node-ip 10.1.0.4` We have used flannel here, but other CNI should work as well. # :notebook: As a library EdgeVPN can be used as a library. It is very portable and offers a functional interface. To join a node in a network from a token, without starting the vpn: ```golang import ( node "github.com/mudler/edgevpn/pkg/node" ) e := node.New( node.Logger(l), node.LogLevel(log.LevelInfo), node.MaxMessageSize(2 << 20), node.FromBase64( mDNSEnabled, DHTEnabled, token ), // .... ) e.Start(ctx) ``` or to start a VPN: ```golang import ( vpn "github.com/mudler/edgevpn/pkg/vpn" node "github.com/mudler/edgevpn/pkg/node" ) opts, err := vpn.Register(vpnOpts...) if err != nil { return err } e := edgevpn.New(append(o, opts...)...) e.Start(ctx) ``` # πŸ§‘β€πŸ’» Projects using EdgeVPN - [Kairos](https://github.com/kairos-io/kairos) - creates Kubernetes clusters with K3s automatically using EdgeVPN networks # 🐜 Contribution You can improve this project by contributing in following ways: - report bugs - fix issues - request features - asking questions (just open an issue) and any other way if not mentioned here. # :notebook: Credits - The awesome [libp2p](https://github.com/libp2p) library - [https://github.com/songgao/water](https://github.com/songgao/water) for tun/tap devices in golang - [Room example](https://github.com/libp2p/go-libp2p/tree/master/examples/chat-with-rendezvous) (shamelessly parts are copied by) - Logo originally made by [Uniconlabs](https://www.flaticon.com/authors/uniconlabs) from [www.flaticon.com](https://www.flaticon.com/), modified by me # :notebook: Troubleshooting If during bootstrap you see messages like: ``` edgevpn[3679]: * [/ip4/104.131.131.82/tcp/4001] failed to negotiate stream multiplexer: context deadline exceeded ``` or ``` edgevpn[9971]: 2021/12/16 20:56:34 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size for details. ``` or generally experiencing poor network performance, it is recommended to increase the maximum buffer size by running: ``` sysctl -w net.core.rmem_max=2500000 ``` # :notebook: TODO - [x] VPN - [x] Send and receive files via p2p - [x] Expose remote/local services via p2p tunnelling - [x] Store arbitrary data on the blockchain - [x] Allow to persist blockchain on disk # :notebook: LICENSE Apache License v2. ``` edgevpn Copyright (C) 2021 Ettore Di Giacinto This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. ```

Networking & Hosting Crypto & Blockchain VPN & Firewalls
1.9K Github Stars