Install
These commands will download and unpack the latest version of FusionAuth.
By default, FusionAuth installs leverage the database as the User search engine. You may optionally also install and configure Elasticsearch to leverage advanced search functionality.
Optionally, provide the following environment variables to the install script to augment behavior:
TARGET_DIR - The location to install the zip. Default value is $PWD/fusionauth.
VERSION - The version to install. Defaults to the latest stable version.
Docker Compose
Use the following Docker Compose commands to get up and running quickly with FusionAuth, PostgreSQL, and Opensearch. You might need to modify it if you are using a different operating system. Feel free to open an issue in GitHub if you find any issues.
Step 1: Download the Docker files
curl -fsSL https://raw.githubusercontent.com/FusionAuth/fusionauth-containers/main/docker/fusionauth/docker-compose.yml > docker-compose.yml && \
curl -fsSL https://raw.githubusercontent.com/FusionAuth/fusionauth-containers/main/docker/fusionauth/.env > .env
Invoke-WebRequest -UseBasicParsing https://raw.githubusercontent.com/FusionAuth/fusionauth-containers/main/docker/fusionauth/docker-compose.yml -OutFile docker-compose.yml
Invoke-WebRequest -UseBasicParsing https://raw.githubusercontent.com/FusionAuth/fusionauth-containers/main/docker/fusionauth/.env -OutFile .env
Step 2: Start the Docker Compose containers
docker compose up
Then open http://localhost:9011 in your browser.
Docker Vanilla
Use the following Docker commands to start just FusionAuth without a database. You'll need to install and configure a database manually. Feel free to open an issue in GitHub if you find any issues.
Step 1: Install FusionAuth Docker container
docker pull fusionauth/fusionauth-app
Step 2: Start the Docker container
docker run -it -p 9011:9011 --add-host host.docker.internal:host-gateway fusionauth/fusionauth-app
NOTE: If you are running the database on the host machine, use the hostname `host.docker.internal` to connect FusionAuth to the database rather than `localhost`.
Then open http://localhost:9011 in your browser.
macOS Fast Path
Copy and paste the code below into Terminal/iTerm and we'll do the rest (feel free to read the install scripts first).
This installation method installs the FusionAuth ZIP packages into the current working directory.
You'll also need to manually install a database for FusionAuth to work.
You can learn more about our Fast Path installation in our Fast Path Installation Guide.
Feel free to open an issue in GitHub if you find any issues.
Step 1: Download and install the ZIP files
curl -fsSL https://raw.githubusercontent.com/FusionAuth/fusionauth-install/master/install.sh | bash -s && \
cd fusionauth
Step 2: Start FusionAuth
bin/startup.sh
Then open http://localhost:9011 in your browser.
Linux Fast Path
Copy and paste the code below and we'll do the rest (feel free to read the install scripts first). This installation method installs the FusionAuth ZIP packages into the current working directory. You'll also need to manually install a database for FusionAuth to work. You can learn more about our Fast Path installation in our Fast Path Installation Guide. Feel free to open an issue in GitHub if you find any issues.
Step 1: Download and install the ZIP files
curl -fsSL https://raw.githubusercontent.com/FusionAuth/fusionauth-install/master/install.sh | bash -s && \
cd fusionauth
Step 2: Start FusionAuth
bin/startup.sh
Then open http://localhost:9011 in your browser.
Windows Fast Path
Copy and paste the code below into PowerShell and we'll do the rest (feel free to read the install scripts first).
This installation method installs the FusionAuth ZIP packages into the current working directory.
You'll also need to manually install a database for FusionAuth to work.
You can learn more about our Fast Path installation in our Fast Path Installation Guide.
Feel free to open an issue in GitHub if you find any issues.
Step 1: Download and install the ZIP files
Invoke-WebRequest -UseBasicParsing -Uri https://raw.githubusercontent.com/FusionAuth/fusionauth-install/main/install.ps1 | iex
cd fusionauth
Step 2: Start FusionAuth
bin\startup.ps1
Then open http://localhost:9011 in your browser.
Debian Package
Follow the steps below to install FusionAuth on a Debian/Ubuntu style Linux. This installation method installs the FusionAuth platform packages (DEBs) and will require sudo or root access. This command assumes you are using Bash. You might need to modify it if you are using a different shell. You'll also need to manually install a database for FusionAuth to work. Feel free to open an issue in GitHub if you find any issues.
VERSION=$(curl -fsSL https://license.fusionauth.io/api/latest-version) && \
curl -fsSL https://files.fusionauth.io/products/fusionauth/${VERSION}/fusionauth-app_${VERSION}-1_all.deb > fusionauth-app_${VERSION}-1_all.deb && \
sudo dpkg -i fusionauth-app_${VERSION}-1_all.deb && \
sudo systemctl start fusionauth-app
Then open http://localhost:9011 in your browser.
Red Hat Package
Follow the steps below to install FusionAuth on Red Hat or other RPM-based distribution. This installation method installs the FusionAuth platform packages (RPMs) and will require sudo or root access. This command assume s you are using Bash. You might need to modify it if you are using a different shell. You'll also need to manually install a database for FusionAuth to work. Feel free to open an issue in GitHub if you find any issues.
VERSION=$(curl -fsSL https://license.fusionauth.io/api/latest-version) && \
curl -fsSL https://files.fusionauth.io/products/fusionauth/${VERSION}/fusionauth-app-${VERSION}-1.noarch.rpm > fusionauth-app-${VERSION}-1.noarch.rpm && \
sudo rpm -i fusionauth-app-${VERSION}-1.noarch.rpm && \
sudo systemctl start fusionauth-app
Then open http://localhost:9011 in your browser.
Homebrew Installation
Copy and paste each command below into Terminal to install using Homebrew.
You'll also need to manually install a database for FusionAuth to work.
You can also review our Homebrew Installation Guide for more information.
Feel free to open an issue in GitHub if you find any issues.
Step 1: Tap the FusionAuth package, this will only need to be performed once
brew tap fusionauth/homebrew-fusionauth
Step 2: Install the FusionAuth tap, this will only need to be performed once
brew install fusionauth-app
Step 3: Start the FusionAuth service
brew services start fusionauth-app
Than open http://localhost:9011 in your browser.
Google Kubernetes Engine
Follow the steps below to install FusionAuth on Kubernetes using Helm. You’ll need to have a running kubernetes cluster, please visit our documentation for specific steps for cluster setup instructions.
You'll need to update values.yml with database and Elasticsearch configuration information. Please review the Kubernetes Installation Guide for more details.
Feel free to open an issue in GitHub if you find any issues.
helm repo add fusionauth https://fusionauth.github.io/charts && \
curl -o values.yaml https://raw.githubusercontent.com/FusionAuth/charts/master/chart/values.yaml && \
helm install my-release fusionauth/fusionauth -f values.yaml && \
export SVC_NAME=$(kubectl get svc --namespace default -l "app.kubernetes.io/name=fusionauth,app.kubernetes.io/instance=my-release" -o jsonpath="{.items[0].metadata.name}") && \
kubectl port-forward svc/$SVC_NAME 9011:9011
Then open http://localhost:9011 in your browser.
Microsoft Azure Kubernetes Service
Follow the steps below to install FusionAuth on Kubernetes using Helm. You’ll need to have a running kubernetes cluster, please visit our documentation for specific steps for cluster setup instructions.
You'll need to update values.yml with database and Elasticsearch configuration information. Please review the Kubernetes Installation Guide for more details.
Feel free to open an issue in GitHub if you find any issues.
helm repo add fusionauth https://fusionauth.github.io/charts && \
curl -o values.yaml https://raw.githubusercontent.com/FusionAuth/charts/master/chart/values.yaml && \
helm install my-release fusionauth/fusionauth -f values.yaml && \
export SVC_NAME=$(kubectl get svc --namespace default -l "app.kubernetes.io/name=fusionauth,app.kubernetes.io/instance=my-release" -o jsonpath="{.items[0].metadata.name}") && \
kubectl port-forward svc/$SVC_NAME 9011:9011
Then open http://localhost:9011 in your browser.
Amazon Elastic Kubernetes Service
Follow the steps below to install FusionAuth on Kubernetes using Helm. You’ll need to have a running kubernetes cluster, please visit our documentation for specific steps for cluster setup instructions.
You'll need to update values.yml with database and Elasticsearch configuration information. Please review the Kubernetes Installation Guide for more details.
Feel free to open an issue in GitHub if you find any issues.
helm repo add fusionauth https://fusionauth.github.io/charts && \
curl -o values.yaml https://raw.githubusercontent.com/FusionAuth/charts/master/chart/values.yaml && \
helm install my-release fusionauth/fusionauth -f values.yaml && \
export SVC_NAME=$(kubectl get svc --namespace default -l "app.kubernetes.io/name=fusionauth,app.kubernetes.io/instance=my-release" -o jsonpath="{.items[0].metadata.name}") && \
kubectl port-forward svc/$SVC_NAME 9011:9011
Then open http://localhost:9011 in your browser.
Minikube
Follow the steps below to install FusionAuth on Kubernetes using Helm. You’ll need to have a running kubernetes cluster, please visit our documentation for specific steps for cluster setup instructions.
You'll need to update values.yml with database and Elasticsearch configuration information. Please review the Kubernetes Installation Guide for more details.
Feel free to open an issue in GitHub if you find any issues.
helm repo add fusionauth https://fusionauth.github.io/charts && \
curl -o values.yaml https://raw.githubusercontent.com/FusionAuth/charts/master/chart/values.yaml && \
helm install my-release fusionauth/fusionauth -f values.yaml && \
export SVC_NAME=$(kubectl get svc --namespace default -l "app.kubernetes.io/name=fusionauth,app.kubernetes.io/instance=my-release" -o jsonpath="{.items[0].metadata.name}") && \
kubectl port-forward svc/$SVC_NAME 9011:9011
Then open http://localhost:9011 in your browser.
Helm Package Manager
Follow the steps below to install FusionAuth on Kubernetes using Helm. You'll need to update values.yml with database and Elasticsearch configuration information.
Please review the Kubernetes Installation Guide for more details.
Feel free to open an issue in GitHub if you find any issues.
helm repo add fusionauth https://fusionauth.github.io/charts && \
curl -o values.yaml https://raw.githubusercontent.com/FusionAuth/charts/master/chart/values.yaml && \
helm install my-release fusionauth/fusionauth -f values.yaml && \
export SVC_NAME=$(kubectl get svc --namespace default -l "app.kubernetes.io/name=fusionauth,app.kubernetes.io/instance=my-release" -o jsonpath="{.items[0].metadata.name}") && \
kubectl port-forward svc/$SVC_NAME 9011:9011
Then open http://localhost:9011 in your browser.
Package Downloads
Looking for our standard packages (DEB, RPM and ZIPs)? They are stored in our direct downloads.
FusionAuth Cloud
You can sign up for a free trial of FusionAuth running in our fully managed Cloud. Feel free to open an issue in GitHub if you find any issues.
start free trial
Gitpod Classic
Launch FusionAuth in a Gitpod Classic environment. If you have a Gitpod Enterprise account, you can also launch FusionAuth. Feel free to open an issue in GitHub if you find any issues.
Sandbox (running in FusionAuth Cloud)
Want to check out FusionAuth before installing? Check out our sandbox environment.
P.S. our sandbox environment is running on FusionAuth Cloud.
Marketplaces
FusionAuth can run on any server, anywhere, but is also available on public cloud provider’s marketplaces.
Choose a public cloud below for instructions on how to install using their marketplace.
Digital Ocean
Amazon Web Services
Google Cloud
These configuration steps are common to almost all FusionAuth installations. Take these steps to avoid being inadvertently locked out of your FusionAuth server.
Email is used for many purposes in FusionAuth, including to verify user email addresses and for passwordless authentication. However, one of the most important functions is to allow for forgotten passwords.
Full instructions on how to configure your email server settings.
If you lose your password, you can reset it using the Forgot Password link on the login screen.
Add a Second Admin User
Create a second user with the admin role. This user can provide access should your initially created admin user lose access for any reason.
- Log in to the administrative user interface.
- Navigate to Users .
- Add a user with a known, valid email address and secure password within your organization.
- Register that user with the FusionAuth application and the
admin role.
Activate License Key
Activating the license key will allow access to all of the paid features inside FusionAuth. The key is found in your account portal and is activated in the Reactor tab.
Production keys must be used for any FusionAuth instance that customers will be logging into, that is how we track MAUs.
Non-production keys may be used for any other instances such as your developers’ laptops, QA, or UAT.
- Log in to the administrative user interface.
- Navigate to Plan and copy the appropriate key.
- Access the FusionAuth instance and navigate to the Reactor .
- Paste that key into the License Key field and Activate it.
Full instructions on how to activate your license.
Set Up an API Key
Create an API key you can use to manage FusionAuth in an emergency. If you lose access to the administrative user interface, you can use this API key to retain access to your FusionAuth instance by adding a new admin user.
- Log in to the administrative user interface.
- Navigate to Settings -> API Keys .
- Add an API Key with no limitations. This will make it a super user key with no limitations.
- Note the key value, and store it someplace safe.
Modify the Tenant Issuer
The Issuer , found by navigating to Tenants -> Your Tenant -> General defaults to acme.com. This is not usually what you want.
This value is used by any JWTs created by the OAuth grants or the Login API.
While the exact value you change this to varies based on how you are using FusionAuth, a typical value is the URL of the FusionAuth instance, such as https://auth.example.com.
Summary
If you take care of these steps when you first install FusionAuth, you’ll have multiple ways to access your instance should the user you created on installation be removed or lose access, and you’ll be well on your way towards using FusionAuth for your authentication needs.