Juzt Deploy Plugin Documentation

Juzt Deploy PLugin Docs

Overview

Juzt Deploy is an advanced WordPress plugin that allows you to manage themes and plugins directly from GitHub repositories. It facilitates deployment, updating, and version control of themes and plugins through integration with GitHub API and Git CLI.

Plaintext
Version: 1.9.0

Author: Jesus Uzcategui

License: Site Lisence

Key Features

Core

  • Repository Cloning: Direct installation from GitHub
  • Dual Operation Mode:
    • CLI Mode: Uses native Git for maximum speed
    • API Mode: Works on any hosting via GitHub API
  • Theme Preview: Preview themes without activating them
  • Branch Management: Switch between repository branches
  • Commit Queue System: Asynchronous commit processing
  • Secure OAuth Connection: Authentication via GitHub Apps

Technical

  • Support for public and private repositories
  • Automatic type detection (theme/plugin)
  • Custom names for themes
  • Real-time progress tracking
  • wp-content backup
  • Automatic database migration

System requirements

Minimum

  • WordPress: 5.0 or higher
  • PHP: 7.4 or higher
  • PHP Extensions:
    • cURL
    • JSON
    • ZIP (for backups)
  • Git: 2.0+ installed on server
  • exec() function: Enabled in PHP
  • Write permissions: In themes and plugins directories

Installation

Manually

  1. Download the plugin as ZIP file
  2. Go to Wordpress Admin > Plugins > Add New > Upload plugin
  3. Upload the ZIP file
  4. Activate the Plugin

Initial Setup

Github Connection

  1. Go to Wordpress Admin > Juzt Deploy > Settings tab
  2. Click "Connect with Github App"
  3. Authorize the Application
  4. Connection will be established automatically

Git Mode Configuration

The plugin automatically detects the best operation mode:

  • Auto Detect (Recommended): Automatically chooses between CLI and API
  • Force CLI: Uses native Git (faster, requires Git installed)
  • Force API: Uses GitHub API (works on any hosting)

Permission Verification

Ensure WordPress has write permissions in:

Text
/wp-content/themes/
Text
/wp-content/plugins/

Plugin Usage

Main Dashboard

Access WordPress Admin > Juzt Deploy to view:

  • Statistics: Installed repositories, themes and plugins
  • Repository List: All managed repositories
  • Connection Status: GitHub connection status
  • Current Git Mode: Indicator of current operation mode

Repository Installation

Step by Step:
  1. Select Organization: Choose GitHub user or organization
  2. Select Repository: List of available repositories
  3. Define Type: Specify if theme or plugin
  4. Select Branch: Choose branch to clone
  5. Custom Name (Optional): Customize display name
  6. Confirm and Install
Installation Features:
  • Automatic Names: Generates safe names for folders
  • Type Detection: Automatically identifies themes and plugins
  • Branch Support: Multiple branch handling
  • Private Repos: Support for private repositories via OAuth

Managing Installed Repositories

Available Actions:

Update: Pull latest changes
Switch Branch: Switch between repository branches
Preview (Themes): Preview without activating
Delete: Completely remove repository

Theme Preview:
  • Accessible from "Preview" button in list
  • Opens in new tab with preview bar
  • Doesn't affect active site theme
  • Preview session maintained during navigation

Commit Queue System

Features:
  • Asynchronous Processing: Doesn't block interface
  • Automatic Retries: Up to 3 attempts per commit
  • Error Handling: Detailed failure logging
  • Real-time Status: Progress monitoring
Queue Actions:
  • Retry: Reprocess failed commit
  • Delete: Remove from queue
  • View Logs: Error details

wp-content Backup

Functionality:
  • ZIP Generation: Creates complete wp-content backup
  • Direct Download: Automatic file download
  • Customizable Names: Control over file name
  • Juzt CLI Compatibility: Compatible with local development tool

Technical Structure

Plugin Architecture

Bash
wp-versions-themes-plugins/
├── wp-version-themes-plugins.php      # Main file
├── includes/
│   ├── class-admin-interface.php      # Admin interface
│   ├── class-ajax-handlers.php        # AJAX handling
│   ├── class-repo-manager.php         # Repository manager
│   ├── class-oauth-service.php        # OAuth service
│   ├── class-git-interface.php        # Git interface abstract
│   ├── class-git-cli.php              # CLI implementation
│   ├── class-git-api.php              # API implementation
│   ├── class-github-api.php           # GitHub API client
│   └── class-progress-tracker.php     # Progress tracking
├── assets/
│   ├── css/admin.css                  # Admin styles
│   └── js/admin.js                    # Admin JavaScript
└── languages/                         # Translation files

FAQ

  • Does the plugin work on shared hosting? Yes, in API mode. CLI mode requires Git access.
  • Can private repositories be installed? Yes, through OAuth authentication and GitHub Apps.
  • How does it handle updates? Through git pull in CLI or ZIP download in API.
  • Is the authentication system secure? Yes, uses OAuth with session tokens and refresh tokens.
  • What happens if I change hosting? Paths are dynamically resolved according to environment.
  • Can I use branches with special characters? Yes, the plugin automatically sanitizes names.
  • How does it handle name conflicts? Generates unique names based on repo + branch.
  • Is it multisite compatible? Currently no, but under development.

Future features

Integrations

  • Add Bitbucket and Gitlab Support
  • Wordpress.com integration

Need more help?

Check the technical documentation in the repository or create and ticket for specified help.