Download the PHP package dennenboom/harvest without Composer

On this page you can find all versions of the php package dennenboom/harvest. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package harvest

Harvest

A simple deployment automation tool for Laravel applications, inspired by Laravel Envoy. Harvest helps you automate deployment scenarios by executing a series of commands on remote servers via SSH.

Features

Installation

Install via Composer:

The package will auto-register itself via Laravel's package discovery.

Configuration

Publish the configuration file:

This will create a config/harvest.php file. Configure your deployment environments:

SSH Setup

Docker: Mount SSH keys

Usage

Deploy to a specific environment:

Skip confirmation prompt:

Pass variables via command line:

Pass multiple variables:

SSH Authentication

Harvest executes SSH commands directly, so authentication is handled by your SSH configuration. This means:

Example SSH config (~/.ssh/config):

Then in your Harvest config:

Docker Considerations

If your Laravel application runs inside Docker containers, you have several options for SSH key management:

Option 1: SSH Agent Forwarding (Recommended)

Mount your SSH agent socket into the container:

Then run:

Option 2: Mount SSH Keys as Volume

Mount your SSH directory (ensure proper permissions):

Warning: Be careful with this approach and never commit SSH keys to your repository.

Option 3: Run Harvest Outside Docker

Since Harvest only orchestrates SSH commands, you can run it from your host machine:

Option 4: Use Environment Variables for SSH Config

You can set SSH connection details via environment variables:

Then in your config:

How It Works

  1. Harvest reads your deployment configuration from config/harvest.php
  2. It connects to the remote server using the configured SSH command
  3. Each action is executed sequentially on the remote server
  4. If any action fails, deployment stops immediately
  5. Success/failure status is reported back to you

Advanced Features

Variable Placeholders

Use dynamic variables in your deployment actions. Perfect for version tagging, branch selection, or any dynamic value.

Configuration:

Usage:

Sudo Password Handling

Harvest automatically detects when your deployment requires sudo password and prompts you securely.

Auto-detection: Harvest detects sudo -S or sudo -s commands automatically.

Manual configuration: Set needs_sudo_password to true to force password prompt.

Shell Context Switching

Harvest intelligently handles shell switching commands like sudo -u user -s /bin/bash. When detected, all subsequent commands run in that user's context.

Example:

When you run this deployment, Harvest will:

  1. Prompt for sudo password (auto-detected from sudo -S)
  2. Connect via SSH jump host (proxy)
  3. Switch to apache user
  4. Execute remaining commands in apache user context

Configuration Options

Per-Environment Settings

Examples

Simple Deployment

Production with Confirmation

Multiple Servers

License

MIT License. See LICENSE for details.


All versions of harvest with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
illuminate/console Version ^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/support Version ^9.0|^10.0|^11.0|^12.0|^13.0
symfony/process Version ^6.0|^7.0|^8.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package dennenboom/harvest contains the following files

Loading the files please wait ...