All Projects → zeppaman → WpGet-Private-wordpress-plugin-repository

zeppaman / WpGet-Private-wordpress-plugin-repository

Licence: GPL-3.0 license
Wordpress private repository for plugins

Programming Languages

PHP
23972 projects - #3 most used programming language
typescript
32286 projects
HTML
75241 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to WpGet-Private-wordpress-plugin-repository

ioBroker.repositories
Repositories for ioBroker project
Stars: ✭ 55 (+129.17%)
Mutual labels:  repository
Anar
laravel package : artisan commands for create Repository and provider
Stars: ✭ 25 (+4.17%)
Mutual labels:  repository
motionEye app HomeSurveillanceSystem
git repo for motionEye app - Home Surveillance System, available on Google Play Store
Stars: ✭ 22 (-8.33%)
Mutual labels:  repository
wp-phpunit
WordPress core PHPUnit library. [READ ONLY] Versions for new WordPress releases are built daily.
Stars: ✭ 65 (+170.83%)
Mutual labels:  wordpress-development
WordPress-UIkit-Starter-Theme
A WordPress starter theme for developers using the frontend framework UIkit
Stars: ✭ 55 (+129.17%)
Mutual labels:  wordpress-development
repology-webapp
Repology web application
Stars: ✭ 114 (+375%)
Mutual labels:  repository
devliver
Your private self hosted composer repository with user management
Stars: ✭ 50 (+108.33%)
Mutual labels:  repository
SwiftFlowMeter
⚡️ A Swift library for using Hall effect based water flow sensors.
Stars: ✭ 22 (-8.33%)
Mutual labels:  repository
repository-beta
BETA - Home Assistant Community Add-ons
Stars: ✭ 25 (+4.17%)
Mutual labels:  repository
jackrabbit-filevault
Apache Jackrabbit FileVault
Stars: ✭ 37 (+54.17%)
Mutual labels:  repository
laravel-repository
Repository pattern implementation for Laravel
Stars: ✭ 49 (+104.17%)
Mutual labels:  repository
wp-boilerplate-plugin-with-vuejs
This is an example plugin for Wp plugin developer.
Stars: ✭ 26 (+8.33%)
Mutual labels:  wordpress-development
nexus3-docker
ARM Docker image of Sonatype Nexus Repository Manager (NXRM) (Raspberry Pis - armv7l, aarch64)
Stars: ✭ 55 (+129.17%)
Mutual labels:  repository
untheme
A blank WordPress theme for developers.
Stars: ✭ 82 (+241.67%)
Mutual labels:  wordpress-development
earkweb
E-ARK Web is a software for the creation and management of archival information packages, and it supports full-text search for individual files contained in them.
Stars: ✭ 18 (-25%)
Mutual labels:  repository
terraform-module-versions
CLI tool that checks Terraform code for module updates. Single binary, no dependencies. linux, osx, windows. #golang #cli #terraform
Stars: ✭ 143 (+495.83%)
Mutual labels:  repository
local-wordpress-development
WordPress Local Web Development Guide for Mac OS X
Stars: ✭ 17 (-29.17%)
Mutual labels:  wordpress-development
LAB
MIT IT Lab Repository
Stars: ✭ 23 (-4.17%)
Mutual labels:  repository
wpaudit.site
An easy to use checklist to optimize your WordPress website.
Stars: ✭ 24 (+0%)
Mutual labels:  wordpress-development
BetterRepository
Better Enhanced Repository Pattern Implementation in .NET C#
Stars: ✭ 27 (+12.5%)
Mutual labels:  repository

Private Wordpress plugin repository

Wordpress private repository for plugins.

CircleCI GitHub Analitycs - WpGet-Private-wordpress-plugin-repository

Provide updates for plugins WpGet does that, keeping all packages and providing to the wordpress installation. Using token based authentication all process are kept secure.

Easy to setup Setup is easy. Just a copy of the bundle to the server and few steps more. Plugin integration is very easy, just a class to add.

Api oriented All core feature are exposed by API. This will allow you to integrate the delivery process with other tools in the company.

Ui to get control A simple ui show what package are loaded and give you the power.

Low Server Requirements Just a webserver with php and a database. For few data, using SQLite, neither database.

Why we need a private repository

