All Projects → ploi-deploy → ploi-php-sdk

ploi-deploy / ploi-php-sdk

Licence: MIT License
Ploi's PHP SDK API wrapper

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to ploi-php-sdk

ploi-deploy-action
Deploy your application to Ploi with Github actions
Stars: ✭ 25 (-44.44%)
Mutual labels:  ploi
laravel-online-migrator
Apply Laravel's database migrations with minimal disruptions using tools like Percona Online Schema Change
Stars: ✭ 43 (-4.44%)
Mutual labels:  laravel-framework
laravel-docker-k8s
Laravel using Docker and Kubernetes
Stars: ✭ 60 (+33.33%)
Mutual labels:  laravel-framework
jikkyo-api
ニコニコ実況 過去ログ API(非公式)
Stars: ✭ 17 (-62.22%)
Mutual labels:  laravel-framework
mammaskitchen
A Simple Restaurant Management
Stars: ✭ 72 (+60%)
Mutual labels:  laravel-framework
Transliterate
Транслитерация для Laravel
Stars: ✭ 48 (+6.67%)
Mutual labels:  laravel-framework
LaraShop
Simple PHP shop CMS based on Laravel 5.1
Stars: ✭ 73 (+62.22%)
Mutual labels:  laravel-framework
sitemap
A simple sitemap generator for Laravel Framework.
Stars: ✭ 32 (-28.89%)
Mutual labels:  laravel-framework
email-checker
Provides email verification on the go.
Stars: ✭ 116 (+157.78%)
Mutual labels:  laravel-framework
Base62
PHP Base62 encoder and decoder for integers and big integers with Laravel 5 support.
Stars: ✭ 16 (-64.44%)
Mutual labels:  laravel-framework
artisan-shortcuts
🍰 Register shortcuts to execute multiple artisan commands
Stars: ✭ 56 (+24.44%)
Mutual labels:  laravel-framework
crater
Open Source Invoicing Solution for Individuals & Businesses
Stars: ✭ 5,938 (+13095.56%)
Mutual labels:  laravel-framework
legacy-rp-admin-v3
💻 A web interface to help with administrative duties at the FiveM server: Legacy Roleplay. Currently compatible with the OP-FW framework.
Stars: ✭ 29 (-35.56%)
Mutual labels:  laravel-framework
laravel-qr-code-login
Today I will be showing you how to implement Laravel login with QRcode in a website. You can use my Laravel Starter so you can start the project in one minute .
Stars: ✭ 72 (+60%)
Mutual labels:  laravel-framework
csv
No description or website provided.
Stars: ✭ 47 (+4.44%)
Mutual labels:  laravel-framework
clubi
A group-oriented social media platform written in Laravel and Vue
Stars: ✭ 29 (-35.56%)
Mutual labels:  laravel-framework
Employee-management-system-in-laravel
Employee management system.This is a project based on laravel framework.You can fork it and can download or clone it.
Stars: ✭ 96 (+113.33%)
Mutual labels:  laravel-framework
pretty-routes
Display your Laravel routes in the console, but make it pretty. 😎
Stars: ✭ 627 (+1293.33%)
Mutual labels:  laravel-framework
laravel-first-steps
Sample Laravel project which will help you create the first pipeline
Stars: ✭ 27 (-40%)
Mutual labels:  laravel-framework
LaraSible
A complete ansible playbook for create a hosting envorinment with Nginx, PHP-FPM, Redis and MariaDB for Laravel Framework on Linux
Stars: ✭ 15 (-66.67%)
Mutual labels:  laravel-framework

Ploi PHP SDK 🚀

The future is now - so stop the hassle, you’re running behind. Quick and easy site deployment with Ploi. Awesome features for awesome developers. Check it out at https://ploi.io

This SDK is meant for PHP applications to be able to communicate with our API. You can find our documentation at https://developers.ploi.io

Installation

composer require ploi/ploi-php-sdk

Usage

First you need to call a new Ploi instance

$ploi = new \Ploi\Ploi($apiToken);
// or
$ploi = new \Ploi\Ploi();
$ploi->setApiToken($token);

Responses

When calling a resource, it will return a Ploi\Http\Response object containing decoded JSON as well as the original response from the Guzzle client.

You can also only retrieve the JSON, use the getJson() method to only get the JSON back:

$ploi->user()->get()->getJson()

However, when you want to only get the data, use the getData() method:

$ploi->user()->get()->getData()

Resources

Resources are what you call to access a feature or function.

You can get all the resources or get a specific one by its ID, for example with servers:

// List servers
$ploi->servers()->get();

// Get a specific server with ID 123
$ploi->servers(123)->get();
// or
$ploi->servers()->get(123);

Some actions will require the resource's ID to be set before they can be used:

// Throws Ploi\Exceptions\Resource\RequiresId
$ploi->servers()->delete();

