/v-wordpress-plugin-updater

The v-wordpress-plugin-updater project is designed to streamline the management and updating of WordPress plugins and themes through a robust API and automated processes. It offers a comprehensive solution for secure plugin and theme updates, including user authentication, IP blacklisting, and detailed logging.

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

project-logo

V-WORDPRESS-PLUGIN-UPDATER

Effortless Updates, Enhanced Security, Seamless WordPress Management

Developed with the software and tools below.

PHP JSON


Table of Contents

๐Ÿ“ Overview

The v-wordpress-plugin-updater project is designed to streamline the management and updating of WordPress plugins and themes through a robust API and automated processes. It offers a comprehensive solution for secure plugin and theme updates, including user authentication, IP blacklisting, and detailed logging. The project provides an admin interface for managing updates, handling uploads, and monitoring logs, ensuring seamless operation across different environments. With support for both single and multisite installations, this project enhances WordPress site maintenance efficiency by automating update checks and installations, significantly reducing manual intervention.


๐Ÿงฉ Features

Feature Description
โš™๏ธ Architecture The project employs a modular architecture, dividing functionality into distinct components such as update APIs, configuration management, and admin interfaces. This ensures maintainability and scalability.
๐Ÿ”ฉ Code Quality The project adheres to coding standards, with clear organization of files and comprehensive inline comments. Security measures like input sanitization and IP blacklisting are integrated throughout the codebase.
๐Ÿ“„ Documentation Includes configuration and setup guides, inline comments, and function documentation. The repository seems well-organized, but additional user-facing documentation could enhance accessibility.
๐Ÿ”Œ Integrations The project integrates with WordPress installations, leveraging external APIs for plugin and theme updates. Dependencies include authentication, WAF, and configuration libraries.
๐Ÿงฉ Modularity The codebase exhibits high modularity, with distinct folders for configuration, helpers, forms, and public access points. Each module handles specific functionality, promoting reusability and ease of maintenance.
๐Ÿงช Testing The documentation does not explicitly mention testing frameworks or methodologies. Incorporating unit tests and integration tests could further enhance code reliability and stability.
โšก๏ธ Performance The project is designed for efficiency, with secure download endpoints and optimized URL routing via .htaccess. However, explicit performance metrics and profiling data are not provided.
๐Ÿ›ก๏ธ Security Implements robust security measures including IP blacklisting, authentication libraries, and input validation. Admin interface security is enhanced through session management and a web application firewall (WAF).
๐Ÿ“ฆ Dependencies The project relies on standard libraries like authentication, WAF, configuration management, IP blacklisting, and Dropzone for dynamic file handling.
๐Ÿš€ Scalability Designed to handle increasing traffic with modular components for updates and management. However, explicit load testing data to back scalability claims is not available.

๐Ÿ—‚๏ธ Repository Structure

โ””โ”€โ”€ v-wordpress-plugin-updater/
    โ”œโ”€โ”€ LICENSE
    โ”œโ”€โ”€ README.md
    โ”œโ”€โ”€ mu-plugin
    โ”‚   โ”œโ”€โ”€ von-sys-plugin-updater-mu.php
    โ”‚   โ”œโ”€โ”€ von-sys-plugin-updater.php
    โ”‚   โ”œโ”€โ”€ von-sys-theme-updater-mu.php
    โ”‚   โ””โ”€โ”€ von-sys-theme-updater.php
    โ”œโ”€โ”€ png_20230308_211110_0000.png
    โ”œโ”€โ”€ screenshot.jpg
    โ””โ”€โ”€ update-api
        โ”œโ”€โ”€ HOSTS
        โ”œโ”€โ”€ app
        โ”œโ”€โ”€ config.php
        โ”œโ”€โ”€ lib
        โ”œโ”€โ”€ public
        โ””โ”€โ”€ storage

๐Ÿ“ฆ Modules

