PHPackages                             madj2k/t3-surf - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. madj2k/t3-surf

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

madj2k/t3-surf
==============

Deployments for TYPO3

v10.4.2-stable(1y ago)091GPL-3.0+PHPPHP ~7.4.0

Since Apr 5Pushed 1y ago2 watchersCompare

[ Source](https://github.com/skroggel/typo3-deployment)[ Packagist](https://packagist.org/packages/madj2k/t3-surf)[ RSS](/packages/madj2k-t3-surf/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (3)Versions (14)Used By (0)

Stages of deployment
====================

[](#stages-of-deployment)

When running a deployment the following stages and corresponding tasks are executed.

Stage 1: initialize
-------------------

[](#stage-1-initialize)

This is normally used only for an initial deployment to an instance. At this stage you may prefill certain directories for example.

1. TYPO3\\Surf\\Task\\Generic\\CreateDirectoriesTask
2. TYPO3\\Surf\\Task\\CreateDirectoriesTask
3. TYPO3\\Surf\\Task\\DumpDatabaseTask (wenn initialDeployment == true)
4. TYPO3\\Surf\\Task\\RsyncFoldersTask (wenn initialDeployment == true)

Stage 2: lock deployment
------------------------

[](#stage-2-lock-deployment)

Lock deployment

BEFORE:

1. TYPO3\\Surf\\Task\\UnlockDeploymentTask (wenn --force-run)

REGULAR:

1. TYPO3\\Surf\\Task\\LockDeploymentTask

Stage 3: package
----------------

[](#stage-3-package)

This stage is where you normally package all files and assets, which will be transferred to the next stage.

1. TYPO3\\Surf\\Task\\Package\\GitTask
2. TYPO3\\Surf\\DefinedTask\\Composer\\LocalInstallTask
3. Madj2k\\Surf\\Task\\Local\\File\\CopyEnvTask
4. Madj2k\\Surf\\Task\\Local\\File\\CopyHtaccessTask
5. Madj2k\\Surf\\Task\\Local\\File\\CopyAdditionalConfigurationTask
6. Madj2k\\Surf\\Task\\Local\\File\\FixPermissionsTask
7. Madj2k\\Surf\\Task\\Local\\Git\\SetFileModeIgnoreTask
8. Madj2k\\Surf\\Task\\Local\\Composer\\InstallStagingTask OR Madj2k\\Surf\\Task\\Local\\Composer\\InstallProductionTask

Stage 4: transfer
-----------------

[](#stage-4-transfer)

Here all tasks are located which serve to transfer the assets from your local computer to the node, where the application runs.

1. TYPO3\\Surf\\Task\\Transfer

AFTER:

1. Madj2k\\Surf\\Task\\Remote\\File\\CreateVarFoldersTask
2. TYPO3\\Surf\\Task\\Generic\\CreateSymlinksTask
3. TYPO3\\Surf\\Task\\TYPO3\\CMS\\CreatePackageStatesTask

Stage 5: update
---------------

[](#stage-5-update)

Update the application assets on the node

BEFORE:

1. Madj2k\\Surf\\Task\\Remote\\CMS\\LockForEditorsTask

REGULAR:

1. Madj2k\\Surf\\Task\\Remote\\CMS\\UpgradeTask

AFTER:

1. TYPO3\\Surf\\Task\\TYPO3\\CMS\\SymlinkDataTask
2. TYPO3\\Surf\\Task\\TYPO3\\CMS\\CopyConfigurationTask

Stage 6: migrate
----------------

[](#stage-6-migrate)

Migrate (Doctrine, custom)

1. TYPO3\\Surf\\Task\\TYPO3\\CMS\\SetUpExtensionsTask
2. TYPO3\\Surf\\Task\\TYPO3\\CMS\\CompareDatabaseTask

Stage 7: finalize
-----------------

[](#stage-7-finalize)

Prepare final release (e.g. warmup)

REGULAR:

1. Madj2k\\Surf\\Task\\Remote\\File\\FixPermissionsTask
2. Madj2k\\Surf\\Task\\Remote\\TYPO3\\CMS\\FixFolderStructureTask

AFTER:

1. Madj2k\\Surf\\Task\\Remote\\File\\CopyDummyFilesTask (only if NOT on production!)

Stage 8: test
-------------

[](#stage-8-test)

Smoke test

Stage 9: Switch
---------------

[](#stage-9-switch)

Do symlink to current release. This is the crucial stage. Here the old live instance is switched with the new prepared instance. Normally the new instance is symlinked.

1. TYPO3\\Surf\\Task\\SymlinkReleaseTask

AFTER:

1. TYPO3\\Surf\\Task\\TYPO3\\CMS\\FlushCachesTask

Stage 10: cleanup
-----------------

[](#stage-10-cleanup)

Delete temporary files or previous releases

1. TYPO3\\Surf\\Task\\CleanupReleasesTask

Stage 11: unlock
----------------

[](#stage-11-unlock)

Unlock deployment

1. TYPO3\\Surf\\Task\\UnlockDeploymentTask
2. Madj2k\\Surf\\Task\\Remote\\TYPO3\\CMS\\UnlockForEditorsTask

AFTER:

1. Madj2k\\Surf\\Task\\Remote\\EmailNotification

Folders and files for your deployment project
=============================================

[](#folders-and-files-for-your-deployment-project)

If you want to deploy your TYPO3 project with this extension, you should create a few folder structures and files to be able to use the full potential.

Folder: .surf
-------------

[](#folder-surf)

Contains the configuration for the TYPO3 extension Surf for deployment and the corresponding Deployment-Scripts.

### File: .surf/Production.php

[](#file-surfproductionphp)

```