// Will attempt to delete server by ID
$ploi->servers()->delete(123);
// or
$ploi->servers(123)->delete();

Servers

You create a new server by:

$ploi->servers()->create(
    $serverName,
    $providerId,
    $region,
    $plan,
    $options = []
);

Or you can create a custom server with a provider not set up in Ploi

$ploi->servers()->createCustom($ip, $options);

After running this request, you will have to add the public key of the Ploi worker to your server. This is included in the response with a 1-line command within the ssh_command key. Once this is done, you can trigger the URL from the response with the start_installation_url key or by passing in the server ID.

$ploi->servers()->startInstallation($installationUrl);
// or
$ploi->servers(123)->startInstallation();

Other methods for servers:

// Get server list
$ploi->servers()->get();

// Paginate servers
$ploi->servers()->perPage($amountPerPage)->page($pageNumber);
// or
$ploi->servers()->page($pageNumber, $amountPerPage);

// Get server
$ploi->servers(123)->get();

// Delete server
$ploi->servers(123)->delete();

// Get server logs
$ploi->servers(123)->logs();

// Restart server
$ploi->servers(123)->restart();

// Get server monitoring
$ploi->servers(123)->monitoring();

// Get PHP versions installed on server
$ploi->servers(123)->phpVersions();

// Enable opcache
$ploi->servers(123)->opcache()->enable();

// Disable opcache
$ploi->servers(123)->opcache()->disable();

// Refresh opcache
$ploi->servers(123)->opcache()->refresh();

Sites

Available methods for sites:

//Create site
$ploi->servers(123)->sites()->create(
    $domain,
    $webDirectory = '/public',
    $projectDirectory = '/',
    $systemUser = 'ploi',
    $systemUserPassword = null,
    $webserverTemplate = null,
    $projectType = null
);

// List sites
$ploi->servers(123)->sites()->get();

// Paginate sites
$ploi->servers(123)->sites()->perPage(15)->page(1);

// Get site
$ploi->servers(123)->sites(123)->get();

// Delete site
$ploi->servers(123)->sites(123)->delete();

// Update site
$ploi->servers(123)->sites(123)->update($rootDomain);

// Get site logs
$ploi->servers(123)->sites(123)->logs();

// Set PHP version for site to use
$ploi->servers(123)->sites(123)->phpVersion($phpVersion);

// Enable test domain on site
$ploi->servers(123)->sites(123)->enableTestDomain();
// Disable test domain on site
$ploi->servers(123)->sites(123)->disableTestDomain();
// Get test domain details for site
$ploi->servers(123)->sites(123)->testDomain();

// Suspend site
$ploi->servers(123)->sites(123)->suspend($id = null, $reason = null);
// Resume site
$ploi->servers(123)->sites(123)->resume();

Databases

Available methods for databases:

// Create database
$ploi->servers(123)->databases()->create(
    $databaseName,
    $databaseUser,
    $databaseUserPassword,
    $description = null,
    $siteId = null
);

// List databases
$ploi->servers(123)->databases()->get();

// Paginate databases
$ploi->servers(123)->databases()->perPage($amountPerPage)->page($pageNumber);

// Get database
$ploi->servers(123)->databases(123)->get();

// Delete database
$ploi->servers(123)->databases(123)->delete();

// Acknowledge database
$ploi->servers(123)->databases()->acknowledge($databaseName);

// Forget database
$ploi->servers(123)->databases(123)->forget();

// Duplicate database
$ploi->servers(123)->databases(123)->duplicate($name, $user = null, $password = null);

Database Backups

Available methods for database backups:

// Create database backup
$ploi->servers(123)->databases(123)->backups()->create(
    $interval,
    $type,
    $table_exclusions = null,
    $locations = null,
    $path = null
);

// List database backups
$ploi->servers(123)->databases(123)->backups()->get();

// Paginate database backups
$ploi->servers(123)->databases(123)->backups()->perPage($amountPerPage)->page($pageNumber);

// Get database backup
$ploi->servers(123)->databases(123)->backups(123)->get();

// Delete database backup
$ploi->servers(123)->databases(123)->backups(123)->delete();

// Toggle database backup
$ploi->servers(123)->databases(123)->backups(123)->toggle();

Database Users

Available methods for database users:

// Create database user
$ploi->servers(123)->databases(123)->users()->create(
    $user,
    $password,
);

// List database users
$ploi->servers(123)->databases(123)->users()->get();

// Paginate database users
$ploi->servers(123)->databases(123)->users()->perPage($amountPerPage)->page($pageNumber);

// Get database user
$ploi->servers(123)->databases(123)->users(123)->get();

// Delete database user
$ploi->servers(123)->databases(123)->users(123)->delete();

Cronjobs

Available methods for cronjobs:

