Configuration Reference
Bootstrap Configuration
These configuration options are special configuration options only configurable through environment variables (e.g. through the .env file).
FILES_PATH
FILES_PATH A path (relative or absolute) to the directory in which you would like to list. This may even be a path outside of the application directory. When left unset, the root application directory (i.e. the folder where index.php is located) will be listed.
An absolute or relative file path (string)
<unset>
COMPILE_CONTAINER
COMPILE_CONTAINER Whether or not the application container will be compiled. When set to false the container will not be compiled and cached. If left unset the container will be compiled and cached on first run and the cached container will be reused on subsequent requests. Disabling this comes with a (likely negligible) performance hit. Generally this should not be changed but might be necessary to modify when running Directory Lister on a read-only filesystem.
false or <unset>
<unset>
Runtime Configuration
General application runtime configuration can be controlled through environment variables. This can be accomplished via an .env file located in the root of your application. An example file is provided as .env.example.
ANALYTICS_FILE
ANALYTICS_FILEFile containing analytics scripts that will be included in the HTML output of your directory listing.
A (string) file name
.analytics
APP_DEBUG
APP_DEBUGEnable application debugging and display error messages.
It is recommended that debug remains OFF unless troubleshooting an issue. Leaving this enabled WILL cause leakage of sensitive server information.
true or false
false
APP_LANGUAGE
APP_LANGUAGEThe application's interface language.
See the app/translations folder for available translations.
en (English)
DATE_FORMAT
DATE_FORMATThe format used for rendering dates in the application views.
See the PHP date format documentation for possible values.
Y-m-d H:i:s
DIRECT_LINKS
DIRECT_LINKSComma separated list of file matching patterns to be directly linked. Directly linked files will not be served by Directory Lister but handled by the web server directly.
This setting has no effect when FILES_PATH is set or when used in the Docker container.
DISPLAY_READMES
DISPLAY_READMESParse and render README files on the page.
true or false
true
Example
To directly link all .htm, .html and .php files in all folders and sub-folders.
DIRECT_LINKS=**/index.{htm,html},**/*.phpA comma separated list of file matching patterns.
null
GOOGLE_ANALYTICS_ID
GOOGLE_ANALYTICS_IDYour Google analytics tracking ID.
This configuration option has been deprecated and will stop working in a future release. See the Analytics Script Injection section for instructions on configuring analytics tracking.
A string in the format of UA-123456789-0 or false to disable
false
HIDDEN_FILES_LIST
HIDDEN_FILES_LISTFile containing hidden file definitions. Will be merged with definitions from the 'hidden_files' configuration option.
A path (string) to a file
.hidden
HIDE_APP_FILES
HIDE_APP_FILESHide application specific files/directories (i.e. index.php and the app folder).
true or false
true
HIDE_DOT_FILES
HIDE_DOT_FILESHide dot files/directories from the listing.
true or false
true
HIDE_VCS_FILES
HIDE_VCS_FILESHide the files Version Control Systems (i.e. Git and Mercurial) use to store their metadata.
true or false
true
HOME_TEXT
HOME_TEXTText of the home link in the navigation breadcrumbs. If undefined or null will use the translated form of "home" from your selected language.
Any string
null
MATOMO_ANALYTICS_SITE_ID
MATOMO_ANALYTICS_SITE_IDYour Matomo analytics site ID.
This configuration option has been deprecated and will stop working in a future release. See the Analytics Script Injection section for instructions on configuring analytics tracking.
A Matomo analytics site ID (string)
false
MATOMO_ANALYTICS_URL
MATOMO_ANALYTICS_URLYour Matomo analytics URL.
This configuration option has been deprecated and will stop working in a future release. See the Analytics Script Injection section for instructions on configuring analytics tracking.
A Matomo analytics URL (string)
false
MAX_HASH_SIZE
MAX_HASH_SIZEThe maximum file size (in bytes) that can be hashed. This helps to prevent timeouts for excessively large files.
The larger a file is the longer it will take to calculate hashes for that file.
Any positive integer 0 - 9223372036854775807 (PHP_INT_MAX)
1000000000 (1 GB)
META_DESCRIPTION
META_DESCRIPTIONMeta tag description (i.e. <meta name="description">) text.
Any string
Yet another directory listing, powered by Directory Lister.
READMES_FIRST
READMES_FIRSTShow READMEs before the file listing.
true or false
false
REVERSE_SORT
REVERSE_SORTWhen enabled, reverses the order of files (after sorting is applied).
true or false
false
SITE_TITLE
SITE_TITLEThe title of your directory listing. This will be displayed in the browser tab/title bar along with the current path.
Any string
Directory Lister
SORT_ORDER
SORT_ORDERSorting order of files and folders. Can be one of several predefined values. Advanced sorting configuration can be achieved by using an anonymous function. See the sort_order configuration option documentation for more information.
type, natural, name, accessed, changed, modified, <anonymous function>
type
TIMEZONE
TIMEZONETime zone used for date formatting.
For a list of supported time zones see: https://www.php.net/manual/en/timezones.php.
The server's timezone
ZIP_DOWNLOADS
ZIP_DOWNLOADSEnable downloading of directories as a zip archive.
true or false
true
ZIP_COMPRESS
ZIP_COMPRESSCompress Zip using Deflate. Enabling this option prevents file size estimation and it may prevent zip download resuming when paused.
true or false
false
Cache Configuration
Application cache configuration is also controlled through environment variables. This can be accomplished via an .env file located in the root of your application. An example file is provided as .env.example.
CACHE_DRIVER
CACHE_DRIVERThe application cache driver. Setting this value to array will disable the cache across requests. Additional driver-specific options may be required with certain values.
apcu, array, file, memcached, redis, php-file, valkey
file
CACHE_LIFETIME
CACHE_LIFETIMEThe app cache lifetime (in seconds). Setting this value to 0 will cache indefinitely.
Any positive integer
60 (one hour)
CACHE_LOTTERY
CACHE_LOTTERYSome cache drivers require manually pruning the cache periodically to remove expired items. This is the percentage chance (out of 100) of a request "winning" the lottery causing the cache to be pruned.
Any integer betweeen 1 and 100
2
MEMCACHED_HOST
MEMCACHED_HOSTThe Memcached server hostname or IP address.
Any string
localhost
MEMCACHED_PORT
MEMCACHED_PORTThe Memcached server port.
Any valid port as an integer (0 to 65353)
11211
REDIS_HOST
REDIS_HOSTThe Redis server hostname or IP address.
Any string
localhost
REDIS_PORT
REDIS_PORTThe Redis server port.
Any valid port as an integer (0 to 65353)
6379
VIEW_CACHE
VIEW_CACHEPath to the view cache directory. Set to false to disable view caching entirely.
A directory path as a string or false to disable the view cache entirely
app/cache/views
Icon Configuration
The icon config is located at app/config/icons.php. Here is were file types are mapped to their respective icons. The mapping is a PHP array where the array key is the file extension (without a preceding dot) and the array value is the desired Font Awesome class names.
return [
'icons' => [
'7z' => 'fas fa-file-archive',
'aac' => 'fas fa-music',
'accdb' => 'fas fa-database',
'ai' => 'fas fa-image',
'aif' => 'fas fa-music',
'apk' => 'fab fa-android',
'app' => 'fas fa-window',
'avi' => 'fas fa-video',
'bak' => 'fas fa-save',
'bat' => 'fas fa-terminal',
// etc...
],
];Advanced Configuration
Some configuration values do not have a corresponding variable. These values can only be controlled through their entries in the app/config files.
hidden_files
hidden_filesArray of hidden file definitions. Will be merged with definitions in the file defined in the hidden_files_list configuration option. Supports glob patterns (e.g. *.txt, file.{yml,yaml}, etc.).
An array of paths (strings)
[] (an empty array)
'hidden_files' => [
'somefile.txt', // Matches 'somefile.txt' exactly
'README.*', // Matches files named 'README' with any file extension
'foo/*', // Matches all files in the 'foo' directory
'schema.{ya?ml}', // Matches 'schema.yml' or 'schema.yaml'
]memcached_config
memcached_configThe Memcached configuration anonymous function (closure). This option is used when the cache_driver configuration option is set to memcached. The closure receives a Memcached object as it's only parameter. You can use this object to configure the Memcached connection. At a minimum you must connect to one or more Memcached servers via the addServer() or addServers() methods.
An anonymous function that receives a Memcached object
function (Memcached $memcached): void {
// Configure the $memcached object
}DI\value(function (Memcached $memcached, Config $config): void {
$memcached->addServer(
$config->get('memcached_host'),
$config->get('memcached_port')
);
})This closure adds a single connection to a server at the host defined by memcached_host on the port defined by memcached_port.
Uses the MEMCACHED_HOST and MEMCACHED_PORT variables by default
redis_config
redis_configThe Redis configuration anonymous function (closure). This option is used when the cache_driver configuration option is set to redis. The closure receives a Redis object as it's only parameter. You can use this object to configure the Redis connection. At a minimum you must connect to one or more Redis servers via the connect() or pconnect() methods.
An anonymous function that receives a Redis object
function (Redis $redis): void {
// Configure the $redis object
}DI\value(function (Redis $redis, Config $config): void {
$redis->pconnect(
$config->get('redis_host'),
$config->get('redis_port')
);
})This closure adds a single connection to a server at the host defined by redis_host on the port defined by redis_port.
Uses the REDIS_HOST and REDIS_PORT variables by default
http_cache
http_cacheHTTP cache values for controlling browser page cache duration. An array of mime types mapped to their cache duration in seconds.
An array of mime types mapped to their cache duration as a seconds (integers).
[
'application/json' => 300,
'application/zip' => 300,
]sort_order
sort_orderAn anonymous function can be used to customize the sort order of files and folders in your directory listing. The anonymous function receives two SplFileInfo objects as arguments and must return an integer less than, equal to, or greater than zero to represent the first argument being respectively less than, equal to, or greater than the second.
'sort_order' => \DI\value(
function (SplFileInfo $file1, SplFileInfo $file2): int {
return strcmp($file1->getRealPath(), $file2->getRealPath());
})
);The anonymous function must be wrapped in a \DI\value() function.
Last updated
Was this helpful?