Environment
This section describes the environment configuration items available for Swarm:
-
mode: whether Swarm operates in production or development mode.
-
hostname: specifies the canonical hostname Swarm should use, such as in links to Swarm in email notifications.
-
external_url: specifies the canonical URL Swarm should use, such as in links to Swarm in email notifications. Often, Swarm can often auto-detect the correct URL, but use of
external_url
might be necessary in complex web hosting environments. -
base_url: specifies the folder name Swarm is installed within when Swarm is not installed in the web server's document root.
Add the following configuration block to the
file:
SWARM_ROOT
/data/config.php
<?php
// this block should be a peer of 'p4'
'environment' => array(
'mode' => 'development', // defaults to 'production'
'hostname' => 'myswarm.hostname', // defaults to requested hostname
'external_url' => null, // defaults to null
'base_url' => null, // defaults to null
),
mode
By default, Swarm operates in production mode. When
mode
is set to development
,
Swarm displays greater error detail in the browser. Also, Swarm switches
from including aggregated and minified JavaScript and CSS to requesting
each JavaScript and CSS resource for all active modules. The default value
is production
. Any value other than
development
is assumed to mean
production
.
development
mode makes it easier to discover problems
and to identify their source, but also incurs additional browser overhead
due to many more JavaScript and CSS requests for larger files. We
recommend that you do not use development
mode in
production environments, unless directed to do so by Perforce technical
support.
hostname
The hostname
item allows you to specify Swarm's
hostname. This could be useful if you have multiple virtual hosts deployed
for a single Swarm instance; Swarm uses the hostname you configure when
generating its web pages and email notifications.
Note
The value specified for the hostname
item should
be just the hostname. It should not include a scheme (e.g.
"http://
"), nor should it include a port (e.g.
":80
").
external_url
The external_url
item allows you to specify Swarm's
canonical URL. This is useful if your Swarm instance is proxied behind
another web service, such as a load balancer, caching proxy, etc., because
Swarm's auto-detection of the current hostname or port could otherwise
result in incorrect self-referencing URLs.
When specified, Swarm uses the external_url
item
as the prefix for any URLs it creates that link to itself in its web pages
and email notifications.
Note
Any path components included in external_url
are
ignored. If you specify
https://myswarm.url:8080/a/b/c
, Swarm only uses
https://myswarm.url:8080/
when composing URLs.
Important
If you specify base_url along with
external_url
and you have deployed multiple Swarm
instances that connect to the same Helix Versioning Engine, ensure that
all Swarm instances specify the same base_url
.
Varying base_url
amongst cooperating Swarm
instances is not supported.
base_url
The base_url
item allows you to specify Swarm's
folder within the web server's document root. This is useful if you cannot
configure Swarm to operate within its own virtual host, such as when you
have an existing web service and Swarm must exist alongside other
applications or content.
By default, base_url
is null
,
which is equivalent to specifying /
. If you specify a
folder, include the leading /
. For example,
/swarm
.
Important
If you specify external_url along with
base_url
and you have deployed multiple Swarm
instances that connect to the same Helix Versioning Engine, ensure that
all Swarm instances specify the same base_url
.
Varying base_url
amongst cooperating Swarm
instances is not supported.