Package server settings
This page is for administrators and developers who point an installation at a package server, or tune how it
downloads. It lists every key of settings/package.ini [RepositorySettings] in 6.0.15 with its default, says which
code reads it, and adds the two settings of site.ini that go with them.
Contents
- The keys at a glance
- RemotePackagesIndexURL
- RemotePackagesIndexURLBase
- Further package servers
- Vendor and RepositoryDirectory
- The download settings
- Settings in site.ini that go with them
- Overriding the settings
- Related pages
The keys at a glance
# settings/package.ini (6.0.15)
[RepositorySettings]
RepositoryDirectory=packages
RemotePackagesIndexURL=https://exponential.packages.exponential.earth/exponential/6.0/6.0.15
RemotePackagesIndexURLBase=https://exponential.packages.exponential.earth/exponential
AdditionalRemotePackagesIndexURLs[]
RemotePackagesIndexSources[]
RemotePackagesIndexSources[]=ezupdate.ini;PackageServerSettings;Servers
Vendor=7x
DownloadAttempts=3
DownloadRetryDelays[]
DownloadRetryDelays[]=2
DownloadRetryDelays[]=5
DownloadRetryDelays[]=10
DownloadTimeout=300
DownloadConnectTimeout=30| Key | Default | Read by | Meaning |
|---|---|---|---|
RemotePackagesIndexURL | the 6.0.15 folder | setup wizard, kickstarter, exp:install, ezupdate, exp:ezwebininstall | the release folder whose index.xml is read |
RemotePackagesIndexURLBase | .../exponential | the same, only when RemotePackagesIndexURL is empty; the wizard's "Additional packages" link | the top of the server |
AdditionalRemotePackagesIndexURLs[] | empty | setup wizard, kickstarter, exp:install (6.0.15 on) | further servers, read after the main one |
RemotePackagesIndexSources[] | ezupdate's list | the same | lists of further servers in other settings files |
Vendor | 7x | eZPackage::systemRepositoryInformation() | the repository folder of the installer's packages |
RepositoryDirectory | packages | eZPackage::repositoryPath() | the folder of all package repositories below the storage directory |
DownloadAttempts | 3 | eZStepSiteTypes::downloadFile() | how many times a download is tried |
DownloadRetryDelays[] | 2, 5, 10 | the same | seconds to wait before each further attempt |
DownloadTimeout | 300 | the same | seconds a whole download may take |
DownloadConnectTimeout | 30 | the same (curl only) | seconds to wait for the connection |
RemotePackagesIndexURL
The address of a release folder, without index.xml. eZStepSiteTypes appends /index.xml (or index.xml
when the value ends in /). The packages' own addresses come from the url attributes in that index, so they may
be on another host.
Each release of Exponential changes this value in its package.ini to its own folder; the history of the key is in
History of the package server. The URL may use https:// or http:// for the
setup wizard; ezupdate accepts only https://.
The same value is shown, read only, as the first server on ezupdate's Package servers page, and is the default
of exp:ezwebininstall when its --url option is not given (kernel/private/classes/commands/ezwebininstall.php).
RemotePackagesIndexURLBase
Used when RemotePackagesIndexURL is empty. The constructor of eZStepSiteTypes then builds:
<RemotePackagesIndexURLBase>/<major>.<minor>/<version>/index.xmlwith <major>.<minor>/<version> from ExponentialSDK::packageServerPath(): 6.0/6.0.15 for this release, with the
release state appended only for a release that is not stable (6.0/6.0.16alpha1).
Note
Fixed in 6.0.15. Before, the fallback called ExponentialSDK::version() with its defaults, which append the
release state: the result was 6.0/6.0.15stable/, a folder the server does not have (it answered 404). From
6.0.15 on, the setup wizard builds 6.0/6.0.15/, the folder the package server has, and so does ezupdate
(eZUpdatePackageServers::builtinIndexURL()) from its release that ships with 6.0.15 on. Setting
RemotePackagesIndexURL to the release folder you want is still the clearest choice.
The Site package step also links "Full archive of all packages can be found here" to this value.
Further package servers
From 6.0.15 on, the setup wizard, the kickstarter and exp:install (all three read the index through
eZStepSiteTypes::retrieveRemotePackagesList()) read more than one server:
[RepositorySettings]
# folders with an index.xml, read after RemotePackagesIndexURL
AdditionalRemotePackagesIndexURLs[]
AdditionalRemotePackagesIndexURLs[]=https://packages.example.com/exponential/6.0/6.0.15
# lists of servers kept in other settings files: <file>.ini;<block>;<setting>, an array of <name>=<URL>
RemotePackagesIndexSources[]
RemotePackagesIndexSources[]=ezupdate.ini;PackageServerSettings;Servers- The main server (
RemotePackagesIndexURL, or its offline copy) comes first. A package an earlier index lists is kept as it is; a further server only adds the packages the earlier ones do not have. - The default source is the list of ezupdate's Package servers page
(Package servers in ezupdate), kept in
settings/override/ezupdate.ini.append.php. EmptyRemotePackagesIndexSources[]in an override to read only the servers named inpackage.ini. - Only
http://andhttps://addresses are read, each once. A further server that cannot be read is skipped with a warning in the debug output; the step shows an error only for the main server. - A requirement is downloaded from whichever server lists it, so a site package on one server may require packages of another.
Vendor and RepositoryDirectory
Packages are stored in var/<StorageDir>/<RepositoryDirectory>/<vendor>/<name>/, which with the defaults is
var/storage/packages/7x/<name>/. An imported package goes into the folder named by its own <vendor>; packages made
on the installation go into local/. Vendor names the system repository, the one the setup wizard looks into
for an offline index.xml (var/storage/packages/7x/index.xml). See
The local package repository and
Offline installs and mirrors.
The download settings
Added in 6.0.15 (changelog, "6 October 2026: the setup's package download"). They apply to the index and to every package the setup downloads.
DownloadAttempts: at least 1. An attempt fails on a transfer error, an HTTP status other than 200, an empty or truncated file, or an.ezpkgthat is not gzip data; a failed attempt leaves no file behind.DownloadRetryDelays[]: the wait before attempt 2 is the first value, before attempt 3 the second, and so on; the last value is used for all later attempts. With the defaults (3 attempts) the waits are 2 and 5 seconds; the 10 is used when you raiseDownloadAttempts.DownloadTimeout: the limit for the whole transfer, with curl and without.DownloadConnectTimeout: the limit for opening the connection, with curl.
An empty value means the built-in default (the same numbers). Failures that cannot get better by waiting, such as a cache folder that cannot be written, are not retried. What you see when all attempts fail: When the package server cannot be reached.
Settings in site.ini that go with them
[ProxySettings]
ProxyServer=
User=
Password=
[FileSettings]
StorageDir=storageProxyServer (with User and Password when the proxy needs them) is used for the setup's downloads over curl, and
by ezupdate. StorageDir is part of the repository path above.
Overriding the settings
Put changes in settings/override/package.ini.append.php, never in settings/package.ini itself, which an update
of the kernel replaces:
[RepositorySettings]
RemotePackagesIndexURL=https://packages.example.com/6.0/6.0.15
DownloadAttempts=5
*/ ?>The setup wizard runs before any siteaccess exists, so a siteaccess override has no effect on it; use
settings/override/. Clear the INI cache after the change (php bin/php/ezcache.php --clear-tag=ini). For pointing a
site at your own server, including ezupdate's list and kickstart.ini, see
Pointing a site at your package server.
Related pages
- Site packages: start here
- The package server
- The index.xml format
- Offline installs and mirrors
- Package servers in ezupdate
- Choosing an install method, 4.3 Site packages
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.