Wordpress is the most used CMS in the world with the most important plugin system. It's easy for a developer to create and publish a new plugin into the public reposiory. But what if i had to create and mantain a private plugin? Im speaking about:

  • a plugin with an high intellectual content,
  • a plugin not ready for the public, maybe focused on some particular business case
  • a custom super-plugin built used to inject custom plugin dependency

There are actually these opportunities into public repository:

  1. Make a free plugin
  2. Make a paied plugin (but placing into main repository it is available to everyone open to buy it)
  3. Intall you plugin manually

Firts two option are the most widely adopted by public plugin sellers, while the third one is a very common practice into agency or companies that have some common plugin reused in many websites.

WpGet came to give a forth opportuninty. It is conceived as a private repository where you can push plugins and allow wordpress installation to update from that source, in addiction to the standard platform. For who comes from other technlogy WpGet is similar to NuGet, Maven or NPM package manager.

Here a siple diagram to explain how WpGet works.

How to upload a package

It can be done using curl, wget, php or any other tool able to send an HttpRequest in multipart/form POST mode.

CURL EXAMPLE

curl  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -F "name=package" \
  -F "version=1.1.1" \
  -F "reposlug=default" \
  -F "file=@/C/temp/wgettest/package_v1.0.0.zip" \
  http://localhost:3000/web/catalog/Package

POWERSHELL EXAMPLE

Invoke-RestMethod  -Header @{"Authorization" = "Bearer <ACCESS_TOKEN>"} -Method Post -InFile $filePath -ContentType "multipart/form-data" -Uri http(s)://www.your-site.wpget/ui/catalog/Package?name=<packageName>&version=X.Y.Z

Any other needs or suggestion? Please open a issue

How to implement a WpGet compliant plugin

This is easy. We have prepared a ready-to-use php updater class that interact with plugin repository to keep plugin updated. This needs only to setup some wordpress settings (repository url and access token). After that your plugin will check for newer version using WpGet and will download them using the private repository. Easy!

For now, just copy and paste this class into your plugin. In next future we are going to deliver this using a composer package and a public wordpress plugin. After copying the file, and before including it in the plugin, some variables must be set. This can be done in the plugin itself or in another file, for example the wp-config.php file. The variable are:

// repository config data
define( 'WPGET_REPO_SLUG','test000' );
define( 'WPGET_PACKAGE_NAME','my-plugin' );
define( 'WPGET_API_URL','http://localhost:3000/web/' );
define( 'WPGET_TOKEN_READ','FnrvNuzwKodEgIqxsBctbFc2SxMncM');

// plugin info
// plugin filename
define( 'WPGET_PLUGIN_FILE', 'plugin-test.php' );
// plugin directory
define( 'WPGET_PLUGIN_DIR', 'plugin-test' );

An example of complete yaml file it can be found inside plugin zip file here

version: 1.2.4 # versione in form major.minor.build
name: name of the package
description: >
 Long description that can contains also html statements
 <h1> but remember to indent all lines with spaces to be YAML compliant! </h1>
changelog: Write here changelogs. This also can be a multiline field...

How to install the server

Requirements

This application requieres PHP 7+ and a database. Any eloquent database is supported, but atm WpGet is tested only over MySQL platfrorm that's also the development one. About webserver, no limitation. Apache or Nginx are equivlent, but must be configured to serve php requests. Php modules needed are just mbstring and the pdo_xxx where xxx is the db driver according with configuration.

Topic Version
PHP 7+
DB MySQL or other eloquent supported database
ext mbstring, pdo_xxx
Web apache, nginx,...

Note for apache users: You may have problem with authentication headers. In case, Please check this resource

Install

A. Setup the server Starting from released bundle:

  1. Download and copy budle somewhere in server
  2. Configure web server to server /web folder. Yes, You do not have to expose the full package, but only this folder.
  3. There isn't any url rewriting needs, so in most cases that's all on server side
  4. Edit /config/settings.php updating connection string. More info here.

B. Configure

  1. Enter http(s)://www.your-site.wpget/ui/
  2. First access will install database structure.
  3. First time you can login using admin\admin credential
  4. Change password under user managment
  • Now you are ready to start using WpGet *

Wiki reference

Usage

Dev: extend and contribute

License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].