---
**Note**: The `main` branch tracks Firezone 1.x. See the
[`legacy` branch](https://github.com/firezone/firezone/tree/legacy) if you're
looking for Firezone 0.7.
[Read the 1.0 announcement for more](https://www.firezone.dev/blog/firezone-1-0).
---
## Overview
[Firezone](https://www.firezone.dev/?utm_source=readme) is an open source
platform to securely manage remote access for any-sized organization. Unlike
most VPNs, Firezone takes a granular, least-privileged approach to access
management with group-based policies that control access to individual
applications, entire subnets, and everything in between.
## Features
Firezone is:
- **Fast:** Built on WireGuard® to be
[3-4 times](https://wireguard.com/performance/) faster than OpenVPN.
- **Scalable:** Deploy two or more gateways for automatic load balancing and
failover.
- **Private:** Peer-to-peer, end-to-end encrypted tunnels prevent packets from
routing through our infrastructure.
- **Secure:** Zero attack surface thanks to Firezone's holepunching tech which
establishes tunnels on-the-fly at the time of access.
- **Open:** Our entire product is open-source, allowing anyone to audit the
codebase.
- **Flexible:** Authenticate users via email, Google Workspace, Okta, Entra ID,
or OIDC and sync users and groups automatically.
- **Simple:** Deploy gateways and configure access in minutes with a snappy
admin UI.
Firezone is **not:**
- A tool for creating bi-directional mesh networks
- A full-featured router or firewall
- An IPSec or OpenVPN server
## Contents of this repository
This is a monorepo containing the full Firezone product, marketing website, and
product documentation, organized as follows:
- [elixir](../elixir): Control plane and internal Elixir libraries:
- [elixir/apps/web](../elixir/apps/web): Admin UI
- [elixir/apps/api](../elixir/apps/api): API for Clients, Relays and Gateways.
- [rust/](../rust): Data plane and internal Rust libraries:
- [rust/gateway](../rust/gateway): Gateway - Tunnel server based on WireGuard
and deployed to your infrastructure.
- [rust/relay](../rust/relay): Relay - STUN/TURN server to facilitate
holepunching.
- [rust/headless-client](../rust/headless-client): Cross-platform CLI client.
- [rust/gui-client](../rust/gui-client): Cross-platform GUI client.
- [swift/](../swift/apple): macOS / iOS clients.
- [kotlin/](../kotlin/android): Android / ChromeOS clients.
- [website/](../website): Marketing website and product documentation.
- [terraform/](../terraform): Terraform files for various example deployments.
- [terraform/examples/aws/nat-gateway](../terraform/examples/aws/nat-gateway):
Example Terraform configuration for deploying a cluster of Firezone Gateways
behind a NAT gateway on AWS with a single egress IP.
- [terraform/examples/google-cloud/nat-gateway](../terraform/examples/google-cloud/nat-gateway):
Example Terraform configuration for deploying a cluster of Firezone Gateways
behind a NAT gateway on GCP with a single egress IP.
- [terraform/examples/azure/nat-gateway](../terraform/examples/azure/nat-gateway):
Example Terraform configuration for deploying a cluster of Firezone Gateways
behind a NAT gateway on Azure with a single egress IP.
- [terraform/modules/aws/firezone-gateway](../terraform/modules/aws/firezone-gateway):
Production-ready Terraform module for deploying Firezone Gateways to AWS
using Auto Scaling Groups.
- [terraform/modules/google-cloud/apps/gateway-region-instance-group](../terraform/modules/google-cloud/apps/gateway-region-instance-group):
Production-ready Terraform module for deploying regional Firezone Gateways
to Google Cloud Compute using Regional Instance Groups.
- [terraform/modules/aws/firezone-gateway](../terraform/modules/aws/firezone-gateway):
Production-ready Terraform module for deploying Firezone Gateways to AWS
using Auto Scaling Groups.
- [terraform/modules/azure/firezone-gateway](../terraform/modules/azure/firezone-gateway):
Production-ready Terraform module for deploying Firezone Gateways to Azure
using Azure Orchestrated Virtual Machine Scale Sets.
## Quickstart
The quickest way to get started with Firezone is to sign up for an account at
[https://app.firezone.dev/sign_up](https://app.firezone.dev/sign_up?utm_source=readme).
Once you've signed up, follow the instructions in the welcome email to get
started.
## Frequently asked questions (FAQ)
### Can I self-host Firezone?
Our [license](#license) won't stop you from self-hosting the entire Firezone
product top to bottom, but our internal APIs are changing rapidly so we can't
meaningfully support self-hosting Firezone in production at this time.
If you're feeling especially adventurous and want to self-host Firezone for
**educational** or **hobby** purposes, follow the instructions to spin up a
local development environment in [CONTRIBUTING.md](CONTRIBUTING.md).
The latest published clients (on App Stores and on
[releases](https://github.com/firezone/firezone/releases)) are only guaranteed
to work with the managed version of Firezone and may not work with a self-hosted
portal built from this repository. This is because Apple and Google can
sometimes delay updates to their app stores, and so the latest published version
may not be compatible with the tip of `main` from this repository.
Therefore, if you're experimenting with self-hosting Firezone, you will probably
want to use clients you build and distribute yourself as well.
See the READMEs in the following directories for more information on building
each client:
- macOS / iOS: [swift/apple](../swift/apple)
- Android / ChromeOS: [kotlin/android](../kotlin/android)
- Windows / Linux: [rust/gui-client](../rust/gui-client)
### How long will 0.7 be supported until?
**Firezone 0.7 is currently end-of-life and has stopped receiving updates as of
January 31st, 2024.** It will continue to be available indefinitely from the
`legacy` branch of this repo under the Apache 2.0 license.
### How much does it cost?
We offer flexible per-seat monthly and annual plans for the cloud-managed
version of Firezone, with optional invoicing for larger organizations. See our
[pricing](https://www.firezone.dev/pricing?utm_source=readme) page for more
details.
Those experimenting with self-hosting can use Firezone for free without feature
or seat limitations, but we can't provide support for self-hosted installations
at this time.
## Documentation
Additional documentation on general usage, troubleshooting, and configuration
can be found at [https://www.firezone.dev/kb](https://www.firezone.dev/kb).
## Get Help
If you're looking for help installing, configuring, or using Firezone, check our
community support options:
1. [Discussion Forums](https://discourse.firez.one/?utm_source=readme): Ask
questions, report bugs, and suggest features.
1. [Join our Discord Server](https://discord.gg/DY8gxpSgep): Join live
discussions, meet other users, and chat with the Firezone team.
1. [Open a PR](https://github.com/firezone/firezone/issues): Contribute a bugfix
or make a contribution to Firezone.
If you need help deploying or maintaining Firezone for your business, consider
[contacting our sales team](https://www.firezone.dev/contact/sales?utm_source=readme)
to speak with a Firezone expert.
## Star History
[](https://star-history.com/#firezone/firezone&Date)
## Developing and Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md).
## Security
See [SECURITY.md](SECURITY.md).
## License
Portions of this software are licensed as follows:
- All content residing under the "elixir/" directory of this repository, if that
directory exists, is licensed under the "Elastic License 2.0" license defined
in "elixir/LICENSE".
- All third party components incorporated into the Firezone Software are
licensed under the original license provided by the owner of the applicable
component.
- Content outside of the above mentioned directories or restrictions above is
available under the "Apache 2.0 License" license as defined in "LICENSE".
WireGuard® is a registered trademark of Jason A. Donenfeld.