Back to Apps
FusionAuth

Deploy FusionAuth on Your Own Server

FusionAuth is a scalable, identity and user management platform built for devs

🛠️ Developer Tools

Want to deploy FusionAuth on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.

Get Started

What is FusionAuth?

NOTE: This app requires at least 4GB of RAM. Without this requirement it fails to start up. FusionAuth is a modern platform for Customer Identity and Access Management (CIAM). FusionAuth provides APIs and a responsive web user interface to support login, registration, localized email, multi-factor authentication, reporting and much more. See: https://fusionauth.io/docs/v1/tech/getting-started/ and https://github.com/FusionAuth/fusionauth-containers

Self-Host FusionAuth

Follow these steps to deploy on your own server.

1

Install Docker

Skip this step if Docker is already installed on your server.

curl -fsSL https://get.docker.com | sh
2

Configure

Customize the settings below. Defaults work for most cases.

General
3

Deploy

Copy the configuration and run it on your server.

services:
  fusionauth-db:
    image: postgres:9.6
    environment:
      POSTGRES_DB: fusionauth
      POSTGRES_PASSWORD: ""
      POSTGRES_USER: fusion
    volumes:
      - fusionauth-db-data:/var/lib/postgresql/data
  fusionauth-elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.7.1
    environment:
      ES_JAVA_OPTS: -Xms512m -Xmx512m
      cluster.name: elasticsearch-cluster
      discovery.type: single-node
      discovery.zen.minimum_master_nodes: "1"
      discovery.zen.ping.unicast.hosts: "false"
      http.port: "9200"
      node.data: "true"
      node.master: "true"
    volumes:
      - fusionauth-elasticsearch-data:/usr/share/elasticsearch/data
  fusionauth-fusionauth:
    image: fusionauth/fusionauth-app:1.7.2
    environment:
      DATABASE_PASSWORD: ""
      DATABASE_ROOT_PASSWORD: ""
      DATABASE_ROOT_USER: fusion
      DATABASE_URL: jdbc:postgresql://fusionauth-db:5432/fusionauth
      DATABASE_USER: fusion
      FUSIONAUTH_MEMORY: 256M
      FUSIONAUTH_SEARCH_SERVERS: http://fusionauth-elasticsearch:9200
      FUSIONAUTH_URL: http://fusionauth-fusionauth:9011
    volumes:
      - fusionauth-fusionauth-config:/usr/local/fusionauth/config
    depends_on:
      - fusionauth-db
      - fusionauth-elasticsearch
volumes:
  fusionauth-db-data: {}
  fusionauth-elasticsearch-data: {}
  fusionauth-fusionauth-config: {}

Then run:

docker compose up -d
4

Access

Once started, access your app at http://localhost:80

Why Self-Host FusionAuth?

Full Data Ownership

Your data stays on your servers. No third-party access.

No Monthly Fees

Pay only for your server. No per-seat or usage charges.

Complete Control

Customize, backup, and scale on your own terms.

Privacy & Compliance

Meet GDPR, HIPAA, or internal security requirements.

Technical Details

Docker Image

postgres:${postgres_version}

Want to go faster?

Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.

Install on any Linux server:

sh -c "$(curl -sSL https://get.senate.sh)"