Add PowerDNS config and DKIM/NS check tables required for zone provisioning.
Deploy Ladill Hosting / deploy (push) Successful in 49s
Deploy Ladill Hosting / deploy (push) Successful in 49s
Hosting had PDNS env vars but no config/pdns.php and was missing domain_dkim_keys, so linked domains never got authoritative zones. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'api_url' => env('PDNS_API_URL', 'http://127.0.0.1:8081'),
|
||||
'api_key' => env('PDNS_API_KEY', ''),
|
||||
'server' => env('PDNS_SERVER', 'localhost'),
|
||||
'timeout' => (int) env('PDNS_TIMEOUT', 5),
|
||||
'slave_masters' => array_filter(array_map('trim', explode(',', env('PDNS_SLAVE_MASTERS', '167.86.66.168')))),
|
||||
|
||||
'slave_api_url' => env('PDNS_SLAVE_API_URL', ''),
|
||||
'slave_api_key' => env('PDNS_SLAVE_API_KEY', ''),
|
||||
'slave_server' => env('PDNS_SLAVE_SERVER', 'localhost'),
|
||||
];
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
if (! Schema::hasTable('domain_dkim_keys')) {
|
||||
Schema::create('domain_dkim_keys', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->foreignId('domain_id')->constrained('domains')->cascadeOnDelete();
|
||||
$table->string('selector');
|
||||
$table->longText('public_key_txt');
|
||||
$table->string('private_key_path')->nullable();
|
||||
$table->string('status')->default('active');
|
||||
$table->timestamp('generated_at')->nullable();
|
||||
$table->timestamps();
|
||||
|
||||
$table->unique(['domain_id', 'selector']);
|
||||
});
|
||||
}
|
||||
|
||||
if (! Schema::hasTable('domain_ns_checks')) {
|
||||
Schema::create('domain_ns_checks', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->foreignId('domain_id')->constrained('domains')->cascadeOnDelete();
|
||||
$table->string('check_type')->default('onboarding');
|
||||
$table->string('result')->default('pending');
|
||||
$table->json('expected_nameservers')->nullable();
|
||||
$table->json('observed_nameservers')->nullable();
|
||||
$table->boolean('has_authoritative_answer')->nullable();
|
||||
$table->unsignedSmallInteger('manual_records_total')->default(0);
|
||||
$table->unsignedSmallInteger('manual_records_verified')->default(0);
|
||||
$table->string('status_before')->nullable();
|
||||
$table->string('status_after')->nullable();
|
||||
$table->string('state_before')->nullable();
|
||||
$table->string('state_after')->nullable();
|
||||
$table->text('notes')->nullable();
|
||||
$table->timestamp('checked_at')->nullable();
|
||||
$table->timestamps();
|
||||
|
||||
$table->index(['domain_id', 'checked_at']);
|
||||
$table->index(['domain_id', 'result']);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('domain_ns_checks');
|
||||
Schema::dropIfExists('domain_dkim_keys');
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user