blob: 16b4f68f0b9fccbc010aa4c072d338cdc919e9cf [file] [log] [blame]
<!--
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
-->
<project name="server config" basedir="." default="server-config">
<description>Creates the server configuration file.</description>
<!-- Properties for server.config -->
<property name="wave_server_domain" value="local.net" />
<property name="http_frontend_public_address" value="localhost:9898" />
<property name="http_websocket_public_address" value="${http_frontend_public_address}" />
<property name="http_websocket_presented_address" value="${http_frontend_public_address}" />
<property name="http_frontend_addresses" value="${http_frontend_public_address}" />
<property name="resource_bases" value="./war" />
<property name="signer_info_store_type" value="file" />
<property name="attachment_store_type" value="disk" />
<property name="account_store_type" value="file" />
<property name="delta_store_type" value="file" />
<property name="signer_info_store_directory" value="_certificates" />
<property name="attachment_store_directory" value="_attachments" />
<property name="account_store_directory" value="_accounts" />
<property name="delta_store_directory" value="_deltas" />
<property name="sessions_store_directory" value="_sessions" />
<property name="websocket_max_message_size" value="2" />
<property name="websocket_max_idle_time" value="0" />
<property name="admin_user" value="@${wave_server_domain}" />
<property name="welcome_wave_id" value="" />
<property name="listener_executor_thread_count" value="1" />
<property name="wavelet_load_executor_thread_count" value="1" />
<property name="delta_persist_executor_thread_count" value="1" />
<property name="storage_continuation_executor_thread_count" value="1" />
<property name="lookup_executor_thread_count" value="1" />
<property name="disable_registration" value="false" />
<property name="enable_ssl" value="false" />
<property name="ssl_keystore_path" value="wiab.ks" />
<property name="ssl_keystore_password" value="changeme" />
<property name="enable_clientauth" value="false" />
<property name="clientauth_cert_domain" value="" />
<property name="disable_loginpage" value="false" />
<property name="search_type" value="lucene" />
<property name="index_directory" value="_indexes" />
<property name="thumbnail_patterns_directory" value="thumbnail_patterns" />
<property name="analytics_account" value="" />
<!-- Properties for server.federation.config -->
<property name="xmpp_server_secret" value="opensesame" />
<property name="certificate_private_key" value="${wave_server_domain}.key" />
<property name="certificate_files" value="${wave_server_domain}.crt,sub.class1.server.ca.pem,ca.pem" />
<property name="certificate_domain" value="${wave_server_domain}" />
<property name="xmpp_component_name" value="wave" />
<property name="xmpp_jid" value="${xmpp_component_name}.${wave_server_domain}" />
<property name="xmpp_server_description" value="&quot;Wave in a Box&quot;" />
<property name="xmpp_server_hostname" value="${wave_server_domain}" />
<property name="xmpp_server_component_port" value="5275" />
<property name="xmpp_server_to_server_port" value="5269" />
<property name="xmpp_server_ping" value="wavesandbox.com" />
<property name="xmpp_server_ip" value="${xmpp_server_hostname}" />
<property name="waveserver_disable_verification" value="false" />
<property name="waveserver_disable_signer_verification" value="false" />
<target name="create-folders">
<mkdir dir="${signer_info_store_directory}" />
<mkdir dir="${attachment_store_directory}" />
<mkdir dir="${account_store_directory}" />
<mkdir dir="${delta_store_directory}" />
<mkdir dir="${sessions_store_directory}" />
</target>
<target name="server-config" depends="create-folders"
description="Run to create the server configuration file.
You can pass custom values, for example:
ant -f server-config.xml -Dwave_server_domain=example.com">
<echo>Generating server.config</echo>
<copy file="server.config"
tofile="server.config.old"
overwrite="true"
failonerror="false" />
<copy file="server.config.example" tofile="server.config" overwrite="true">
<filterchain>
<replacetokens>
<token key="WAVE_SERVER_DOMAIN" value="${wave_server_domain}" />
<token key="HTTP_FRONTEND_PUBLIC_ADDRESS"
value="${http_frontend_public_address}" />
<token key="HTTP_WEBSOCKET_PUBLIC_ADDRESS"
value="${http_websocket_public_address}" />
<token key="HTTP_WEBSOCKET_PRESENTED_ADDRESS"
value="${http_websocket_presented_address}" />
<token key="HTTP_FRONTEND_ADDRESSES"
value="${http_frontend_addresses}" />
<token key="RESOURCE_BASES" value="${resource_bases}" />
<token key="SIGNER_INFO_STORE_TYPE" value="${signer_info_store_type}" />
<token key="ATTACHMENT_STORE_TYPE" value="${attachment_store_type}" />
<token key="ACCOUNT_STORE_TYPE" value="${account_store_type}" />
<token key="DELTA_STORE_TYPE" value="${delta_store_type}" />
<token key="SIGNER_INFO_STORE_DIRECTORY"
value="${signer_info_store_directory}" />
<token key="ATTACHMENT_STORE_DIRECTORY"
value="${attachment_store_directory}" />
<token key="ACCOUNT_STORE_DIRECTORY"
value="${account_store_directory}" />
<token key="DELTA_STORE_DIRECTORY" value="${delta_store_directory}" />
<token key="SESSIONS_STORE_DIRECTORY" value="${sessions_store_directory}" />
<token key="WEBSOCKET_MAX_MESSAGE_SIZE" value="${websocket_max_message_size}" />
<token key="WEBSOCKET_MAX_IDLE_TIME" value="${websocket_max_idle_time}" />
<token key="ADMIN_USER" value="${admin_user}" />
<token key="WELCOME_WAVE_ID" value="${welcome_wave_id}" />
<token key="LISTENER_EXECUTOR_THREAD_COUNT" value="${listener_executor_thread_count}" />
<token key="WAVELET_LOAD_EXECUTOR_THREAD_COUNT" value="${wavelet_load_executor_thread_count}" />
<token key="DELTA_PERSIST_EXECUTOR_THREAD_COUNT" value="${delta_persist_executor_thread_count}" />
<token key="STORAGE_CONTINUATION_EXECUTOR_THREAD_COUNT" value="${storage_continuation_executor_thread_count}" />
<token key="LOOKUP_EXECUTOR_THREAD_COUNT" value="${lookup_executor_thread_count}" />
<token key="DISABLE_REGISTRATION" value="${disable_registration}" />
<token key="ENABLE_SSL" value="${enable_ssl}" />
<token key="SSL_KEYSTORE_PATH" value="${ssl_keystore_path}" />
<token key="SSL_KEYSTORE_PASSWORD" value="${ssl_keystore_password}" />
<token key="ENABLE_CLIENTAUTH" value="${enable_clientauth}" />
<token key="CLIENTAUTH_CERT_DOMAIN" value="${clientauth_cert_domain}" />
<token key="DISABLE_LOGINPAGE" value="${disable_loginpage}" />
<token key="SEARCH_TYPE" value="${search_type}" />
<token key="INDEX_DIRECTORY" value="${index_directory}" />
<token key="ANALYTICS_ACCOUNT" value="${analytics_account}" />
<token key="THUMBNAIL_PATTERNS_DIRECTORY" value="${thumbnail_patterns_directory}" />
</replacetokens>
</filterchain>
</copy>
</target>
<target name="server-federation-config" depends="server-config"
description="Run to create both the server and federation configuration files.
ant -f server-config.xml server-federation-config -Dserver_federation_config=server.federation.config">
<echo>Generating federation.server.config</echo>
<copy file="server.federation.config"
tofile="server.federation.config.old"
overwrite="true"
failonerror="false" />
<copy file="server.federation.config.example" tofile="server.federation.config" overwrite="true">
<filterchain>
<replacetokens>
<token key="XMPP_SERVER_SECRET" value="${xmpp_server_secret}" />
<token key="CERTIFICATE_PRIVATE_KEY" value="${certificate_private_key}" />
<token key="CERTIFICATE_FILES" value="${certificate_files}" />
<token key="CERTIFICATE_DOMAIN" value="${certificate_domain}" />
<token key="XMPP_COMPONENT_NAME" value="${xmpp_component_name}" />
<token key="XMPP_JID" value="${xmpp_jid}" />
<token key="XMPP_SERVER_DESCRIPTION" value="${xmpp_server_description}" />
<token key="XMPP_SERVER_HOSTNAME" value="${xmpp_server_hostname}" />
<token key="XMPP_SERVER_COMPONENT_PORT" value="${xmpp_server_component_port}" />
<token key="XMPP_SERVER_PING" value="${xmpp_server_ping}" />
<token key="XMPP_SERVER_IP" value="${xmpp_server_ip}" />
<token key="WAVESERVER_DISABLE_VERIFICATION" value="${waveserver_disable_verification}" />
<token key="WAVESERVER_DISABLE_SIGNER_VERIFICATION"
value="${waveserver_disable_signer_verification}" />
</replacetokens>
</filterchain>
</copy>
</target>
<target name="prosody-config" depends="server-federation-config"
description="Run to create the server, federation and prosody configuration files.
ant -f server-config.xml server-federation-config prosody-config -Dserver_federation_config=server.federation.config">
<echo>Generating ${certificate_domain}.cfg.lua</echo>
<copy file="${certificate_domain}.cfg.lua"
tofile="${certificate_domain}.cfg.lua.old"
overwrite="true"
failonerror="false" />
<copy file="prosody.cfg.lua.example" tofile="${certificate_domain}.cfg.lua" overwrite="true">
<filterchain>
<replacetokens>
<token key="BASEDIR" value="${basedir}" />
<token key="XMPP_SERVER_SECRET" value="${xmpp_server_secret}" />
<token key="CERTIFICATE_PRIVATE_KEY" value="${certificate_private_key}" />
<token key="CERTIFICATE_DOMAIN" value="${certificate_domain}" />
<token key="XMPP_JID" value="${xmpp_jid}" />
<token key="XMPP_SERVER_DESCRIPTION" value="${xmpp_server_description}" />
<token key="XMPP_SERVER_COMPONENT_PORT" value="${xmpp_server_component_port}" />
<token key="XMPP_SERVER_TO_SERVER_PORT" value="${xmpp_server_to_server_port}" />
</replacetokens>
</filterchain>
</copy>
<echo>Please, manually copy ${certificate_domain}.cfg.lua to your prosody configuration directory.</echo>
<echo>E.g. sudo cp ${certificate_domain}.cfg.lua /etc/prosody/conf.d/${certificate_domain}.cfg.lua</echo>
<echo>Additionally, ensure your ${certificate_domain} SRV record points to port ${xmpp_server_to_server_port}</echo>
</target>
</project>