https://github.com/liquidlight/deployer-typo3-ci
Package for deploying TYPO3 via CI
https://github.com/liquidlight/deployer-typo3-ci
Last synced: 6 months ago
JSON representation
Package for deploying TYPO3 via CI
- Host: GitHub
- URL: https://github.com/liquidlight/deployer-typo3-ci
- Owner: liquidlight
- Created: 2023-11-16T08:36:26.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-11-12T09:46:39.000Z (8 months ago)
- Last Synced: 2025-11-12T11:29:29.489Z (8 months ago)
- Language: PHP
- Homepage:
- Size: 124 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Liquid Light Deployer
This package is used by Liquid Light to deploy TYPO3 websites via CI - specifically Gitlab.
---
It is best used within Gitlab CI as it can utilise several environment variables.
The basis for this is [PHP Deployer](https://deployer.org/), however a lot of functionality comes from [deployer-extended-typo3](https://github.com/sourcebroker/deployer-extended-typo3) and it's many meta-packages.
## Options
There are several settings [defined by default](./deployer/hosts) within this package for the most common hosts.
### Hosts
Set the hostname of the server in the `deploy.php` file - the rest of the connection details should be in your `.ssh/config` file
```php
host('production')
->set('hostname', 'client.xxx')
;
```
#### Existing Hosts
The following hosts have a config file in the `deployer/hosts` file with some sensible defaults
- production
- staging
- local
### Clearing OPCache
If the server has `OPCache` installed, it will need to be cleared on each deployment to allow PHP and Apache to see the new symlinks.
To do this, you need to declare an array in `public_urls` in the deploy file, along with adding the `cache:clear_php_http` task for the environment.
1. Add `->set('public_urls', ['[URL]'])` to the `production` host in `deploy.php`
2. Add the `cache:clear_php_http` task for production instances (example below)
```php
on(select('instance=production'), function ($host) {
after('cache:clear_php_cli', 'cache:clear_php_http');
});
```
### Pushing the database
Pushing the database to live is prohibited, however there are some cases where this needs to be done.
To allow this, add the following to your local `deploy.php` file
```php
set('db_allow_push_live', true);
```
## Common settings
### VPS
#### Configuration
Add the following settings if not set (and adjust if necessary). They can be set globally or chained to the host (e.g. `->set('writable_use_sudo', true)`)
```php
set('writable_use_sudo', true);
set('cleanup_use_sudo', true);
set('writable_mode', 'chgrp');
set('http_group', 'www-data');
```
#### Additional tasks
**`deploy:vps:writable`**
Add an extra post-deploy task to reset permissions and reboot PHP if needed
```php
after('typo3:cache:flush:pages', 'deploy:vps:writable');
```
**`service:php_fpm_reload`**
Add PHP reloading to set the correct version as documented in [deployer-extended](https://github.com/sourcebroker/deployer-extended?tab=readme-ov-file#service)
## Upgrading
### v2 -> v3
As well as removing some functionality, the v3 upgrade requires some changes to the `deploy.php` file
1. In `deploy.php`, update the require location & class invocation
```php
VPS**](#vps) steps above