Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Package server settings

Every key of settings/package.ini [RepositorySettings] with its default and what reads it - the index address, its fallback, the vendor repository, and the download attempts, delays and timeouts - plus the proxy and…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/site-packages/package-server/package-server-settings.md

On this page

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

  1. The keys at a glance
  2. RemotePackagesIndexURL
  3. RemotePackagesIndexURLBase
  4. Further package servers
  5. Vendor and RepositoryDirectory
  6. The download settings
  7. Settings in site.ini that go with them
  8. Overriding the settings
  9. 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
KeyDefaultRead byMeaning
RemotePackagesIndexURLthe 6.0.15 foldersetup wizard, kickstarter, exp:install, ezupdate, exp:ezwebininstallthe release folder whose index.xml is read
RemotePackagesIndexURLBase.../exponentialthe same, only when RemotePackagesIndexURL is empty; the wizard's "Additional packages" linkthe top of the server
AdditionalRemotePackagesIndexURLs[]emptysetup wizard, kickstarter, exp:install (6.0.15 on)further servers, read after the main one
RemotePackagesIndexSources[]ezupdate's listthe samelists of further servers in other settings files
Vendor7xeZPackage::systemRepositoryInformation()the repository folder of the installer's packages
RepositoryDirectorypackageseZPackage::repositoryPath()the folder of all package repositories below the storage directory
DownloadAttempts3eZStepSiteTypes::downloadFile()how many times a download is tried
DownloadRetryDelays[]2, 5, 10the sameseconds to wait before each further attempt
DownloadTimeout300the sameseconds a whole download may take
DownloadConnectTimeout30the 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.xml

with <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. Empty RemotePackagesIndexSources[] in an override to read only the servers named in package.ini.
  • Only http:// and https:// 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 .ezpkg that 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 raise DownloadAttempts.
  • 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=storage

ProxyServer (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:

<?php /* #?ini charset="utf-8"?

[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.

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.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x