
Deploy FusionAuth on Your Own Server
FusionAuth is a scalable, identity and user management platform built for devs
Want to deploy FusionAuth on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.
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.
Install Docker
Skip this step if Docker is already installed on your server.
curl -fsSL https://get.docker.com | sh
Configure
Customize the settings below. Defaults work for most cases.
General
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
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)"