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

1.2.2 2024-12-26 12:00 UTC

This package is auto-updated.

Last update: 2025-12-26 15:15:33 UTC


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

  1. Publish the configuration file:
php artisan vendor:publish --provider="Koskey\LaravelDigitalOceanDeployer\DeployerServiceProvider" --tag="config"
  1. 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
  1. Add the following environment variables to your GitHub repository secrets:
  • DO_HOST: Your DigitalOcean server hostname
  • DO_USERNAME: Your server username
  • DO_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:

  1. Find your SSH private key (usually in ~/.ssh/id_rsa)
  2. Convert it to base64 format
  3. Display both the encoded private key (for GitHub) and the public key (for your server)
  4. 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.