// Create cronjob
$ploi->servers(123)->cronjobs()->create(
    $command,
    $frequency,
    $user = 'ploi'
);

// List cronjobs
$ploi->servers(123)->cronjobs()->get();

// Paginate cronjobs
$ploi->servers(123)->cronjobs()->perPage($amountPerPage)->page($pageNumber);

// Get cronjob
$ploi->servers(123)->cronjobs(123)->get();

// Delete cronjob
$ploi->servers(123)->cronjobs(123)->delete();

Network Rules

Available methods for network rules:

// Create network rule
$ploi->servers(123)->networkRules()->create(
    $name,
    $port,
    $type = 'tcp',
    $fromIpAddress = null,
    $ruleType = 'allow'
);

// List network rules
$ploi->servers(123)->networkRules()->get();

// Paginate network rules
$ploi->servers(123)->networkRules()->perPage($amountPerPage)->page($pageNumber);

// Get network rule
$ploi->servers(123)->networkRules(123)->get();

// Delete network rule
$ploi->servers(123)->networkRules(123)->delete();

Queues

Available methods for queues:

// Create queue
$ploi->servers(123)->sites(123)->queues()->create(
    $connection = 'database',
    $queue = 'default',
    $maximumSeconds = 60,
    $sleep = 30,
    $processes = 1,
    $maximumTries = 1
);

// List queues
$ploi->servers(123)->sites(123)->queues()->get();

// Paginate queues
$ploi->servers(123)->sites(123)->queues()->perPage($amountPerPage)->page($pageNumber);

// Get queue
$ploi->servers(123)->sites(123)->queues(123)->get();

// Delete queue
$ploi->servers(123)->sites(123)->queues(123)->delete();

// Pause queue
$ploi->servers(123)->sites(123)->queues(123)->pause();

// Restart queue
$ploi->servers(123)->sites(123)->queues(123)->restart();

Certificates

Available methods for certificates:

// Create certificate
$ploi->servers(123)->sites(123)->certificates()->create(
    $certificate,
    $type = 'letsencrypt'
);

// List certificates
$ploi->servers(123)->sites(123)->certificates()->get();

// Paginate certificates
$ploi->servers(123)->sites(123)->certificates()->perPage($amountPerPage)->page($pageNumber);

// Get certificate
$ploi->servers(123)->sites(123)->certificates(123)->get();

// Delete certificate
$ploi->servers(123)->sites(123)->certificates(123)->delete();

Auth Users

Available methods for auth users:

// Create auth user
$ploi->servers(123)->sites(123)->authUser()->create(
    $name,
    $password
);

// List auth users
$ploi->servers(123)->sites(123)->authUser()->get();

// Paginate auth users
$ploi->servers(123)->sites(123)->authUser()->perPage($amountPerPage)->page($pageNumber);

// Get auth user
$ploi->servers(123)->sites(123)->authUser(123)->get();

// Delete auth user
$ploi->servers(123)->sites(123)->authUser(123)->delete();

Deployments

Available methods for deployments

// Get default deploy script
$ploi->servers(123)->sites(123)->deployment()->deployScript();

// Update default deploy script
$ploi->servers(123)->sites(123)->deployment()->updateDeployScript($script = '');

// Deploy a site
$ploi->servers(123)->sites(123)->deployment()->deploy();

// Deploy a staging site to production
$ploi->servers(123)->sites(123)->deployment()->deployToProduction();

Environments

Available methods for environments

// Get .env for site
$ploi->servers(123)->sites(123)->environment()->get();

// Update .env for site
$ploi->servers(123)->sites(123)->environment()->update($content);

Repositories

Available methods for repositories:

// Install repository
$ploi->servers(123)->sites(123)->repository()->install(
    $provider,
    $branch,
    $name
);

// Get repository
$ploi->servers(123)->sites(123)->repository()->get();

// Delete repository
$ploi->servers(123)->sites(123)->repository()->delete();

// Toggle quick deploy on repository
$ploi->servers(123)->sites(123)->repository()->toggleQuickDeploy();

Redirects

// Create redirect
$ploi->servers(123)->sites(123)->redirects()->create(
    $redirectFrom,
    $redirectTo,
    $type = 'redirect'
);

// List redirects
$ploi->servers(123)->sites(123)->redirects()->get();

// Paginate redirects
$ploi->servers(123)->sites(123)->redirects()->perPage($amountPerPage)->page($pageNumber);

// Get redirect
$ploi->servers(123)->sites(123)->redirects(123)->get();

// Delete redirect
$ploi->servers(123)->sites(123)->redirects(123)->delete();

Aliases

// Create aliases
$ploi->servers(123)->sites(123)->aliases()->create($aliases);

// List aliases
$ploi->servers(123)->sites(123)->aliases()->get();

// Delete alias
$ploi->servers(123)->sites(123)->aliases()->delete($alias);

