one-click-apps/public/v4/apps/fusionauth.yml

125 lines
5.6 KiB
YAML

captainVersion: 4
services:
$$cap_appname-db:
image: postgres:$$cap_postgres_version
environment:
POSTGRES_USER: $$cap_db_user
POSTGRES_PASSWORD: $$cap_db_pass
POSTGRES_DB: fusionauth
restart: unless-stopped
volumes:
- $$cap_appname-db-data:/var/lib/postgresql/data
caproverExtra:
notExposeAsWebApp: 'true'
$$cap_appname-elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:$$cap_elasticsearch_version
volumes:
- $$cap_appname-elasticsearch-data:/usr/share/elasticsearch/data
restart: always
environment:
ES_JAVA_OPTS: -Xms512m -Xmx512m
cluster.name: $$cap_elasticsearch_cluster_name
http.port: $$cap_container_search_port
node.master: $$cap_elasticsearch_node_master
node.data: $$cap_elasticsearch_node_data
discovery.type: single-node
discovery.zen.minimum_master_nodes: $$cap_elasticsearch_minimum_master_nodes
discovery.zen.ping.unicast.hosts: $$cap_elasticsearch_unicast_hosts
caproverExtra:
containerHttpPort: $$cap_container_search_port
$$cap_appname-fusionauth:
image: fusionauth/fusionauth-app:$$cap_fusionauth_version
depends_on:
- $$cap_appname-db
- $$cap_appname-elasticsearch
environment:
DATABASE_URL: jdbc:postgresql://srv-captain--$$cap_appname-db:5432/fusionauth
DATABASE_ROOT_USER: $$cap_db_user
DATABASE_ROOT_PASSWORD: $$cap_db_pass
DATABASE_USER: $$cap_db_user
DATABASE_PASSWORD: $$cap_db_pass
FUSIONAUTH_MEMORY: $$cap_fusion_memory
FUSIONAUTH_SEARCH_SERVERS: http://srv-captain--$$cap_appname-elasticsearch:9200
FUSIONAUTH_URL: http://srv-captain--$$cap_appname-fusionauth:9011
restart: unless-stopped
volumes:
- $$cap_appname-fusionauth-config:/usr/local/fusionauth/config
caproverExtra:
containerHttpPort: $$cap_container_port
caproverOneClickApp:
variables:
- id: $$cap_db_user
label: Database user
defaultValue: fusion
validRegex: /^([a-zA-Z0-9])+$/
- id: $$cap_db_pass
label: Database password
description: ''
validRegex: /.{1,}/
- id: $$cap_fusionauth_version
label: FusionAuth Version
defaultValue: 1.7.2
description: 'See tags at: https://hub.docker.com/r/fusionauth/fusionauth-app/tags'
validRegex: /^([^\s^\/])+$/
- id: $$cap_fusion_memory
label: Fusion Memory
defaultValue: 256M
description: ''
validRegex: /^([a-zA-Z0-9])+$/
- id: $$cap_postgres_version
label: Postgres Version
defaultValue: '9.6'
description: ''
validRegex: /^([^\s^\/])+$/
- id: $$cap_container_port
label: Container TCP Port
defaultValue: '9011'
description: Internal port for Fusion Auth container to listens to.
validRegex: /^([0-9])+$/
- id: $$cap_container_search_port
label: Container TCP Port
defaultValue: '9200'
description: Internal port for Elasticsearch the container listens to.
validRegex: /^([0-9])+$/
- id: $$cap_elasticsearch_version
label: 'Elasticsearch Version Tag '
description: 'Check out the releases overview: https://www.elastic.co/de/downloads/elasticsearch'
defaultValue: 6.7.1
validRegex: /^([^\s^\/])+$/
- id: $$cap_elasticsearch_cluster_name
label: Cluster Name
description: Only nodes within the same cluster name can be combined
defaultValue: elasticsearch-cluster
validRegex: /^([^\s^\/])+$/
- id: $$cap_elasticsearch_unicast_hosts
label: Unicasts hosts
description: 'References to other node to attach to. (for example: srv-captain--XXX)'
defaultValue: 'false'
validRegex: /^([^\s^\/])+$/
- id: $$cap_elasticsearch_node_data
label: Node Data
description: Should the node used for storing data? (true / false)
defaultValue: 'true'
validRegex: /^([^\s^\/])+$/
- id: $$cap_elasticsearch_node_master
label: Node Master
description: Define node as master-eligible (usual first node YES, others NO).
defaultValue: 'true'
validRegex: /^([^\s^\/])+$/
- id: $$cap_elasticsearch_minimum_master_nodes
label: Minimum Master Nodes
description: 'Define minimum amount of master (N) ( best practice: ceil(N/2 + 1) ).'
defaultValue: '1'
validRegex: /^([0-9])+$/
instructions:
start: >-
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
end: FusionAuth is deployed and available as srv-captain--$$cap_appname-fusionauth:9011 to other apps
displayName: FusionAuth
isOfficial: true
description: FusionAuth is a scalable, identity and user management platform built for devs
documentation: 'Adapted from: https://github.com/FusionAuth/fusionauth-containers'