--- layout: docs page_title: Install Consul description: >- Install Consul to get started with service discovery and service mesh. Follow the installation instructions to download the precompiled binary, or use Go to compile from source. --- # Install Consul Installing Consul is simple. There are three approaches to installing Consul: 1. Using a [precompiled binary](#precompiled-binaries) 1. Installing [from source](#compiling-from-source) 1. Installing [on Kubernetes](/docs/k8s/installation/install) Downloading a precompiled binary is easiest, and we provide downloads over TLS along with SHA256 sums to verify the binary. We also distribute a PGP signature with the SHA256 sums that can be verified. The [Getting Started guides](https://learn.hashicorp.com/collections/consul/get-started-vms?utm_source=docs) provide a quick walkthrough of installing and using Consul on a VM. ## Precompiled Binaries To install the precompiled binary, [download](/downloads) the appropriate package for your system. Consul is currently packaged as a zip file. We do not have any near term plans to provide system packages. Once the zip is downloaded, unzip it into any directory. The `consul` binary inside is all that is necessary to run Consul (or `consul.exe` for Windows). No additional files are required to run Consul. Copy the binary to anywhere on your system. If you intend to access it from the command-line, make sure to place it somewhere on your `PATH`. ## Compiling from Source To compile from source, you will need [Go](https://golang.org) installed and a copy of [`git`](https://www.git-scm.com/) in your `PATH`. 1. Clone the Consul repository from GitHub: ```shell $ git clone https://github.com/hashicorp/consul.git $ cd consul ``` 1. Build Consul for your target system. The binary will be placed in `./bin` (relative to the git checkout). <!-- The tabs below are intended to be indented with the step immediately above, but getting that to work is tricky. The pre-commit linting rules will automatically unindent the <Tab> element upon commit. This causes compilation to fail, because <Tabs> and all its contained <Tab> elements need to be at the same indent level for compilation. To circumvent the pre-commit linting rules, commit with: $ git commit --no-verify --> <Tabs> <Tab heading="Compile for your current system"> ```shell-session $ make dev ``` </Tab> <Tab heading="Cross-compile for another system"> Specify your target system by setting the following environment variables before building: - `GOOS`: Target operating system. Valid values include: `linux`, `darwin`, `windows`, `solaris`, `freebsd`. - `GOARCH`: Target architecture. Valid values include: `386`, `amd64`, `arm`, `arm64` ```shell-session $ export GOOS=linux GOARCH=amd64 $ make dev ``` </Tab> </Tabs> ## Verifying the Installation To verify Consul is properly installed, run `consul version` on your system. You should see help output. If you are executing it from the command line, make sure it is on your PATH or you may get an error about Consul not being found. ```shell-session $ consul version ``` ## Browser Compatibility Considerations Consul currently supports all 'evergreen' browsers, as they are generally on up-to-date versions. For more information on supported browsers, please see our [FAQ](/docs/troubleshoot/faq)