Amezmo will run a set of scripts for you before, during, and after your deployment.
These scripts are expected to be located in the
.amezmo directory of your applications root directory.
The scripts are executed as a shell script using Bash.
A set of environment variables are given to the script, for your reference.
For example, the file after.pull
is executed for the event After Pull.
Hooks are files.
In the below sample application directory structure, the
.amezmo directory is where you define your "hook" scripts.
# A sample laravel application root directory. # The `tree -a -L 2 .` command was run inside a Laravel app's root directory. . ├── .amezmo │ ├── after.deploy │ ├── after.pull │ ├── after.extract │ ├── before.deploy │ ├── after.deploy │ ├── deploy.failure │ └── deploy.success ├── app ├── artisan ├── bootstrap ├── composer.json ├── composer.lock ├── config ├── database ├── routes ├── server.php ├── storage ├── vendor ├── node_modules ├── .env
As part of the deployment process, Amezmo will run a chmod across your target deployment directory after hooks run. This ensures that
any files created from your hooks will have correct and expected permissions. Amezmo ensures the owner/group is
www-data:deployer. This allows for expected permissions across all areas of your application.
For directories, the permissions are
2775/drwxrwxr-x, for files the permissions are
The most recent .env file, which is the one that you see in the dashboard within the Configuration tab,
is placed into the newly created deployment directory immediately completion of git pull.
This allows your hooks to use the contents of the
.env if you desire.
.env file loading does not happen automatically.
To accomplish this, simply edit your hook file to load it before doing anything else.
Encrypted environment variables are injected into the hooks environment
and exist in memory only.
You may access them inside your hook file using the bash syntax
for variables such as
Secrets will never be written to disk and only decrypted to execute hooks.
Your hook script has access to the following pre-defined environment variables. In addition to these enviroment variables, Amezmo injects your secret variables as well. For more information about secrets, see the Secrets Overview page.
|APPLICATION_ROOT||This is where your code is located on the server in the form of
|COMMIT_ID||Git commit hash of the currently executing deployment|
|NODE_PATH||The path to the global node.js package binaries|
|PERSISTENT_STORAGE_DIRECTORY||Path to the persistent storage directory|
|APP_DOMAIN||Internal domain name for the environmnt|
|REPO_NAME||The name of the repository currently being deployed|
|DEPLOY_BRANCH||The name of the branch currently being deployed|
|TARGET_HOOK||The name of hook being executed. This is one of the values listed in the Hook list|
|RELEASE_NUMBER||The generated release number. The value is in the form of
|DEPLOYMENT_DIRECTORY||The fully qualified path to the current in progress deployment.|
|APP_TYPE||The application type ID such as
|ENVIRONMENT_NAME||The name of the application environment|
On the Deployments tab, you can see a list of your deployments. To view a single deployment click on the link in the status column. Note that, Amezmo will only show the hooks that were executed in the table below.
- There is a 10 minute limit on hook execution