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)
Recommended for CLI Mode
- Git: 2.0+ installed on server
- exec() function: Enabled in PHP
- Write permissions: In themes and plugins directories
Installation
Manually
- Download the plugin as ZIP file
- Go to
Wordpress Admin > Plugins > Add New > Upload plugin - Upload the ZIP file
- Activate the Plugin
Initial Setup
Github Connection
- Go to
Wordpress Admin > Juzt Deploy > Settings tab - Click "Connect with Github App"
- Authorize the Application
- 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:
- Select Organization: Choose GitHub user or organization
- Select Repository: List of available repositories
- Define Type: Specify if theme or plugin
- Select Branch: Choose branch to clone
- Custom Name (Optional): Customize display name
- 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.