update-api
File Summary
HOSTS Define the configuration details and settings for server hosts involved in the update process, facilitating seamless communication and coordination for updating WordPress plugins and themes. This enhances the repositorys overall capability to manage updates effectively across different environments.
config.php Configuration file for defining essential constants crucial for the plugin and theme update management system. Establishes authentication credentials, sets directory paths for plugins, themes, blacklists, and logs, thereby ensuring the smooth operation and organization of the update API within the repositorys architecture.
update-api.public
File Summary
index.php Serves as the main entry point for the Update APIs web interface, providing a dashboard for managing WordPress hosts, plugins, themes, and viewing logs. Initializes sessions and includes necessary configurations and libraries, facilitating an admin interface with essential resources for a responsive and interactive user experience.
.htaccess Enhances URL routing by managing redirects and internal rewrites, ensuring clear and organized access to key sections like home, plupdate, thupdate, and logs. This optimization streamlines external requests and maintains seamless internal navigation within the update-api component of the repository.
login.php Provides an admin login interface for the Update API, enhancing security and access control. Integrates with configuration, authentication, and web application firewall libraries to facilitate validation and protection mechanisms within the broader WordPress plugin update ecosystem. Presents a user-friendly login form to manage API updates effectively.
robots.txt Regulate web crawler access to the update-api directory with a specified delay, optimizing server load and ensuring the smooth operation of the plugin updater functionality within the repositorys architecture.
update-api.public.themes
File Summary
api.php Serve as an endpoint for managing theme updates, verifying domain and key authenticity, and delivering updated theme versions to authorized users. Implements IP blacklisting and logs activity to enhance security and traceability, ensuring only authenticated requests can access and download theme updates.
download.php Provides a secure endpoint for downloading theme updates by validating user credentials and domain against an authorized list, ensuring only legitimate users can access the requested files while blocking blacklisted IPs.
update-api.public.plugins
File Summary
api.php Provides an API for managing WordPress plugin updates, verifying access through domain and key checks, validating IP addresses, and delivering new plugin versions when available. Enhances security with IP blacklisting and logs both successful updates and unauthorized access attempts.
download.php Facilitates secure plugin downloads by validating user credentials against a predefined list. Prevents unauthorized access and ensures only authorized users can download specified files. Integrates security measures like input sanitization and IP blacklisting to safeguard the update process within the WordPress plugin architecture.
update-api.storage
File Summary
BLACKLIST.json Maintains a list of blacklisted plugins or themes, preventing them from receiving updates via the update API. This ensures security and stability by blocking disallowed or potentially harmful software components within the WordPress plugin and theme ecosystem.
update-api.app.forms
File Summary
home-forms.php Manage entries in the HOSTS file by adding, updating, or deleting domains and keys based on POST requests, enhancing the functionality of the Update API within the WordPress plugin ecosystem. This integration ensures seamless updating and administration of plugin and theme assets.
thupdate-forms.php Facilitate WordPress theme updates by enabling file uploads, deletions, and downloads. Integrates seamlessly with the broader update-api module to ensure easy management of theme files, supporting the repositorys functionality for maintaining up-to-date WordPress themes within a multi-functional plugin architecture.
plupdate-forms.php Enables management of WordPress plugins via an update API, offering functionality for uploading, deleting, and downloading plugin files. Supports validation of file extensions and safeguards against errors, ensuring smooth file handling and operational integrity within the broader repository architecture.
update-api.app.helpers
File Summary
plupdate-helper.php Generate an HTML table displaying available WordPress plugin ZIP files, allowing users to delete plugins via a form submission. Divide the plugins list into two columns for better readability and user experience within the Update API section of the repository.
home-helper.php Generate and manage an HTML table displaying domain and key entries from the HOSTS file, supporting update and delete actions. Enhance the user interface of the WordPress Update API by organizing entries into columns for ease of use and better readability.
thupdate-helper.php Highlighting the themes available for updates and providing functionality to delete them, the thupdate-helper.php file within the update-api/app/helpers directory enhances the WordPress Update APIs capability to manage and display themes dynamically via HTML tables, seamlessly integrating with the parent plugins update architecture.
logs-helper.php Processes log files to group log entries by domain name and generates formatted HTML output displaying the status of each entry, aiding in simplified log analysis and monitoring for the WordPress Update API system. Integrates within the broader architecture to offer transparency and error tracking for plugin and theme updates.
update-api.app.pages
File Summary
plupdate.php Facilitate plugin uploads and manage update statuses through a user interface integrated with Dropzone for drag-and-drop functionality. Streamline plugin management by displaying existing plugins and handling file uploads and errors dynamically, contributing to the overall flexibility and usability of the plugin updater system within the repositorys architecture.
thupdate.php Facilitates the management and uploading of WordPress themes, providing a user-friendly interface for theme uploads, displaying a table of available themes, and offering real-time upload status feedback through Dropzone integration for enhanced user experience.
logs.php Displays plugin and theme logs on the WordPress Update API interface, facilitating monitoring and troubleshooting within the updater architecture. Integrates dynamic content, enhancing the user experience by providing real-time log outputs for both plugins and themes.
home.php Facilitates the management of allowed hosts for the WordPress Update API by displaying a current list and providing a form to add new entries. Integrates seamlessly into the update-api section, enhancing control over authorized domains within the repositorys architecture.
update-api.lib
File Summary
auth-lib.php Facilitates user authentication within the WordPress Update API by managing login and logout operations, handling session security, and implementing measures against failed login attempts to enhance system security. Essential for safeguarding access to the update APIs functionalities and integrating seamlessly with the repositorys broader architecture.
waf-lib.php Sanitizes and validates input data, checks for disallowed characters and patterns, updates login attempt records, and manages IP blacklists for security, contributing to the broader security framework of the Update API within the v-wordpress-plugin-updater repository.
load-lib.php Serve as a security and routing mechanism, ensuring only authenticated users can access specific pages within the WordPress update API. It checks for blacklisted IPs, redirects unauthenticated users to the login page, and dynamically loads page-specific helper, form, and main files if they exist.
mu-plugin
File Summary
von-sys-theme-updater.php Automates the daily update checks for WordPress themes by scheduling events, retrieving update details from a specified API, downloading, and installing theme updates seamlessly, ensuring themes remain current. Integrates error logging to handle update failures and provides feedback on the update status for each theme.
von-sys-plugin-updater.php Facilitates automated plugin updates in a WordPress environment by scheduling daily checks and downloading new versions if available, ensuring plugins remain current and secure with minimal manual intervention. Integrates with the Vontainment API to verify and obtain updates, enhancing overall site maintenance efficiency.
von-sys-plugin-updater-mu.php WP Plugin Updater Multisite automates daily checks and updates for WordPress plugins within a multisite environment, ensuring all plugins remain current by interacting with the Vontainment API to fetch updates, download, and install them seamlessly.
von-sys-theme-updater-mu.php Automates daily WordPress theme updates across multisite installations. Handles scheduled update checks, verifies theme versions against Vontainment API, and manages theme package downloads and installations. Logs outcomes and errors to ensure smooth, repeated theme maintenance. Integrates seamlessly into the existing plugin updater framework.

๐Ÿš€ Getting Started

System Requirements:

  • PHP: version x.y.z

โš™๏ธ Installation

From source

  1. Clone the v-wordpress-plugin-updater repository:
$ git clone ../v-wordpress-plugin-updater
  1. Change to the project directory:
$ cd v-wordpress-plugin-updater
  1. Install the dependencies:
$ composer install

๐Ÿค– Usage

From source

Run v-wordpress-plugin-updater using the command below:

$ php main.php

๐Ÿงช Tests

Run the test suite using the command below:

$ vendor/bin/phpunit

๐Ÿ›  Project Roadmap

  • โ–บ INSERT-TASK-1
  • โ–บ INSERT-TASK-2
  • โ–บ ...

๐Ÿค Contributing

Contributions are welcome! Here are several ways you can contribute:

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your local account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone ../v-wordpress-plugin-updater
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to local: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


๐ŸŽ— License

This project is protected under the SELECT-A-LICENSE License. For more details, refer to the LICENSE file.


๐Ÿ”— Acknowledgments

  • List any resources, contributors, inspiration, etc. here.

Return