FastCGI Cache

// Enable FastCGI cache
$ploi->servers(123)->sites(123)->fastCgi()->enable();

// Disable FastCGI cache
$ploi->servers(123)->sites(123)->fastCgi()->disable();

// Flush FastCGI cache
$ploi->servers(123)->sites(123)->fastCgi()->flush();

Tenants

// Create tenant
$ploi->servers(123)->sites(123)->tenants()->create($tenants);

// List tenants
$ploi->servers(123)->sites(123)->tenants()->get();

// Delete tenant
$ploi->servers(123)->sites(123)->tenants()->delete($tenant);

// Request tenant certificate
$ploi->servers(123)->sites(123)->tenants()->requestCertificate($tenant);

// Revoke tenant certificate
$ploi->servers(123)->sites(123)->tenants()->revokeCertificate($tenant);

Robot Access

// Allow robot access
$ploi->servers(123)->sites(123)->robots()->allow();

// Block robot access
$ploi->servers(123)->sites(123)->robots()->block();

Scripts

Available methods for scripts:

// Create script
$ploi->scripts()->create($label, $user, $content);

// List scripts
$ploi->scripts()->get();

// Paginate scripts
$ploi->scripts()->perPage($amountPerPage)->page($pageNumber);

// Get script
$ploi->scripts(123)->get();

// Delete script
$ploi->scripts(123)->delete();

// Run script
$ploi->scripts(123)->run($id = null, $serverIds = []);

Daemons

Available methods for daemons:

// Create daemon
$ploi->servers(123)->daemons()->create(
    $command,
    $systemUser,
    $processes,
    $directory = null
);

// List daemons
$ploi->servers(123)->daemons()->get();

// Paginate daemons
$ploi->servers(123)->daemons()->perPage($amountPerPage)->page($pageNumber);

// Get daemon
$ploi->servers(123)->daemons(123)->get();

// Delete daemon
$ploi->servers(123)->daemons(123)->delete();

// Pause daemon
$ploi->servers(123)->daemons(123)->pause();

// Restart daemon
$ploi->servers(123)->daemons(123)->restart();

Services

// Restart service
$ploi->servers(123)->services($name)->restart();

System Users

Available methods for system users:

// Create system user
$ploi->servers(123)->systemUsers()->create(
    $name,
    $sudo = false
);

// List system users
$ploi->servers(123)->systemUsers()->get();

// Paginate system users
$ploi->servers(123)->systemUsers()->perPage($amountPerPage)->page($pageNumber);

// Get system users
$ploi->servers(123)->systemUsers(123)->get();

// Delete system user
$ploi->servers(123)->systemUsers(123)->delete();

SSH Keys

Available methods for SSH keys:

// List SSH keys
$ploi->servers(123)->sshKeys()->get();

// Paginate SSH keys
$ploi->servers(123)->sshKeys()->perPage($amountPerPage)->page($pageNumber);

// Get SSH key
$ploi->servers(123)->sshKeys(123)->get();

// Delete SSH key
$ploi->servers(123)->sshKeys(123)->delete();

Insights

// List insights
$ploi->servers(123)->insights()->get();

// Paginate insights
$ploi->servers(123)->insights()->perPage($amountPerPage)->page($pageNumber);

// Get insight
$ploi->servers(123)->insights(123)->get();

// Get insight detail
$ploi->servers(123)->insights(123)->detail();

// Automatically fix insight
$ploi->servers(123)->insights(123)->automaticallyFix();

// Ignore insight
$ploi->servers(123)->insights(123)->ignore();

// Delete insight
$ploi->servers(123)->insights(123)->delete();

User

Available methods for user:

// Get own user information
$ploi->user()->get();

// List server providers
$ploi->user()->serverProviders();

// Get server providers
$ploi->user()->serverProviders($providerId);

Status Pages

Available methods for status pages:

// List status pages
$ploi->statusPage()->get();

// Paginate status pages
$ploi->statusPage()->perPage($amountPerPage)->page($pageNumber);

// Get status page
$ploi->statusPage(123)->get();

Status Page Incidents

Available methods for status page incidents:

// Create incident
$ploi->statusPage(123)->incident()->create(
    $title,
    $description,
    $severity
);

// List incidents
$ploi->statusPage(123)->incident()->get();

// Paginate incidents
$ploi->statusPage(123)->incident()->perPage($amountPerPage)->page($pageNumber);

// Delete incident
$ploi->statusPage(123)->incident(123)->delete();

Webserver Templates

Available methods for webserver templates:

// List webserver templates
$ploi->webserverTemplates()->get();

// Paginate webserver templates
$ploi->webserverTemplates()->perPage($amountPerPage)->page($pageNumber);

// Get webserver template
$ploi->webserverTemplates(123)->get();
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].