Skip to content

Configuration Options ​

A lookup table for .shippy.yaml. For explanations and examples, follow the links into the Configuration guide.

Top level ​

KeyTypeDescription
hostsmapOne entry per deployment target. The key is the name you pass to shippy deploy <name>.
commandslistCommands executed in the new release directory, before it goes live. Default TYPO3 commands if not set, none with commands: [].
commands_post_releaselistCommands executed against current/ after the release went live, e.g. flush opcache. Nothing runs by default. See Post-release commands.
rollback_commandslistCommands executed when shippy rollback switches releases.
command_contextstringPrefix that every command is run inside, e.g. docker exec php85. Overridable per host and per command. See Deployment Commands.
lock_enabledboolDeployment locking, true by default. Overridable per host.
lock_timeoutintMinutes before a stale lock expires, 15 by default. Overridable per host.
backupmapSettings for shippy backup. Can be overridden per host.
include / excludelistCan also be set globally; a per-host list replaces the global one rather than merging. See File Selection.

hosts.<name> ​

Connection ​

KeyTypeDefaultDescription
hostnamestring—Server domain or IP.
portint22SSH port. Top-level for convenience; other SSH settings live in ssh_options.
remote_userstring—SSH username.
ssh_keystringauto-detectedPath to the SSH private key. Falls back to ~/.ssh/id_ed25519, ~/.ssh/id_rsa, ~/.ssh/id_ecdsa, plus any key held by a running ssh-agent. See SSH Connections.
ssh_optionsmap—SSH configuration options, see below.
ssh_multiplexingboolfalseReuse one shared connection (ControlMaster) for all operations against the host. See SSH Multiplexing.

Deployment ​

KeyTypeDefaultDescription
deploy_pathstring—Absolute path on the server. Shippy creates current, releases/ and shared/ beneath it.
rsync_srcstring—Local source directory, usually ./.
keep_releasesint5How many releases to keep after cleanup — these are the ones you can roll back to.
file_modestring"0664"Octal mode for deployed files. Quote it. Can also be set globally. See Permissions.
dir_modestring"2775"Octal mode for deployed directories. Quote it. Can also be set globally.
command_contextstringinherits globalPer-host override of the command prefix.
lock_enabledbooltruePer-host override of deployment locking. See Deployment Locking.
lock_timeoutint15Per-host override of the stale-lock timeout, in minutes.

Files ​

KeyTypeDefaultDescription
sharedlist—Paths symlinked from shared/ into every release. Trailing / marks a directory. See Shared Files/Directories.
includelist—The allowlist. Nothing is deployed unless it is listed here; a directory entry ships its whole subtree. See File Selection.
excludelist—Carve-outs that win over include, on top of the built-in default excludes.

ssh_options ​

All values are strings. See SSH Options for details.

OptionDefaultDescription
ConnectTimeout30Connection timeout. Accepts seconds ("30") or a duration ("30s", "5m", "1h").
ServerAliveInterval—Interval between keepalive messages. Same formats as ConnectTimeout.
ServerAliveCountMax3Failed keepalives tolerated before disconnecting.
Compression—"yes" / "true" / "no" / "false". Negotiated with the server.
StrictHostKeyChecking—"yes", "accept-new" (recommended) or "no".
UserKnownHostsFile~/.ssh/known_hostsKnown hosts file, ~ is expanded.

commands, commands_post_release and rollback_commands ​

See Deployment Commands for the full explanation.

KeyTypeDescription
namestringDescription shown in the deployment output.
runstringCommand executed in the new release directory (current/ for commands_post_release).
onlylistRun only for these host names. Omit both only and except to run everywhere.
exceptlistRun everywhere except these host names. Wins over only if a host matches both.
command_contextstringPer-command override of the container prefix. "" forces the command to run directly on the host.
yaml
commands:
  - name: Clear TYPO3 cache
    run: ./{{config.bin-dir|vendor/bin}}/typo3 cache:flush

  - name: Database migrations
    run: ./{{config.bin-dir|vendor/bin}}/typo3 upgrade:run
    only:
      - production

backup ​

See shippy backup for the full annotated block.

KeyTypeDefaultDescription
outputstringcwdLocal directory the ZIP is written to.
fileslist—Paths inside the remote shared/ directory to include.
database.credentialsstringautoauto, dotenv, typo3 or manual.
database.driverstring—mysql, postgresql or sqlite. Required with credentials: manual.
database.host / .port / .name / .user / .passwordstring / int—Explicit credentials, used with credentials: manual. Supports ${VAR} substitution.
database.exclude_tableslist—Glob patterns for tables to skip in the dump.
database.optionsmap—DBMS-specific options, e.g. single_transaction, charset (MySQL), schema (PostgreSQL).

Substitutions ​

Both forms work in any string value. See Template Variables and Environment Variables.

SyntaxSourceExample
{{key.path}}composer.json{{name}}, {{extra.typo3/cms.web-dir}}
{{key.path|fallback}}composer.json, with fallback{{config.bin-dir|vendor/bin}}
${VAR}environment${DEPLOY_HOST}
${VAR|fallback}environment, with fallback${DEPLOY_PATH|/var/www/html}

WARNING

An unset ${VAR} without a fallback fails the deployment.

Released under the MIT License.