generator-living-atlas
Version:
A Yeoman Generator for Living Atlas Ansible Inventories
1,024 lines (854 loc) • 114 kB
Plain Text
#
# This file was autogenerated by `yo living-atlas`.
#
# Please do not edit this file directly so you can rerun new versions of the
# generator in the future including new functionalities and bugfixes.
# See: https://github.com/living-atlases/generator-living-atlas#rerunning-the-generator
#
# Edit your local-extra.ini file instead that has precedence over this.
#
<%_ if (typeof LA_localhost_mode !== 'undefined' && LA_localhost_mode) { _%>
#
# WARNING: This is a LOCAL DEVELOPMENT inventory (autogenerated).
# All hosts are mapped to localhost for local docker-compose testing.
# DO NOT use this inventory for production deployments.
# This file is always regenerated - do not edit it directly.
#
<%_ } _%>
<%_
const physicalServerMap = new Map((typeof LA_physical_servers != 'undefined') ? LA_physical_servers : []);
const hasAliases = Array.from(physicalServerMap.values()).some(aliases => aliases.length > 1);
_%>
<%_ if (hasAliases) { _%>
# NOTE: When multiple services are deployed on the same physical server,
# this inventory uses hostname aliases to prevent Ansible variable conflicts.
#
# Aliases follow the pattern: <physical-server>.<service-name>
# Example: server1.collectory, server1.images, server1.solr
#
# Each alias points to the same physical server via ansible_host.
# Common server tasks should target the physical server groups (e.g., [server1]).
#
[all]
<%_ for (const [physical, aliases] of physicalServerMap.entries()) {
// Skip empty physical servers
if (physical && physical !== '' && aliases.length > 1) {
for (const alias of aliases) { _%>
<%= alias %> ansible_host=<%= (typeof LA_localhost_mode !== 'undefined' && LA_localhost_mode) ? 'localhost' : physical %>
<%_ }
}
} _%>
<%_ } _%>
<%_ for (var [group, servers] of Object.entries(LA_groups_and_servers)) {_%>
[<%= group %>]
<%_ for(var i=0; i < servers.length; i++) {
var physicalHost = servers[i];
var isAliased = physicalServerMap.has(physicalHost) && physicalServerMap.get(physicalHost).length > 1;
var entryName = physicalHost;
if (isAliased && typeof LA_services_desc != 'undefined') {
// Find service name for this group
var serviceName = Object.keys(LA_services_desc).find(s => LA_services_desc[s].group === group);
if (serviceName) {
entryName = physicalHost + '.' + serviceName;
}
}
extravars = group === 'zookeeper'? ` zookeeper_myid=${parseInt(i)+1}`:'';
extravars = group === 'solrcloud'? ` solr_host=${entryName}${extravars}`:extravars;
extravars = group === 'cas-servers'? ` nginx_vhost_fast_mode=false${extravars}`:extravars;
extravars = group === 'events_elasticsearch'? ` elasticsearch_node_name=${entryName}${extravars}`:extravars;
var isDockerSwarm = (group === 'zookeeper' || group === 'solrcloud') &&
Array.isArray(LA_groups_and_servers['docker_swarm']) &&
LA_groups_and_servers['docker_swarm'].includes(physicalHost);
var isDockerCompose = (group === 'zookeeper' || group === 'solrcloud') &&
Array.isArray(LA_groups_and_servers['docker_compose']) &&
LA_groups_and_servers['docker_compose'].includes(physicalHost);
if (isDockerSwarm || isDockerCompose) {
extravars = '';
}
_%>
<%- (typeof LA_localhost_mode !== 'undefined' && LA_localhost_mode) ? 'localhost' : entryName %><%= extravars %>
<%_ } %>
<%_ } _%>
<%_ // Generate physical server groups for common tasks if aliases exist _%>
<%_ if (hasAliases) {
for (const [physical, aliases] of physicalServerMap.entries()) {
// Skip empty physical servers
if (physical && physical !== '' && aliases.length > 1) { _%>
[<%= physical.replace(/\./g, '_') %>_group]
<%_ for (const alias of aliases) { _%>
<%= alias %>
<%_ } %>
<%_ }
}
} _%>
<%_ for (var [parent, childgroup] of Object.entries(LA_groups_children)) { _%>
[<%= parent %>:children]
<%_ for (var [child, servers] of Object.entries(childgroup)) { _%>
<%= child %>
<%_ } %>
<%_ } _%>
<%_ if(Array.isArray(LA_groups_and_servers['docker_swarm']) && LA_groups_and_servers['docker_swarm'].length > 0) { _%>
[docker_swarm_managers]
<%_ LA_groups_and_servers['docker_swarm'].forEach(function(server) { _%>
<%= (typeof LA_localhost_mode !== 'undefined' && LA_localhost_mode) ? 'localhost' : server %>
<%_ }); _%>
[docker_swarm_workers]
<%_ LA_groups_and_servers['docker_swarm'].forEach(function(server) { _%>
<%= (typeof LA_localhost_mode !== 'undefined' && LA_localhost_mode) ? 'localhost' : server %>
<%_ }); _%>
<%_ } _%>
<%_ if(Array.isArray(LA_groups_and_servers['docker_compose']) && LA_groups_and_servers['docker_compose'].length > 0) { _%>
[docker_compose_hosts]
<%_ LA_groups_and_servers['docker_compose'].forEach(function(server) { _%>
<%= (typeof LA_localhost_mode !== 'undefined' && LA_localhost_mode) ? 'localhost' : server %>
<%_ }); _%>
<%_ } _%>
<%_ for (var [parent, childgroup] of Object.entries(LA_groups_children)) { _%>
<%_ for (var [child, servers] of Object.entries(childgroup)) { _%>
[<%= child %>]
<%_ for(var i=0; i < servers.length; i++) { _%>
<%= (typeof LA_localhost_mode !== 'undefined' && LA_localhost_mode) ? 'localhost' : servers[i] %>
<%_ } %>
<%_ } _%>
<%_ } _%>
<%_ if (LA_use_spatial) { _%>
[geoserver]
<%= LA_spatial_hostname %>
[geonetwork]
<%= LA_spatial_hostname %>
[spatial-hub]
<%= LA_spatial_hostname %> nginx_vhost_fast_mode=false
[spatial-service]
<%= LA_spatial_hostname %> nginx_vhost_fast_mode=false
<%_ } _%>
[all:vars]
#### all:vars section (common variables for all playbooks/roles)
<%_ if (typeof LA_localhost_mode !== 'undefined' && LA_localhost_mode) { _%>
# Local development mode: connect to localhost directly
ansible_connection=local
docker_development_mode=true
<%_ } _%>
nginx_vhost_fast_mode = <% if (typeof LA_nginx_vhost_fast_mode != 'undefined') { %><%- LA_nginx_vhost_fast_mode %><% } else { %>false<% } %>
i18n_package_enabled = true
orgNameLong = <%= LA_project_name %>
orgNameShort = <%= LA_project_shortname %>
ansible_user=<% if (typeof LA_variable_ansible_user != 'undefined') { %><%- LA_variable_ansible_user %><% } else { %>ubuntu<% } %>
ansible_become=yes
docker_default_user=<% if (typeof LA_variable_ansible_user != 'undefined') { %><%- LA_variable_ansible_user %><% } else { %>ubuntu<% } %>
is_vagrant=false
deployment_type = 'vm'
<%_ if (typeof LA_use_docker_swarm != 'undefined' && LA_use_docker_swarm) { _%>
[docker_swarm_managers:vars]
deployment_type = 'swarm'
[docker_swarm_workers:vars]
deployment_type = 'swarm'
<%_ } _%>
# Mounted storage is usually /mnt on EC2. Create a symlink to /mnt -> /data
data_dir=/data
# Use /data too for docker
containerd_data_dir=/data/var-lib-containerd
skin_home_url = <%= LA_urls_prefix %><%= LA_domain %>
# Used by mysql connection
server_tz = Europe/Paris
use_ala_bie = <% if (typeof LA_use_species != 'undefined') { %><%- LA_use_species %><% } else { %>false<% } %>
use_spatial = <% if (typeof LA_use_spatial != 'undefined') { %><%- LA_use_spatial %><% } else { %>false<% } %>
use_regions = <% if (typeof LA_use_regions != 'undefined') { %><%- LA_use_regions %><% } else { %>false<% } %>
use_species = <% if (typeof LA_use_species != 'undefined') { %><%- LA_use_species %><% } else { %>false<% } %>
use_species_lists = <% if (typeof LA_use_species_lists != 'undefined') { %><%- LA_use_species_lists %><% } else { %>false<% } %>
use_cas = <% if (typeof LA_use_CAS != 'undefined') { %><%- LA_use_CAS %><% } else { %>false<% } %>
use_images = <% if (typeof LA_use_images != 'undefined') { %><%- LA_use_images %><% } else { %>false<% } %>
use_alerts = <% if (typeof LA_use_alerts != 'undefined') { %><%- LA_use_alerts %><% } else { %>false<% } %>
use_doi = <% if (typeof LA_use_doi != 'undefined') { %><%- LA_use_doi %><% } else { %>false<% } %>
use_webapi = <% if (typeof LA_use_webapi != 'undefined') { %><%- LA_use_webapi %><% } else { %>false<% } %>
use_dashboard = <% if (typeof LA_use_dashboard != 'undefined') { %><%- LA_use_dashboard %><% } else { %>false<% } %>
use_biocache_backend = <% if (typeof LA_use_biocache_store != 'undefined') { %><%- LA_use_biocache_store %><% } else { %>false<% } %>
use_pipelines = <% if (typeof LA_use_pipelines != 'undefined') { %><%- LA_use_pipelines %><% } else { %>false<% } %>
use_solrcloud = <% if (typeof LA_use_solrcloud != 'undefined') { %><%- LA_use_solrcloud %><% } else { %>false<% } %>
use_sds = <% if (typeof LA_use_sds != 'undefined') { %><%- LA_use_sds %><% } else { %>false<% } %>
use_biocollect = <% if (typeof LA_use_biocollect != 'undefined') { %><%- LA_use_biocollect %><% } else { %>false<% } %>
use_namematching_service = <% if (typeof LA_use_namematching_service != 'undefined') { %><%- LA_use_namematching_service %><% } else { %>false<% } %>
use_sensitive_data_service = <% if (typeof LA_use_sensitive_data_service != 'undefined') { %><%- LA_use_sensitive_data_service %><% } else { %>false<% } %>
use_data_quality = <% if (typeof LA_use_data_quality != 'undefined') { %><%- LA_use_data_quality %><% } else { %>false<% } %>
use_events = <% if (typeof LA_variable_enable_events != 'undefined') { %><%- LA_variable_enable_events %><% } else { %>false<% } %>
use_events_elasticsearch = <% if (typeof LA_use_events_elasticsearch != 'undefined') { %><%- LA_use_events_elasticsearch %><% } else { %>false<% } %>
events_enabled = <% if (typeof LA_variable_enable_events != 'undefined') { %><%- LA_variable_enable_events %><% } else { %>false<% } %>
## EMAILS
technical_contact = <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %>
orgSupportEmail= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %>
download_support_email= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %>
email_sender= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %>
support_email= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %>
swagger_contact_email= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %>
orgEmail= <% if (typeof LA_variable_orgEmail != 'undefined') { %><%- LA_variable_orgEmail %><% } else { %>info@<%= LA_domain %><% } %>
eml_email_address = <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %>
noreply_email= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %>
############# GBIF Name matching index
<%_ if (LA_use_namematching_service) { _%>
namematching_service_url = <%= LA_urls_prefix %><%= LA_namematching_service_url %><%= LA_namematching_service_path %>
# Used by spatial
namematching_url = <%= LA_urls_prefix %><%= LA_namematching_service_url %><%= LA_namematching_service_path %>
<%_ } _%>
# GBIF Taxonomy Backbone
custom_namematching_url = https://datos.gbif.es/others/nameindex-gbif-backbone-lucene-6-2024101001.tgz
nameindex_to_use = custom
nameindex_datestamp = gbif-backbone-lucene-6-2024101001
nameindex_checksum = sha1:0a18488a2d08666bbf9a6e943cd49d0ff3102e30
ala_namemaching_service_source = https://datos.gbif.es/others/nameindex-gbif-backbone-lucene-8-2024101001.tgz
ala_namemaching_service_source_sha1 = a07d07ffaa2588532ad71c7c510013dda20e231a
ala_sensitive_data_service_namematching_source = https://datos.gbif.es/others/nameindex-gbif-backbone-lucene-6-2024101001.tgz
ala_sensitive_data_service_namematching_sha1 = 0a18488a2d08666bbf9a6e943cd49d0ff3102e30
# Use debian packages instead of docker as they are more configurable
use_docker_with_pipelines = false
# GBIF DwCA for bie-index
namedata_to_use = custom
custom_namedata_repo = https://datos.gbif.es/namedata
custom_name_sources = [{"name": "gbif-backbone", "checksum": "sha1:c356d796646cbcb093e7cefb820d013df975ca6a", "datestamp": "2024101001"}]
####################### Biocache service #######################################
biocache_db_host = <%= LA_biocache_backend_hostname %>
biocache_db_type = cassandra3
biocache_db_port = 9042
cassandra_listen_host = <%= LA_biocache_backend_hostname %>
use_cassandra3 = true
biocache_service_hostname = <%= LA_biocache_service_url %>
biocache_service_url = <%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %>
biocache_service_base_url = <%= LA_urls_prefix %><%= LA_biocache_service_url %>
biocache_service_context_path = <%= LA_biocache_service_path %>
cassandra_keyspace = {{ 'biocache' if biocache_service_version is version('3', '>=') else 'occ' }}
logging_enabled = true
occurrence_log_enabled = false
default_country =
<%_ if (LA_use_spatial) { _%>
layers_service_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/ws
layers_base_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/ws
spatial_layers_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/ws/fields
<%_ } else { _%>
# While you decide to enable and deploy the spatial service we use ALA service to avoid issues
layers_service_url=https://spatial.ala.org.au/ws
spatial_layers_url=https://spatial.ala.org.au/ws/fields
<%_ } _%>
layers_service_sampling = <%= LA_use_spatial %>
enable_lists = <%= LA_use_species_lists %>
include_species_lists = <%= LA_use_species_lists %>
<%_ if (LA_use_species_lists) { _%>
lists_service_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>
specieslist_apikey_check_url = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey=
# Used by bie, probably for new lists service (see https://lists-ws.dev.ala.org.au), meanwhile
species_list_ws_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>/ws
<%_ } else { _%>
species_list_ws_url = https://lists.ala.org.au/ws
<%_ } _%>
commonname_lang = en
media_store_local = <%= !LA_use_images %>
<%_ if (LA_use_images) { _%>
media_store_url=<%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %>
<%_ } _%>
download_url=<%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_biocache_service_path %>/biocache-download
download_dir=/data/biocache-download
<%_ if (LA_use_spatial) { _%>
geoserver_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/geoserver
# Used by regions:
geoserver_base_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/geoserver
<%_ } else { _%>
# While you decide to enable and deploy the spatial service we use ALA service to avoid issues
geoserver_url=https://spatial.ala.org.au/geoserver
<%_ } _%>
sightings_base_url=
biocache_userdetails_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/userDetails/
biocache_jwt_scopes = users/read doi/write
####################### Hub ###################################################
biocache_hub_hostname = <%= LA_ala_hub_url %>
biocache_hub_url = <%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %>
biocache_hub_base_url = <%= LA_urls_prefix %><%= LA_ala_hub_url %>
biocache_hub_context_path = <%= LA_ala_hub_path %>
# Used by Image service
biocache_url = <%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %>
# Used by regions, userdetails, apikey, lists, ...
biocache_base_url = <%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %>
biocache_hub_artifact = ala-hub
biocache_hub_skin_layout = ala
biocache_hub_uri_filter_pattern=/admin/*,/alaAdmin/*,/download/*
biocache_query_context = {{ '-_nest_parent_:*' if biocache_service_version is version('3', '>=') else '' }}
bie_biocache_query_context =
club_role_for_hub = ROLE_ADMIN
authorise_roles = ROLE_ADMIN,ROLE_COLLECTION_ADMIN
ala_hub_webservice_jwt_scopes=users/read users/write
biocache_hub_userdetails_base_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails
images_metadata_url=<%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %>/image/details?imageId=
userdetails_context_path = userdetails
# By default caches are disabled (the collections cache is problematic when collectory + biocache on same server)
# Configure properly for your case
caches_auth_enabled=<% if (typeof LA_variable_caches_auth_enabled != 'undefined') { %><%- LA_variable_caches_auth_enabled %><% } else { %>false<%_ } %>
caches_log_enabled=<% if (typeof LA_variable_caches_logs_enabled != 'undefined') { %><%- LA_variable_caches_logs_enabled %><% } else { %>false<%_ } %>
# If collections cache is disabled biocache-service will show collections_uid, institutions_uid instead of their respective names in facets and legends
caches_collections_enabled=<% if (typeof LA_variable_caches_collections_enabled != 'undefined') { %><%- LA_variable_caches_collections_enabled %><% } else { %>false<%_ } %>
caches_layers_enabled=<% if (typeof LA_variable_caches_layers_enabled != 'undefined') { %><%- LA_variable_caches_layers_enabled %><% } else { %>false<%_ } %>
# Disabled caches - the collections cache is problematic when collectory + biocache on same server:
# If collections cache is disabled biocache-service will show collections_uid, institutions_uid instead of their respective names in facets and legends
org_url = <%= LA_urls_prefix %><%= LA_domain %>
skin_orgNameLong = <%= LA_project_name %>
info_app_description = <%= LA_project_name %>
explore_your_area_lat = <% if (typeof LA_collectory_map_centreMapLat != 'undefined') { %><%- LA_collectory_map_centreMapLat %><% } else { %>16.942<%_ } %>
explore_your_area_lng = <% if (typeof LA_collectory_map_centreMapLng != 'undefined') { %><%- LA_collectory_map_centreMapLng %><% } else { _%>1.261<%_ } %>
explore_your_area_location = <% if (typeof LA_variable_map_zone_name != 'undefined') { %><%- LA_variable_map_zone_name %><% } else { %>Australia<%_ } %>
map_default_latitude = <% if (typeof LA_collectory_map_centreMapLat != 'undefined') { %><%- LA_collectory_map_centreMapLat %><% } else { %>16.942<%_ } %>
map_default_longitude = <% if (typeof LA_collectory_map_centreMapLng != 'undefined') { %><%- LA_collectory_map_centreMapLng %><% } else { _%>1.261<%_ } %>
map_default_zoom = 5
# Used in bie
default_map_lat = <% if (typeof LA_collectory_map_centreMapLat != 'undefined') { %><%- LA_collectory_map_centreMapLat %><% } else { %>16.942<%_ } %>
default_map_lon = <% if (typeof LA_collectory_map_centreMapLng != 'undefined') { %><%- LA_collectory_map_centreMapLng %><% } else { _%>1.261<%_ } %>
# If you don't want fluid layout, leave this option empty
skin_fluid_layout = true
use_ala_image_service = <%= LA_use_images %>
<%_ if (LA_use_images) { _%>
image_service_viewer_url = <%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %>/image/viewer?imageId=
image_service_metadata_url = <%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %>/image/details?imageId=
alwaysshow_imagetab = true
<%_ } _%>
use_download_plugin=true
downloads_indexed_download_url=<%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %>/occurrences/offline/download
downloads_checklist_download_url=<%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %>/occurrences/facets/download
downloads_indexed_fields_url=<%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %>/index/fields
downloads_fieldguide_download_url =
downloads_static_downloads_url =
downloads_terms_of_use= <% if (typeof LA_variable_downloads_terms_of_use != 'undefined') { %><%- LA_variable_downloads_terms_of_use %><% } else { %><% } %>
swagger_info_terms_of_services= <% if (typeof LA_variable_downloads_terms_of_use != 'undefined') { %><%- LA_variable_downloads_terms_of_use %><% } else { %><% } %>
terms_url= <% if (typeof LA_variable_downloads_terms_of_use != 'undefined') { %><%- LA_variable_downloads_terms_of_use %><% } else { %><% } %>
download_auth_sensitive = true
download_solr_only = true
privacy_policy_url= <% if (typeof LA_variable_privacy_policy_url != 'undefined') { %><%- LA_variable_privacy_policy_url %><% } else { %><% } %>
grouped_facets_json=grouped_facets_default.json
biocache_grouped_facets_url=file:///data/ala-hub/config/grouped_facets_default.json
<%_ if (typeof LA_use_events != 'undefined' && LA_use_events) { _%>
events_graphql = <%= LA_urls_prefix %><%= LA_events_url %>/graphql
events_eventUrl = <%= LA_urls_prefix %><%= LA_events_url %>/?view=EVENTS&eventHierarchy=
<%_ } _%>
####################### Collectory ############################################
collectory_hostname = <%= LA_collectory_url %>
collectory_url = <%= LA_urls_prefix %><%= LA_collectory_url %><%= LA_collectory_path %>
collectory_service_url = <%= LA_urls_prefix %><%= LA_collectory_url %><%= LA_collectory_path %>/ws
collectory_base_url = <%= LA_urls_prefix %><%= LA_collectory_url %>
collectory_context_path = <%= LA_collectory_path %>
collectory_db_host_address = localhost
collectory_db_host = localhost
collectory_db_user = collectory
collectory_webservice_jwt_scopes=users/read
bypass_cas = <%= !LA_use_CAS %>
public_archive_url=<%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %>/archives/gbif/@UID@/@UID@.zip
gbif_archive_url=<%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %>/archives/gbif/@UID@/@UID@.zip
mapbox_access_token= <% if (typeof LA_variable_mapbox_access_token != 'undefined') { %><%- LA_variable_mapbox_access_token %><% } else { %>RequestAMapBoxKey<% } %>
####################### CAS Auth system #######################################
# Security bypass
security_bypass = <%= !LA_use_CAS %>
# Skinning
skin = ala
# Map config
collections_map_lat = <% if (typeof LA_collectory_map_centreMapLat != 'undefined') { %><%- LA_collectory_map_centreMapLat %><% } else { %>16.942<%_ } %>
collections_map_lon = <% if (typeof LA_collectory_map_centreMapLng != 'undefined') { %><%- LA_collectory_map_centreMapLng %><% } else { _%>1.261<%_ } %>
collections_map_zoom = 3
orgCity = <% if (typeof LA_variable_orgCity != 'undefined') { %><%- LA_variable_orgCity %><% } else { %>Camberra<%_ } %>
orgStateProvince = <% if (typeof LA_variable_orgStateProvince != 'undefined') { %><%- LA_variable_orgStateProvince %><% } else { %>ACT<%_ } %>
orgPostcode = <% if (typeof LA_variable_orgPostcode != 'undefined') { %><%- LA_variable_orgPostcode %><% } else { %>2601<%_ } %>
orgCountry = <% if (typeof LA_variable_orgCountry != 'undefined') { %><%- LA_variable_orgCountry %><% } else { %>Australia<%_ } %>
region = <% if (typeof LA_variable_map_zone_name != 'undefined') { %><%- LA_variable_map_zone_name %><% } else { %>Australia<%_ } %>
regionName = <% if (typeof LA_variable_map_zone_name != 'undefined') { %><%- LA_variable_map_zone_name %><% } else { %>Australia<%_ } %>
# EML config
eml_delivery_point = <% if (typeof LA_variable_orgAddress != 'undefined') { %><%- LA_variable_orgAddress %><% } else { %>Clunies Ross Street<%_ } %>
eml_city = <% if (typeof LA_variable_orgCity != 'undefined') { %><%- LA_variable_orgCity %><% } else { %>Camberra<%_ } %>
eml_admin_area = <% if (typeof LA_variable_orgStateProvince != 'undefined') { %><%- LA_variable_orgStateProvince %><% } else { %>ACT<%_ } %>
eml_postal_code = <% if (typeof LA_variable_orgPostcode != 'undefined') { %><%- LA_variable_orgPostcode %><% } else { %>2601<%_ } %>
eml_country = <% if (typeof LA_variable_orgCountry != 'undefined') { %><%- LA_variable_orgCountry %><% } else { %>Australia<%_ } %>
# Disable UI components
disable_map = false
disable_alerts = <%= !LA_use_alerts %>
enable_myannotation = <%= LA_use_alerts %>
disable_logger = false
# GBIF base URL for webservices
# For testing purposes use: https://api.gbif-uat.org/v1/
gbif_api_url = https://api.gbif.org/v1/
# Logger URL
logger_webservice_url = <%= LA_urls_prefix %><%= LA_logger_url %><%= LA_logger_path %>/service
# Species list tool
<% if (LA_use_species_lists) { %>
species_list_tool_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>/speciesListItem/list/
<% } %>
####################### SOLR STANDALONE #######################
# Used by BIE and/or biocache-store
<%_ if (LA_use_solrcloud) { _%>
solr_url = <%- LA_groups_and_servers['zookeeper'] != null ? LA_groups_and_servers['zookeeper'].map(i => `${i}:2181`).join(','): 'PIPELINES_NEEDS_A_SOLRCLOUR_AND_ZOOKEEPER_CLUSTER' %>
<%_ } else { _%>
solr_url = http://<%= LA_solr_url %>:8983/solr/biocache
<% } %>
solr_base_url = http://<%= LA_solr_url %>:8983
solr_context_path = <%= LA_solr_path %>
# Solr will start listing to this name/address, so it should be in the VM or
# 'I cannot bind' error will raise. Also you have to allow this IP/port in your
# internal LAN addresses
solr_host = <%= LA_solr_url %>
solr_port = 8983
# solr_version is configured previously
# solr_version=
# Deprecated: Used only in solr4 old role
solr_hostname = <%= LA_solr_hostname %>
# FIXME: Adjust this to your needs
solr_heap = 8g
sandbox_hostname = <%= LA_domain %>
sandbox_url = <%= LA_urls_prefix %><%= LA_domain %>/sandbox
sandbox_base_url = <%= LA_urls_prefix %><%= LA_domain %>
sandbox_context_path = /sandbox
################# Logger Service ############
logger_hostname = <%= LA_logger_url %>
logger_url = <%= LA_urls_prefix %><%= LA_logger_url %><%= LA_logger_path %>
logger_base_url = <%= LA_urls_prefix %><%= LA_logger_url %>
logger_context_path = <%= LA_logger_path %>
logger_db_name = logger
logger_db_username = logger_user
logger_db_hostname = localhost
logger_authorize_ip_list = <% if (typeof LA_server_ips != 'undefined') { %><%- LA_server_ips %><% } else { %><%_ } %>
############### Auth Server #########
auth_base_url = <%= LA_urls_prefix %><%= LA_cas_url %>
auth_cas_url = <%= LA_urls_prefix %><%= LA_cas_url %>/cas
auth_cookie_name=ALA-Auth
auth_cookie_domain=.<%- LA_domain %>
auth_cookie_enabled=true
# For tests use, for instance:
# auth_cookie_name=ALA-Auth-Test
#
openapi_oauth_url = <%= LA_urls_prefix %><%= LA_cas_url %>/cas/oidc
oidc_discovery_url = <%= LA_urls_prefix %><%= LA_cas_url %>/cas/oidc/.well-known
# Used by spatial
oidc_discoveryUri = <%= LA_urls_prefix %><%= LA_cas_url %>/cas/oidc/.well-known
jwt_discoveryUri = <%= LA_urls_prefix %><%= LA_cas_url %>/cas/oidc/.well-known
apikey_service_url=<%= LA_urls_prefix %><%= LA_cas_url %>/apikey/
# Used by biocache
api_check_url=<%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey=
# Used by profile service
apikey_check_url = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey=
apikey_auth_url = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/
api_key_service_url = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey=
# Whether to check API keys for incoming write requests
api_key_check_enabled = <%= LA_use_CAS %>
apikey_check_enabled = <%= LA_use_CAS %>
userdetails_url=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails
apikey_userdetails_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/
userdetails_web_url=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/
userdetails_api_url=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/
default_logout_redirect_url = <%= LA_urls_prefix %><%= LA_domain %>
discoveryUri = <%= LA_urls_prefix %><%= LA_cas_url %>/cas/oidc/.well-known
security_cas_enabled = <% if (typeof LA_variable_oidc_use != 'undefined') { %><%- !LA_variable_oidc_use %><% } else { %>true<% } %>
# OIDC infrastructure is ALWAYS enabled (not gated on LA_variable_oidc_use).
# Modern Spring-Boot hubs (bie-hub 4.1.x, biocache-hub 8.1.x) need ala-ws-security's
# org.pac4j.core.config.Config bean, which is only registered when OIDC is on;
# otherwise they crash on startup with "No qualifying bean of type ...Config".
# OIDC client creds + discoveryUri (<cas>/cas/oidc/.well-known) are already
# rendered above, so enabling OIDC just activates them. CAS login is unaffected
# (security_cas_enabled stays driven by LA_variable_oidc_use). The flag now only
# selects whether OIDC is the *primary* login, not whether OIDC infra exists.
security_oidc_enabled = true
# Used by spatial
cas_enabled = <% if (typeof LA_variable_oidc_use != 'undefined') { %><%- !LA_variable_oidc_use %><% } else { %>true<% } %>
oidc_enabled = true
# Used by userdetails. userdetails MUST authenticate via OIDC, never CAS protocol,
# and is NOT gated on LA_variable_oidc_use (mirrors the unconditional
# oidc_enabled/security_oidc_enabled above). Reason: its ala-auth-plugin
# CasAuthService reads the 'userid'/'role' principal attributes, which CAS-protocol
# validation does not release (ALA releases those as OIDC claims via the ala/roles
# scopes, not via attributeReleasePolicy.allowedAttributes). With CAS protocol,
# getUserId() returns null and getUserForEmailAddress() recurses into getUserId()
# -> StackOverflowError on /myprofile, and roles are lost (support loses ROLE_ADMIN).
# Only meaningful when the CAS/OIDC IdP is deployed (LA_use_CAS); otherwise both off.
userdetails_use_cas = false
userdetails_use_oidc = <% if (typeof LA_use_CAS != 'undefined') { %><%- LA_use_CAS %><% } else { %>true<% } %>
jwt_auth_enabled = <% if (typeof LA_variable_jwt_in_use != 'undefined') { %><%- LA_variable_jwt_in_use %><% } else { %>false<% } %>
webservice_jwt = <% if (typeof LA_variable_jwt_out_use != 'undefined') { %><%- LA_variable_jwt_out_use %><% } else { %>false<% } %>
userdetails_jwt_client_enabled = <% if (typeof LA_variable_jwt_out_use != 'undefined') { %><%- LA_variable_jwt_out_use %><% } else { %>false<% } %>
userdetails_jwt_enabled = <% if (typeof LA_variable_jwt_in_use != 'undefined') { %><%- LA_variable_jwt_in_use %><% } else { %>false<% } %>
# In ALA this defaults to 'cognito' in image service
logout_action =
cas_extra_scopes = []
# OIDC login scope requested by the ala-auth apps (renders to security.oidc.scope).
# Apps MUST request the `ala` + `roles` scopes for CAS to release the role/authority
# claims (OidcProfileScopeToAttributesFilter: "Request does not indicate a scope
# [[ala, roles]] ... will not process any attribute claims"). The ala-install role
# templates default this to just `openid`, which releases nothing -> apps see no roles
# (e.g. collectory "ROLE_ADMIN is required"). Single shared value: every OIDC app
# requests the same login scope (the per-service API scopes stay in the
# *_webservice_jwt_scopes vars above, so no collision in our single inventory).
# CAS scheme uses `ala roles`; Cognito deployments use `ala/attrs ala/roles`.
<%_ if (LA_use_CAS) { _%>
scope = openid profile email ala roles
<%_ } _%>
####### When near the GBIF building (e.g. in Europe) the GBIF nexus will likely be fastest #########
use_gbif_nexus = false
####### SDS common vars #######
sds_enabled = <%= LA_use_sds %>
<%_ if (LA_use_sds) { _%>
biocache_sds_url = <%= LA_urls_prefix %><%= LA_sds_url %><%= LA_sds_path %>
sds_url = <%= LA_urls_prefix %><%= LA_sds_url %><%= LA_sds_path %>
sds_faq_url = <% if (typeof LA_variable_sds_faq_url != 'undefined') { %><%- LA_variable_sds_faq_url %><% } else { %>https://www.ala.org.au/faq/data-sensitivity/<% } %>
sds_spatial_layers = <% if (typeof LA_variable_sds_spatial_layers != 'undefined') { %><%- LA_variable_sds_spatial_layers %><% } %>
sds_flag_rules = <% if (typeof LA_variable_sds_flag_rules != 'undefined') { %><%- LA_variable_sds_flag_rules %><% } %>
sds_skin_layout=ala-main
# 2024-03-04 workaround for sds-layers untar issues
# https://github.com/AtlasOfLivingAustralia/ala-sensitive-data-service/pull/33
sds_layers_url=https://datos.gbif.es/others/sds-layers.tgz
<%_ } else { _%>
biocache_sds_url =
<%_ } _%>
webserver_nginx=true
ssl=<%= LA_enable_ssl %>
force_https=<%= LA_enable_ssl %>
nginx_client_max_body_size=1024m
branding_hostname = <% if (typeof LA_branding_hostname != 'undefined') { %><%= LA_branding_hostname %><% } else { %><%= LA_main_hostname %><%_ } %>
branding_url = <% if (typeof LA_branding_url != 'undefined') { %><%= LA_branding_url %><% } else { %><%= LA_main_hostname %><%_ } %>
branding_path = <% if (typeof LA_branding_path != 'undefined') { %><%= LA_branding_path %><% } else { %>/<%_ } %>
branding_as_home = <% if (typeof LA_branding_as_home == 'undefined' || LA_branding_as_home) { %>true<% } else { %>false<%_ } %>
branding_home_url = <%= LA_domain %>
branding_nginx_cors_origin_regexp = ^https?:\/\/(localhost|<%= LA_domain.replace(/\./g, '\\.') %>|.*\.<%= LA_domain.replace(/\./g, '\\.') %>)
<%_
// Effective use_la_site_certs: explicit override wins; otherwise auto-detect
// from the deployment domain (l-a.site or any subdomain -> demo wildcard certs).
// Scoped to docker-compose so VM deploys keep their previous behaviour.
var _use_la_site_certs;
if (typeof LA_variable_use_la_site_certs != 'undefined') {
_use_la_site_certs = (LA_variable_use_la_site_certs === true || LA_variable_use_la_site_certs === 'true');
} else if (typeof LA_use_docker_compose != 'undefined' && LA_use_docker_compose && typeof LA_domain != 'undefined' && /(^|\.)l-a\.site$/.test(LA_domain)) {
_use_la_site_certs = true;
} else {
_use_la_site_certs = false;
}
_%>
<%_ if (typeof LA_use_docker_compose != 'undefined' && LA_use_docker_compose) { _%>
branding_source=<% if (typeof LA_variable_branding_source != 'undefined') { %><%= LA_variable_branding_source %><% } else { %>../<%= LA_project_shortname.toLowerCase().replace(/la /g, '').replace(/ /g, '-') %>-branding<% } %>
branding_build_source=<% if (typeof LA_variable_branding_build_source != 'undefined') { %><%= LA_variable_branding_build_source %><% } else { %>local<% } %>
use_la_site_certs=<%- _use_la_site_certs %>
docker_mail_development_mode=<% if (typeof LA_variable_docker_mail_development_mode != 'undefined') { %><%- LA_variable_docker_mail_development_mode %><% } else { %>false<% } %>
docker_mail_development_url=<% if (typeof LA_variable_docker_mail_development_url != 'undefined') { %><%- LA_variable_docker_mail_development_url %><% } else { %>mailhog.l-a.site<% } %>
use_airflow=<% if (typeof LA_use_airflow != 'undefined') { %><%- LA_use_airflow %><% } else { %>false<% } %>
airflow_hostname=<% if (typeof LA_airflow_url != 'undefined') { %><%= LA_airflow_url %><% } else { %><% } %>
<%_ } _%>
<%_ if (LA_enable_ssl) { _%>
<%_ if (_use_la_site_certs) { _%>
ssl_certificate_server_dir=/etc/letsencrypt/live/l-a.site
ssl_cert_file=fullchain.pem
ssl_key_file=privkey.pem
<%_ } else { _%>
ssl_certificate_server_dir=/etc/ssl
ssl_cert_file=certs/ssl-cert-snakeoil.pem
ssl_key_file=private/ssl-cert-snakeoil.key
<%_ } _%>
<%_ } _%>
# nginx_vhost_fragments_to_clear = <%- JSON.stringify(LA_nginx_vhosts)%>
nginx_vhost_fragments_to_clear =
# https://github.com/AtlasOfLivingAustralia/documentation/wiki/Troubleshooting#nginx-vhost-ansible-issues
nginx_vhost_fragments_to_clear_no_warning = true
# This prevents overwrite vhost configurations when deploying in same server
# See: https://github.com/AtlasOfLivingAustralia/ala-install/pull/368
# vhost_with_appname_conf = true
############### Biocache CLI options ###############
biocache_opts = -Xmx1g -Xms1g
############## Base header / footer ###############
# NOTE: this header/footer url doesn't have a trailing /
header_and_footer_baseurl = <%= LA_urls_prefix %><% if (typeof LA_branding_url != 'undefined') { %><%- LA_branding_url %><% } else { %><%- LA_domain %><%_ } %><% if (typeof LA_branding_path != 'undefined') { %><%- LA_branding_path.replace(/\/$/, "") %><% } else { %><%_ } %>
header_and_footer_version = 2
###### favicon #######
favicon_url=<% if (typeof LA_variable_favicon_url != 'undefined') { %><%- LA_variable_favicon_url %><% } else { %>https://raw.githubusercontent.com/living-atlases/artwork/master/favicon.ico<% } %>
skin_favicon=<% if (typeof LA_variable_favicon_url != 'undefined') { %><%- LA_variable_favicon_url %><% } else { %>https://raw.githubusercontent.com/living-atlases/artwork/master/favicon.ico<% } %>
<%_ if (LA_use_species_lists) { _%>
######### Species list ##############
specieslist_hostname = <%= LA_lists_url %>
specieslist_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>
specieslist_base_url = <%= LA_urls_prefix %><%= LA_lists_url %>
specieslist_context_path = <%= LA_lists_path %>
specieslist_db_hostname = localhost
specieslist_db_name = specieslists
specieslist_db_username = specieslists
collectory_enable_sync = false
<%_ if (LA_use_species) { _%>
bie_service_base_url = <%= LA_urls_prefix %><%= LA_bie_index_url %><%= LA_bie_index_path %>
# The same but used by biocollect:
bie_ws_base_url = <%= LA_urls_prefix %><%= LA_bie_index_url %><%= LA_bie_index_path %>
<%_ } _%>
field_guide_base_url =
specieslist_iconic_species_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>/iconic-species
# Used by alerts
species_list_server = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>
specieslist_userdetails_url=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/
security_apikey_auth_serviceUrl=<%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check/
security_apikey_userdetails_serviceUrl=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/userDetails/
lists_webservice_jwt_scopes=users/read
<%_ } else { _%>
# Added while we install our BIE service
specieslist_url = https://lists.ala.org.au
<%_ } _%>
<%_ if (LA_use_species) { _%>
############# BIE index ################
bie_index_base_url = <%= LA_urls_prefix %><%= LA_bie_index_url %><%= LA_bie_index_path %>
bie_index_context_path = <%= LA_bie_index_path %>
bie_index_hostname = <%= LA_bie_index_url %>
bie_index_webservice_jwt_scopes = users/read ala ala/internal
bie_index_uri_filter_pattern=/admin/*,/alaAdmin/*
bie_use_yml = true
index_admin_url = http://<%= LA_solr_url %>:8983/solr
index_live_url = http://<%= LA_solr_url %>:8983/solr/bie
index_offline_url = http://<%= LA_solr_url %>:8983/solr/bie-offline
<%_ if (typeof LA_use_biocollect != 'undefined' && LA_use_biocollect) { _%>
biocollect_url = <%= LA_urls_prefix %><%= LA_biocollect_url %><%= LA_biocollect_path %>
<%_ } else { _%>
biocollect_url =
<%_ } _%>
<%_ } else { _%>
# Added while we install our BIE service
bie_base_url = https://bie.ala.org.au
bie_service_base_url = https://bie.ala.org.au/ws
<%_ } _%>
biocache_solr_url = http://<%= LA_solr_url %>:8983/solr/biocache
disable_cas = <%= !LA_use_CAS %>
index_images = <%= LA_use_images %>
<%_ if (LA_use_species) { _%>
############# BIE Hub ################
bie_hub = ala-bie
bie_hub_base_url = <%= LA_urls_prefix %><%= LA_ala_bie_url %>
bie_hub_context_path = <%= LA_ala_bie_path %>
bie_hub_hostname = <%= LA_ala_bie_url %>
ala_bie_webservice_jwt_scopes = users/read
bie_image_filter = '"&qualityProfile=LA"'
ausTraits_source_url=https://doi.org/10.5281/zenodo.3568417
ausTraits_definitions_url=https://w3id.org/APD
google_url = https://www.google.com
bie_hub_collectory_service_url = <%= LA_urls_prefix %><%= LA_collectory_url %><%= LA_collectory_path %>
bie_hub_tabs = overview,gallery,names,classification,records,literature,data-partners
# https://profiles-ws.ala.org.au
profile_service_url =
bie_userdetails_url=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/
<%_ } _%>
# To false following ALA use of this
bie_service_enabled = false
<%_ if (LA_use_species_lists) { _%>
species_list_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>
specieslist_service_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>/ws
lists_base_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>
<%_ } else { _%>
species_list_url = https://lists.ala.org.au
specieslist_service_url = https://lists.ala.org.au
lists_base_url = https://lists.ala.org.au
<%_ } _%>
sightings_url =
<%_ if (LA_use_spatial) { _%>
spatial_url=<%= LA_urls_prefix %><%= LA_spatial_url %>
spatial_base_url=<%= LA_urls_prefix %><%= LA_spatial_url %>
<%_ } else { _%>
# While you decide to enable and deploy the spatial service we use ALA service to avoid issues
spatial_url=https://spatial.ala.org.au
spatial_base_url=https://spatial.ala.org.au
<%_ } _%>
<%_ if (LA_use_species) { _%>
bie_base_url = <%= LA_urls_prefix %><%= LA_ala_bie_url %><%= LA_ala_bie_path %>
skin_taxa_links_base_url = <%= LA_urls_prefix %><%= LA_ala_bie_url %><%= LA_ala_bie_path %>/species/
<%_ } _%>
ala_base_url = <%= LA_urls_prefix %><%= LA_domain %>
ala_baseurl = <%= LA_urls_prefix %><%= LA_domain %>
use_ala_spatial_portal=<%= LA_use_spatial %>
# EOL
eol_sanitise=true
eol_html_allowedElements=h1,h2,h3,h4,h5,h6,div,a,br,i,b,u,small,strike,span,ul,li,p,sup,cite,ol,em,hr
eol_html_allowAttributes=href;a;^(http|https|mailto|#).+,class;span,id;span,src;img;^(http|https).+
<%_ if (LA_use_images) { _%>
####### Images #######
image_service_url = <%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %>
image_service_base_url = <%= LA_urls_prefix %><%= LA_images_url %>
image_service_context_path = <%= LA_images_path %>
image_service_hostname = <%= LA_images_url %>
image_service_db_name=images
image_service_db_username=images
image_service_port=9101
image_service_logfile = {{ 'logback.xml' if image_service_version is version('3', '>=') else 'logback.groovy' }}
# Used by bie-index
image_base_url = <%= LA_urls_prefix %><%= LA_images_url %>
images_userdetails_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/
<%_ } _%>
<%_ if (LA_use_regions) { _%>
####### Regions #######
regions_hostname = <%= LA_regions_url %>
regions_base_url = <%= LA_urls_prefix %><%= LA_regions_url %>
regions_context_path = <%= LA_regions_path %>
regions_artifact = regions
regions_map_bounds = <% if (typeof LA_regions_map_bounds != 'undefined') { %><%- LA_regions_map_bounds %><% } else { %>[]<%_ } %>
regions_map_min_lat = <% if (typeof LA_regions_map_bounds != 'undefined') { %><%- JSON.parse(LA_regions_map_bounds)[0] %><% } else { %>-41.5<%_ } %>
regions_map_min_lng = <% if (typeof LA_regions_map_bounds != 'undefined') { %><%- JSON.parse(LA_regions_map_bounds)[1] %><% } else { %>114<%_ } %>
regions_map_max_lat = <% if (typeof LA_regions_map_bounds != 'undefined') { %><%- JSON.parse(LA_regions_map_bounds)[2] %><% } else { %>-13.5<%_ } %>
regions_map_max_lng = <% if (typeof LA_regions_map_bounds != 'undefined') { %><%- JSON.parse(LA_regions_map_bounds)[3] %><% } else { %>154<%_ } %>
regions_skin_fluid_layout = false
<%_ } _%>
<%_ if (LA_use_spatial) { _%>
spatial_base_url_ws=<%= LA_urls_prefix %><%= LA_spatial_url %>/ws
<%_ } else { _%>
# While you decide to enable and deploy the spatial service we use ALA service
spatial_base_url_ws=https://spatial.ala.org.au/ws
<%_ } _%>
<%_ if (LA_use_alerts) { _%>
alerts_url = <%= LA_urls_prefix %><%= LA_alerts_url %><%= LA_alerts_path %>
alerts_base_url = <%= LA_urls_prefix %><%= LA_alerts_url %>
alerts_context_path = <%= LA_alerts_path %>
alerts_apikey_check_url = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey=
alerts_apikey_whitelist = <% if (typeof LA_server_ips != 'undefined') { %><%- LA_server_ips %><% } else { %><%_ } %>
alerts_hostname = <%= LA_alerts_url %>
alerts_db_hostname = localhost
alerts_db_name = alerts
alerts_db_username = alerts
alerts_myannotation_enabled = true
email_alert_address_title = <%= LA_project_shortname %> alerts
email_info_address_title = <%= LA_project_name %>
email_info_sender = <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %>
enable_email = true
occurrence_searchTitle = occurrence search
occurrence_searchUrl = https://biocache.ala.org.au/occurrences/search?q=passer
regions_searchTitle = ACT
regions_searchUrl = https://regions.ala.org.au/states/Australian+Capital+Territory
speciesPages_searchTitle = Shingle-back
speciesPages_searchUrl = https://bie.ala.org.au/species/Tiliqua+rugosa
collection_searchTitle = ANIC
collection_searchUrl = https://collections.ala.org.au/public/show/co13
enable_specieslists_alerts = <%= LA_use_species_lists %>
enable_spatial_alerts = <%= LA_use_spatial %>
enable_blogs_alerts = false
enable_citizen_science_alerts = false
mail_ses_enabled=false
<% if (LA_use_species_lists) { %>lists_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %><% } %>
<%_ } else { _%>
alerts_base_url =
alerts_url =
<%_ } _%>
biocache_records_url=<%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %>
<%_ if (LA_use_spatial) { _%>
# Used by regions allowedHost
spatial_ws_hostname=<%= LA_spatial_url %>
<%_ } else { _%>
# While you decide to enable and deploy the spatial service we use ALA service
spatial_ws_hostname=spatial.ala.org.au
<%_ } _%>
<%_ if (LA_use_webapi) { _%>
####### Web API #######
webapi_hostname = <%= LA_webapi_url %>
webapi_base_url = <%= LA_urls_prefix %><%= LA_webapi_url %>
webapi_url = <%= LA_urls_prefix %><%= LA_webapi_url %><%= LA_webapi_path %>
webapi_context_path = <%= LA_webapi_path %>
webapi_db_hostname = localhost
webapi_db_name = webapi
webapi_db_username = webapi
<%_ } _%>
<%_ if (LA_use_dashboard) { _%>
####### Dashboard #######
dashboard_hostname = <%= LA_dashboard_url %>
dashboard_base_url = <%= LA_urls_prefix %><%= LA_dashboard_url %>
dashboard_url = <%= LA_urls_prefix %><%= LA_dashboard_url %><%= LA_dashboard_path %>
dashboard_context_path = <%= LA_dashboard_path %>
volunteer_base_url =
<%_ } _%>
# Tune this per service if you need less or more memory on it
tomcat_java_opts = -Xmx4g -Xms4g -Xss256k -Djava.awt.headless=true
##### Updated components versions
#
# Check: https://github.com/AtlasOfLivingAustralia/documentation/wiki/Components-versioning
#
# Default fallback versions (if the toolkit does not set them)
alerts_version = 1.5.3
apikey_version = 1.5
bie_hub_version = 1.5.1
bie_index_version = 1.4.15
biocache_cli_version = 2.6.1
biocache_hub_version = 4.0.8
# Newers versions of biocache-service > 2.4.2 require tomcat8/9
biocache_service_version = 2.7.1
cas_management_version = 5.3.6-1
cas_version = 5.3.12-2
collectory_version = 1.6.4
dashboard_version = 2.2
doi_service_version = 1.1.5
image_service_version = 1.1.7.1
logger_version = 3.0.0
ala_name_matching_version = 3.5
regions_version = 3.3.5
sds_version = 1.6.2
solr_version = 7.7.3
solrcloud_version = 8.9.0
spatial_hub_version = 0.4.2
spatial_service_version = 0.4.2
species_list_version = 3.5.9
user_details_version = 2.3.0
webapi_version = 2.0
pipelines_version = 2.13.0-SNAPSHOT+0~20221123105804.867~1.gbp85d7b3
data_quality_filter_service_version = 1.0.0
namematching_service_version=1.4
biocollect_version=5.2.6
ecodata_version=3.3.1
pdf_service_version=1.3
<%_ if (typeof LA_software_versions != 'undefined') { _%>
<%_ if (LA_software_versions.length > 0) { _%>
# Software versions selected in the la-toolkit:
<%_ } %>
<%_ for(var i=0; i < LA_software_versions.length; i++) { _%>
<%= LA_software_versions[i][0] %> = <%= LA_software_versions[i][1] %>
<%_ } %>
<%_ } _%>
<%_ if (LA_use_doi) { _%>
doi_service_url = <%= LA_urls_prefix %><%= LA_doi_url %><%= LA_doi_path %>
doi_service_api_url = <%= LA_urls_prefix %><%= LA_doi_url %><%= LA_doi_path %>/api/
download_doi_resolver = <%= LA_urls_prefix %><%= LA_doi_url %><%= LA_doi_path %>/doi/
my_download_doi_baseUrl = <%= LA_urls_prefix %><%= LA_doi_url %><%= LA_doi_path %>/myDownloads
download_doi_licence_prefix = "Datasets are covered by the following licence(s): "
download_doi_title_prefix = "Occurrence download "
# Enable to use DOI service
doi_mint_doi = false
doi_swagger_info_description=Generate DOIs for <%= LA_project_shortname %> applications
doi_swagger_info_title=<%= LA_project_shortname %> DOI service
doi_webservice_jwt_scopes=ala/internal users/read ala/attrs
doi_skin_fluid_layout=
<%_ } _%>
<%_ if (typeof LA_use_biocollect != 'undefined' && LA_use_biocollect) { _%>
###### ECODATA #######
biocollect_base_url = <%= LA_urls_prefix %><%= LA_biocollect_url %>
<%_ if (LA_use_images) { _%>
imagesService_baseURL=<%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %>
<%_ } _%>
biocacheService_baseUrl=<%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %>
<%_ if (LA_use_CAS) { _%>
security_serviceUrl = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey=
###### PDFGEN ######
pdfgen_base_url = <%= LA_urls_prefix %><%= LA_pdfgen_url %>
<%_ } _%>
# FIXME
# merit_base_url=https://fieldcapture.ala.org.au
# email SMTP server to use for sending emails
mail_host=<% if (typeof LA_variable_email_sender_server != 'undefined') { %><%- LA_variable_email_sender_server %><% } else { %>mail.<%= LA_domain %><% } %>
ecodata_noreply_email=<% if (typeof LA_variable_email_sender != 'undefined') { %><%- LA_variable_email_sender %><% } else { %>support@<%= LA_domain %><% } %>
ecodata_support_email=<% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %>
# application config
app_uploads_url=/document/download/
models_path=/data/ecodata/models/
merit_ip=<%= LA_groups_and_servers['ecodata'][0] %>
biocollect_ip=<%= LA_groups_and_servers['biocollect'][0] %>
# mongodb config
ecodata_dbPath=/data/mongodb
ecodata_SystemLog=/var/log/mongodb
# As 4.0 it's not now supported
# TODO: Let pick the version via common/set-facts
#mongodb_version={{ '8.0' if (ansible_distribution == 'Ubuntu' and ansible_distribution_version is version('24.04', '>=')) else '5.0' }}
# In case of using mongo replication in ecodata
#
# mongo_hosts=primary:27017,secondary:27017
# mongo_primary_ip=<%= LA_groups_and_servers['ecodata'][0] %>
# mongo_secondary_ip=<%= LA_groups_and_servers['ecodata-reporting'][0] %>
mongodb_version_3=true
merit_data_provider_uuid=dp5159
# This should be created in your collectory
# For instance: https://collections.ala.org.au/public/show/dp3903
biocollect_data_provider_uuid=dp3903
# In case of using mongo replication in ecodata
#
# mongo replica set config file
# enable_mongo_replica_set=True
# replication=True
# replicaSetName=rs0
# ecodata_local_authentication_keyFile=some-key-file
# ecodata_keyFile=/etc/mongodb-keyFile
# ecodata_replica_set_disable_mongo_security=fals