PHPackages                             vitorccs/simply-static-github-v2 - 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. vitorccs/simply-static-github-v2

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

vitorccs/simply-static-github-v2
================================

Enhance GitHub deployment of WordPress Simply Static plugin from hours to a few minutes

00Shell

Since Dec 11Pushed 1y ago1 watchersCompare

[ Source](https://github.com/vitorccs/simply-static-github-v2)[ Packagist](https://packagist.org/packages/vitorccs/simply-static-github-v2)[ RSS](/packages/vitorccs-simply-static-github-v2/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Simply Static GitHub v2
-----------------------

[](#simply-static-github-v2)

Enhance GitHub deployment of [WordPress Simply Static plugin](https://wordpress.org/plugins/simply-static/) from hours to a few minutes!

Description
-----------

[](#description)

The deployment method "GitHub Integration" from "Simply Static" is slow and appropriate only for small WordPress sites (e.g: a site with a few thousand of pages may take more than 1 hour to be published!).

The main reasons for the long publishing time are:

1. The plugin publishes the whole site (all files) rather than only the affected/changed files.
2. The plugin uses GitHub API which has a Rate Limit and thus, needs to throttle the amount of files published by hour.

This project is intended to fix this issue by using GitHub CLI to publish the site instead, and thus, taking advantage of its native efficient and fast process.

Requisites
----------

[](#requisites)

- Must have access to Crontab
- WordPress installed and working properly (e.g: `/var/www/html/MY_WORDPRESS`)
- WordPress plugin "Simply Static" installed and "Deployment Method" set as "Local Directory"
- Git CLI installed in the operating system
- A GitHub repository to dump the static files - where the static files will be placed
- A GitHub Personal Access Token with write permission in the repo above
- A Folder with write permission for "Simply Static" dump the static files (e.g: `/var/www/html/MY_RELEASE`)

How to install
--------------

[](#how-to-install)

### Summary

[](#summary)

In short, the whole project consists of 4 files:

- `settings.txt`: change this file per your project needs (e.g: GitHub credentials)
- `includes/functions_include.php`: the include file to be placed in the WordPress (detects when "Simply Static" generates a new release)
- `scripts/set_deploy.sh`: the bash script which will be called by the PHP file above (creates a flag for cron script)
- `scripts/cron_deploy.sh`: the bash script which needs to be in the system crontab (detects the flag from the previous script and starts a GitHub deployment)

### Step 1

[](#step-1)

Place this project folder inside your WordPress (e.g: `/var/www/html/MY_WORDPRESS/simply-static-github-v2`). NOTE: the folder name must be "simply-static-github-v2"

```
cd /var/www/html/MY_WORDPRESS
git clone https://github.com/vitorccs/simply-static-github-v2
cd simply-static-github-v2
```

### Step 2

[](#step-2)

Make a copy of `settings.txt.dist` to `settings.txt` and change the variables:

```
cp settings.txt.dist settings.txt
nano settings.txt
```

### Step 3

[](#step-3)

Add the PHP code below to the end of the `functions.php` file from the current WordPress Theme being used: (e.g: MY\_WORDPRESS/wp-content/themes/MY\_CURRENT\_THEME/functions.php):

```
# Required for "Simply Static" WordPress plugin
require_once(ABSPATH . 'simply-static-github-v2/includes/functions_include.php');
```

### Step 4

[](#step-4)

Open bash scripts files and change variables per project settings:

```
nano scripts/set_deploy.sh
nano scripts/cron_deploy.sh
```

### Step 5

[](#step-5)

Give execution permissions for bash scripts:

```
sudo chmod +x scripts/set_deploy.sh
sudo chmod +x scripts/cron_deploy.sh
```

### Step 6

[](#step-6)

In the WordPress Admin (/wp-admin), set the "Deploy" settings to "Local Directory" and enable "Clear Local Directory"

### Step 7

[](#step-7)

Add the bash script `cron_deploy.sh` to crontab

```
crontab -e
```

Append the following line

```
# checks for publishing tasks every 1 minute
* * * * * /var/www/html/MY_WORDPRESS/simply-static-github-v2/scripts/cron_deploy.sh
```

### Step 8 (optional step)

[](#step-8-optional-step)

You can also manually run the publishing by the following command in the terminal:

```
./var/www/html/MY_WORDPRESS/simply-static-github-v2/scripts/cron_deploy.sh
```

*All done, enjoy it!*

Folder permissions
------------------

[](#folder-permissions)

The release folder must be writable for both the Web Server and the Crontab user. So the recommended permissions is shown below in case your Web Server is Apache.

Note: the user session needs to be restarted in order to apply the permissions

#### For Debian/Ubuntu distros

[](#for-debianubuntu-distros)

```
sudo chown apache:apache /var/www/html/MY_RELEASE -R
usermod -a -G apache MY_USER
sudo chmod g+w /var/www/html/MY_RELEASE -R
```

#### For CentOS/Fedora/AMI distros

[](#for-centosfedoraami-distros)

```
sudo chown www-data:www-data /var/www/html/MY_RELEASE -R
usermod -a -G www-data MY_USER
sudo chmod g+w /var/www/html/MY_RELEASE -R
```

###  Health Score

14

—

LowBetter than 2% of packages

Maintenance31

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity16

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/2d5d2e771a97ac9dc5a1a1c8a18ec3cf97b5ea7872bfbc0fd62b060545cf6dfa?d=identicon)[vitorccs](/maintainers/vitorccs)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/vitorccs-simply-static-github-v2/health.svg)

```
[![Health](https://phpackages.com/badges/vitorccs-simply-static-github-v2/health.svg)](https://phpackages.com/packages/vitorccs-simply-static-github-v2)
```

###  Alternatives

[deployer/deployer

Deployment Tool

11.1k25.4M207](/packages/deployer-deployer)[appwrite/server-ce

End to end backend server for frontend and mobile apps.

55.3k84.2k](/packages/appwrite-server-ce)[pragmarx/health

Laravel Server &amp; App Health Monitor and Notifier

2.0k1.0M2](/packages/pragmarx-health)[felixfbecker/language-server-protocol

PHP classes for the Language Server Protocol

22476.7M6](/packages/felixfbecker-language-server-protocol)[heroku/heroku-buildpack-php

Toolkit for starting a PHP application locally, with or without foreman, using the same config for PHP and Apache2/Nginx as on Heroku

8161.3M10](/packages/heroku-heroku-buildpack-php)[tiamo/phpas2

PHPAS2 is a php-based implementation of the EDIINT AS2 standard

4674.7k](/packages/tiamo-phpas2)

PHPackages © 2026

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