PHPackages                             thecodeholic/laravel-hostinger-deploy - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. thecodeholic/laravel-hostinger-deploy

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

thecodeholic/laravel-hostinger-deploy
=====================================

Laravel package for automated Hostinger deployment with GitHub Actions support

0.5.0(5mo ago)565.3k↓16.7%17[1 issues](https://github.com/thecodeholic/laravel-hostinger-deploy/issues)MITPHPPHP ^8.2

Since Oct 30Pushed 5mo ago1 watchersCompare

[ Source](https://github.com/thecodeholic/laravel-hostinger-deploy)[ Packagist](https://packagist.org/packages/thecodeholic/laravel-hostinger-deploy)[ RSS](/packages/thecodeholic-laravel-hostinger-deploy/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (6)Versions (6)Used By (0)

Laravel Hostinger Deploy
========================

[](#laravel-hostinger-deploy)

Deploy your Laravel application to Hostinger shared hosting with automated GitHub Actions support.

Installation
------------

[](#installation)

Install the package via Composer:

```
composer require thecodeholic/laravel-hostinger-deploy:^0.5 --dev
```

Or install the latest version:

```
composer require thecodeholic/laravel-hostinger-deploy --dev
```

> **Note:** This package should be installed as a development dependency (`--dev`) since it's only needed during deployment, not in production.

Required Environment Variables
------------------------------

[](#required-environment-variables)

Before using any deployment commands, add these to your `.env` file:

```
HOSTINGER_SSH_HOST=your-server-ip
HOSTINGER_SSH_USERNAME=your-username
HOSTINGER_SSH_PORT=22
HOSTINGER_SITE_DIR=your-website-folder
GITHUB_API_TOKEN=your-github-token
```

### SSH Authentication Setup

[](#ssh-authentication-setup)

> **⚠️ Important:** It is **highly recommended** to set up SSH public key authentication on your Hostinger server instead of using password authentication. Public key authentication is more secure and eliminates the need to enter passwords during deployments.
>
> **To set up SSH public key authentication:**
>
> 1. Generate an SSH key pair on your local machine: `ssh-keygen -t rsa -b 4096`
> 2. Copy your public key to the server: `ssh-copy-id username@your-server-ip`
> 3. Test the connection: `ssh username@your-server-ip` (should connect without password prompt)
>
> Once configured, the deployment commands will use your SSH key automatically, making deployments seamless and secure.

Quick Start (All-in-One Command)
--------------------------------

[](#quick-start-all-in-one-command)

The easiest way to deploy and set up automated deployment:

```
php artisan hostinger:deploy-and-setup-cicd
```

**What this command does:**

1. Deploys your Laravel application to Hostinger
2. Sets up SSH keys on the server
3. Automatically adds deploy key to GitHub repository via API
4. Publishes GitHub Actions workflow file locally (`.github/workflows/hostinger-deploy.yml`)
5. Configures GitHub secrets and variables via API

**Command Options:**

- `--fresh` - Delete existing files and clone fresh repository
- `--site-dir=` - Override site directory from config
- `--token=` - GitHub Personal Access Token (overrides GITHUB\_API\_TOKEN from .env)
- `--branch=` - Branch to deploy (default: auto-detect)
- `--php-version=` - PHP version for workflow (default: 8.3)

Individual Commands
-------------------

[](#individual-commands)

### 1. Manual Deployment Only

[](#1-manual-deployment-only)

```
php artisan hostinger:deploy
```

**What it does:** Deploys your Laravel application to Hostinger server (composer install, migrations, storage link, etc.)

**Command Options:**

- `--fresh` - Delete existing files and clone fresh repository
- `--site-dir=` - Override site directory from config
- `--token=` - GitHub Personal Access Token (optional, enables automatic deploy key management)
- `--show-errors` - Display detailed error messages with exit codes and command output

> **Note:** If `GITHUB_API_TOKEN` is provided (via `.env` or `--token` option), the command will automatically add deploy keys to your GitHub repository. Otherwise, you'll be prompted to add the deploy key manually.

> **Incremental Deployments:** The command is safe to run multiple times. It uses `git pull` for incremental updates and preserves gitignored files (like `.env`, `storage/`, etc.). Setup commands (like key generation, storage link creation) only run if needed, preventing overwrites of existing configuration.

---

### 2. Create GitHub Actions Workflow File

[](#2-create-github-actions-workflow-file)

```
php artisan hostinger:publish-workflow
```

**What it does:** Creates `.github/workflows/hostinger-deploy.yml` file locally

**Command Options:**

- `--branch=` - Branch to trigger deployment (default: auto-detect)
- `--php-version=` - PHP version for workflow (default: 8.3)

---

### 3. Setup Automated Deployment (Via GitHub API)

[](#3-setup-automated-deployment-via-github-api)

```
php artisan hostinger:setup-cicd
```

**What it does:** Publishes GitHub Actions workflow file locally and creates secrets automatically via GitHub API, and automatically adds deploy keys to your repository

**Command Options:**

- `--token=` - GitHub Personal Access Token (overrides GITHUB\_API\_TOKEN from .env)
- `--branch=` - Branch to deploy (default: auto-detect)
- `--php-version=` - PHP version for workflow (default: 8.3)

**GitHub Personal Access Token Permissions:**Your GitHub Personal Access Token needs the following permissions:

- **Administration** → Read and write (for managing deploy keys for the repository)
- **Metadata** → Read-only (automatically selected, required for API access)

**Note:** The workflow file is published locally to `.github/workflows/hostinger-deploy.yml`. You'll need to review, commit, and push it manually. The command only uses the API to create secrets and deploy keys.

Environment Variables Summary
-----------------------------

[](#environment-variables-summary)

VariableRequired ForDescription`HOSTINGER_SSH_HOST`All commandsHostinger server IP address`HOSTINGER_SSH_USERNAME`All commandsHostinger SSH username`HOSTINGER_SSH_PORT`All commandsSSH port (default: 22)`HOSTINGER_SITE_DIR`All commandsWebsite folder name`GITHUB_API_TOKEN`Automated setupGitHub Personal Access Token (requires Administration permission for deploy keys)Requirements
------------

[](#requirements)

- PHP ^8.2
- Laravel ^11.0|^12.0
- SSH access to Hostinger server
- Git repository (GitHub recommended)
- **PHP `exec()` function must be enabled** (required for executing SSH commands and process management)

> **Important:** This package requires the PHP `exec()` function to be available and enabled on your system. The `exec()` function is used for executing SSH commands and managing deployment processes. If `exec()` is disabled in your PHP configuration, deployment operations will fail.

License
-------

[](#license)

MIT

###  Health Score

44

—

FairBetter than 92% of packages

Maintenance71

Regular maintenance activity

Popularity40

Moderate usage in the ecosystem

Community11

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Total

5

Last Release

161d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/47417401?v=4)[Zura Sekhniashvili](/maintainers/arboshiki)[@arboshiki](https://github.com/arboshiki)

---

Top Contributors

[![thecodeholic](https://avatars.githubusercontent.com/u/4627922?v=4)](https://github.com/thecodeholic "thecodeholic (22 commits)")

---

Tags

laravelsshdeploymentGithub Actionshostinger

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/thecodeholic-laravel-hostinger-deploy/health.svg)

```
[![Health](https://phpackages.com/badges/thecodeholic-laravel-hostinger-deploy/health.svg)](https://phpackages.com/packages/thecodeholic-laravel-hostinger-deploy)
```

###  Alternatives

[laravel/jetstream

Tailwind scaffolding for the Laravel framework.

4.1k19.8M136](/packages/laravel-jetstream)[laravel-zero/framework

The Laravel Zero Framework.

3371.4M369](/packages/laravel-zero-framework)[timokoerber/laravel-one-time-operations

Run operations once after deployment - just like you do it with migrations!

6481.7M11](/packages/timokoerber-laravel-one-time-operations)[fadion/maneuver

Easily deploy Laravel projects via FTP or SFTP, using Git for versioning.

1729.1k](/packages/fadion-maneuver)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
