koskey / laravel-digital-ocean-deployer
A Laravel package for automated deployment to DigitalOcean servers
Installs: 16
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/koskey/laravel-digital-ocean-deployer
Requires
- php: ^8.1|^8.2
- illuminate/support: ^9.0|^10.0
Requires (Dev)
- orchestra/testbench: ^7.0|^8.0
- phpunit/phpunit: ^10.0
README
A Laravel package for automated deployment to DigitalOcean servers using GitHub Actions.
Installation
You can install the package via composer:
composer require koskey/laravel-digital-ocean-deployer
Updating
To get the latest updates, run:
composer update koskey/laravel-digital-ocean-deployer
After updating, check the CHANGELOG.md for any breaking changes or new features.
If you've updated from version 1.0.0, you now have access to the new deployer:generate-key command for easier SSH key setup.
Important Update Notice for v1.2.2
If you're updating from a previous version, you need to republish the config file:
php artisan vendor:publish --provider="Koskey\LaravelDigitalOceanDeployer\DeployerServiceProvider" --tag="config" --force
This update changes how server configuration is handled, moving from environment variables to GitHub secrets directly.
Configuration
- Publish the configuration file:
php artisan vendor:publish --provider="Koskey\LaravelDigitalOceanDeployer\DeployerServiceProvider" --tag="config"
- Publish the GitHub workflow:
php artisan vendor:publish --provider="Koskey\LaravelDigitalOceanDeployer\DeployerServiceProvider" --tag="config"
Edit the config/deployer.php file to set your preferred branch name:
'repository' => [ 'provider' => 'github', 'branch' => 'master', // Change this to your desired branch ],
Then publish the GitHub workflow with your configured branch:
php artisan deployer:publish-workflow
- Add the following environment variables to your GitHub repository secrets:
DO_HOST: Your DigitalOcean server hostnameDO_USERNAME: Your server usernameDO_SSH_KEY: Your SSH private key (base64 encoded)DO_PATH: Your application path on the server (default: /var/www/html)
Getting Your Base64 Encoded SSH Key
The package provides an easy way to get your base64 encoded SSH key. After installation, run:
php artisan deployer:generate-key
This command will:
- Find your SSH private key (usually in
~/.ssh/id_rsa) - Convert it to base64 format
- Display both the encoded private key (for GitHub) and the public key (for your server)
- If no SSH key is found, it can generate a new key pair for you
You can also specify a custom path to your SSH key:
php artisan deployer:generate-key --path=/path/to/your/key
Add the base64 encoded output as the value for DO_SSH_KEY in your GitHub repository secrets.
Note: Make sure the corresponding public key is added to your DigitalOcean server's ~/.ssh/authorized_keys file.
Usage
The package will automatically deploy your application when you push to the main branch. You can also manually deploy using the artisan command:
php artisan deploy
Configuration Options
You can customize the deployment process by editing the config/deployer.php file:
- Server configuration
- Repository settings
- Deployment steps
- Custom hooks
- File permissions
Contributing
Please see CONTRIBUTING.md for details.
License
The MIT License (MIT). Please see License File for more information.