{"id":13883508,"url":"https://github.com/atymic/deployer-php-action","last_synced_at":"2025-08-11T23:08:08.199Z","repository":{"id":42960962,"uuid":"228117642","full_name":"atymic/deployer-php-action","owner":"atymic","description":"Deploy PHP projects using Deployer from Github Actions","archived":false,"fork":false,"pushed_at":"2023-05-07T13:09:00.000Z","size":480,"stargazers_count":64,"open_issues_count":15,"forks_count":16,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-01T20:53:12.908Z","etag":null,"topics":["action","actions","cicd","deployer","deployment","laravel","php","zero-downtime"],"latest_commit_sha":null,"homepage":"https://atymic.dev/blog/github-actions-laravel-ci-cd/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atymic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-15T02:24:40.000Z","updated_at":"2025-07-03T20:34:35.000Z","dependencies_parsed_at":"2024-06-18T18:30:56.183Z","dependency_job_id":"83a0cc0c-28e8-49f5-a823-149cee404c6a","html_url":"https://github.com/atymic/deployer-php-action","commit_stats":{"total_commits":20,"total_committers":6,"mean_commits":"3.3333333333333335","dds":0.35,"last_synced_commit":"b7e149d1421dfe30ed976b3a4477d6f42e3cac04"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/atymic/deployer-php-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atymic%2Fdeployer-php-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atymic%2Fdeployer-php-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atymic%2Fdeployer-php-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atymic%2Fdeployer-php-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atymic","download_url":"https://codeload.github.com/atymic/deployer-php-action/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atymic%2Fdeployer-php-action/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269970120,"owners_count":24505466,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["action","actions","cicd","deployer","deployment","laravel","php","zero-downtime"],"created_at":"2024-08-06T09:01:35.529Z","updated_at":"2025-08-11T23:08:08.177Z","avatar_url":"https://github.com/atymic.png","language":"TypeScript","readme":"# `deployer-php` GitHub Action\n\n[Deployer](https://deployer.org/) is an open source zero downtime deployment tool for PHP.\n\nThis action makes it easy to deploy your php services using [Github Actions](https://help.github.com/en/actions) by setting up everything for you.\n\n### What the action does\n* Starts the `ssh-agent`\n* Loads your deployment SSH private key into the agent\n* Configures `known_hosts` with your provided key (or turns of SSH host key checking)\n* Installs deployer\n\n## Using the action\n\nFor a complete guide on setting Zero Downtime Deployment with Laravel, see: [atymic.dev/blog/github-actions-laravel-ci-cd/](https://atymic.dev/blog/github-actions-laravel-ci-cd).\n\n1. Create an SSH private key for your deploy user. It's a good idea to generate a new key specifically for deployment (ideally on a specific deployment user with minimal permissions).\n2. In your repository, go to the *Settings \u003e Secrets* menu and create a new secret called `SSH_PRIVATE_KEY`. Put the *unencrypted private* SSH key into the contents field. \u003cbr\u003e\n  This key should start with `-----BEGIN RSA PRIVATE KEY-----`, consist of many lines and ends with `-----END RSA PRIVATE KEY-----`. \n  You can just copy the key as-is from the private key file.  \n  _Note: This actions supports both standard keys \u0026 pem keys (the action will fix the formatting before loading them into the agent)._\n3. Add another Secret called `SSH_KNOWN_HOSTS`, and paste the key fingerprint(s) of your server. You can find these using the following command `ssh-keyscan -t rsa \u003cserver IP or hostname\u003e`. Make sure you're using the same hostname or IP as you defined in the \"host\" section of your deploy.php.\n4.  \n   **Disabling Host Check Checking (Not Recommended):**  \n   You can disable strict host key checking by passing `ssh-disable-host-key-checking: true` to the action.\n  \n4. In your workflow definition file, add the following step. This should be after setting up php \u0026 installing composer dependencies.\n\n```yaml\n# .github/workflows/workflow.yml\njobs:\n    deployment_job:\n        ...\n        steps:\n            - actions/checkout@v1\n            - uses: shivammathur/setup-php@master\n                with:\n                  php-version: 7.3\n            - run: composer install\n            # Make sure the @0.3.1 matches the current version of the action\n            # You can also use `master`, but it's best to lock to a specific version\n            - uses: atymic/deployer-php-action@0.3.1\n              with:\n                  ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}\n                  ssh-known-hosts: ${{ secrets.SSH_KNOWN_HOSTS }}\n                  # To disable host key checking (insecure!):\n                  ssh-disable-host-key-checking: true\n            - ... other steps\n```\n## Known issues and limitations\n\n### Works for the current job only\n\nSince each job [runs in a fresh instance](https://help.github.com/en/articles/about-github-actions#job) of the virtual environment, the SSH key will only be available in the job where this action has been referenced. You can, of course, add the action in multiple jobs or even workflows. All instances can use the same `SSH_PRIVATE_KEY` secret.\n\n## Creating SSH keys\n\nIn order to create a new SSH key, run `ssh-keygen -t rsa -b 4096 -m pem -f path/to/keyfile`. This will prompt you for a key passphrase and save the key in `path/to/keyfile`.\n\nHaving a passphrase is a good thing, since it will keep the key encrypted on your disk. When configuring the secret `SSH_PRIVATE_KEY` value in your repository, however, you will need the private key *unencrypted*. \n\n## Contributing\n\nJavascript Actions Documentation: https://help.github.com/en/articles/creating-a-javascript-action\n\n* Fork/Clone the repo.\n* Run `yarn install` to fetch dependencies\n* Make changes\n* Update the README with any changes (if required)\n* Create a PR *without* building the code (it's too hard to review the compiled code. I'll compile it before releasing)\n\n# Credits\n\nCopyright 2019 atymic. Code released under [the MIT license](LICENSE).\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatymic%2Fdeployer-php-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatymic%2Fdeployer-php-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatymic%2Fdeployer-php-action/lists"}