Skip to content

Instantly share code, notes, and snippets.

@OwenMelbz
Last active March 4, 2020 20:44
Show Gist options
  • Save OwenMelbz/ccee6d956f4562307154ad2cd9cb5bc6 to your computer and use it in GitHub Desktop.
Save OwenMelbz/ccee6d956f4562307154ad2cd9cb5bc6 to your computer and use it in GitHub Desktop.
Lets Encrypt Forge Check
<?php
//
// First composer require themsaid/forge-sdk
//
use Themsaid\Forge\Forge;
use Illuminate\Support\Str;
use Illuminate\Console\Command;
use Themsaid\Forge\Resources\Server;
use Illuminate\Support\Facades\Http;
$forge = new Forge('YOUR API TOKEN HERE');
$needRenewing = collect($forge->servers())->map(function (Server $server) use ($forge) {
dump('fetching sites for ' . $server->name);
$sites = $forge->sites($server->id);
sleep(1);
return $sites;
})
->flatten()
->map(function ($site) {
return $site->name;
})
->unique()
->reject(function ($domain) {
return $domain === 'default';
})->filter(function ($domain) {
dump('checking ' . $domain);
sleep(0.5);
$request = Http::asForm()->post('https://checkhost.unboundtest.com/checkhost', [
'fqdn' => $domain,
]);
$resp = $request->body();
dump($resp);
return Str::contains($resp, 'needs renewal');
});
dump($needRenewing);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment