This commit is contained in:
Saeed Vaziry
2024-03-24 09:56:34 +01:00
committed by GitHub
parent 884f18db63
commit 4d051330d6
1055 changed files with 14493 additions and 20278 deletions

View File

@ -1,8 +0,0 @@
<?php
use App\Models\User;
use Illuminate\Support\Facades\Broadcast;
Broadcast::channel('app', function (User $user) {
return $user && $user->id;
});

View File

@ -1,19 +1 @@
<?php
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
/*
|--------------------------------------------------------------------------
| Console Routes
|--------------------------------------------------------------------------
|
| This file is where you may define all of your Closure based console
| commands. Each Closure is bound to a command instance allowing a
| simple approach to interacting with each command's IO methods.
|
*/
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');

141
routes/server.php Normal file
View File

@ -0,0 +1,141 @@
<?php
use App\Http\Controllers\ApplicationController;
use App\Http\Controllers\CronjobController;
use App\Http\Controllers\DatabaseBackupController;
use App\Http\Controllers\DatabaseController;
use App\Http\Controllers\DatabaseUserController;
use App\Http\Controllers\FirewallController;
use App\Http\Controllers\PHPController;
use App\Http\Controllers\QueueController;
use App\Http\Controllers\ServerController;
use App\Http\Controllers\ServerLogController;
use App\Http\Controllers\ServerSettingController;
use App\Http\Controllers\ServiceController;
use App\Http\Controllers\SiteController;
use App\Http\Controllers\SiteLogController;
use App\Http\Controllers\SiteSettingController;
use App\Http\Controllers\SSHKeyController;
use App\Http\Controllers\SSLController;
use Illuminate\Support\Facades\Route;
Route::get('/', [ServerController::class, 'index'])->name('servers');
Route::get('/create', [ServerController::class, 'create'])->name('servers.create');
Route::post('/create', [ServerController::class, 'store']);
Route::middleware('select-current-project')->group(function () {
Route::get('/{server}', [ServerController::class, 'show'])->name('servers.show');
Route::delete('/{server}', [ServerController::class, 'delete'])->name('servers.delete');
Route::middleware(['server-is-ready', 'handle-ssh-errors'])->group(function () {
Route::prefix('/{server}/sites')->group(function () {
// sites
Route::get('/', [SiteController::class, 'index'])->name('servers.sites');
Route::get('/create', [SiteController::class, 'create'])->name('servers.sites.create');
Route::post('/create', [SiteController::class, 'store']);
Route::get('/{site}', [SiteController::class, 'show'])->name('servers.sites.show');
Route::delete('/{site}', [SiteController::class, 'destroy'])->name('servers.sites.destroy');
// site application
Route::post('/{site}/application/deploy', [ApplicationController::class, 'deploy'])->name('servers.sites.application.deploy');
Route::get('/{site}/application/{deployment}/log', [ApplicationController::class, 'showDeploymentLog'])->name('servers.sites.application.deployment.log');
Route::post('/{site}/application/deployment-script', [ApplicationController::class, 'updateDeploymentScript'])->name('servers.sites.application.deployment-script');
Route::post('/{site}/application/branch', [ApplicationController::class, 'updateBranch'])->name('servers.sites.application.branch');
Route::get('/{site}/application/env', [ApplicationController::class, 'getEnv'])->name('servers.sites.application.env');
Route::post('/{site}/application/env', [ApplicationController::class, 'updateEnv']);
Route::post('/{site}/application/auto-deployment', [ApplicationController::class, 'enableAutoDeployment'])->name('servers.sites.application.auto-deployment');
Route::delete('/{site}/application/auto-deployment', [ApplicationController::class, 'disableAutoDeployment']);
// site ssl
Route::get('/{site}/ssl', [SSLController::class, 'index'])->name('servers.sites.ssl');
Route::post('/{site}/ssl', [SSLController::class, 'store'])->name('servers.sites.ssl.store');
Route::delete('/{site}/ssl/{ssl}', [SSLController::class, 'destroy'])->name('servers.sites.ssl.destroy');
// site queues
Route::get('/{site}/queues', [QueueController::class, 'index'])->name('servers.sites.queues');
Route::post('/{site}/queues', [QueueController::class, 'store'])->name('servers.sites.queues.store');
Route::post('/{site}/queues/{queue}/action/{action}', [QueueController::class, 'action'])->name('servers.sites.queues.action');
Route::delete('/{site}/queues/{queue}', [QueueController::class, 'destroy'])->name('servers.sites.queues.destroy');
Route::get('/{site}/queues/{queue}/logs', [QueueController::class, 'logs'])->name('servers.sites.queues.logs');
// site settings
Route::get('/{site}/settings', [SiteSettingController::class, 'index'])->name('servers.sites.settings');
Route::get('/{site}/settings/vhost', [SiteSettingController::class, 'getVhost'])->name('servers.sites.settings.vhost');
Route::post('/{site}/settings/vhost', [SiteSettingController::class, 'updateVhost']);
Route::post('/{site}/settings/php', [SiteSettingController::class, 'updatePHPVersion'])->name('servers.sites.settings.php');
// site logs
Route::get('/{site}/logs', [SiteLogController::class, 'index'])->name('servers.sites.logs');
});
Route::prefix('/{server}/databases')->group(function () {
// databases
Route::get('/', [DatabaseController::class, 'index'])->name('servers.databases');
Route::post('/', [DatabaseController::class, 'store'])->name('servers.databases.store');
Route::delete('/{database}', [DatabaseController::class, 'destroy'])->name('servers.databases.destroy');
// database users
Route::post('/users', [DatabaseUserController::class, 'store'])->name('servers.databases.users.store');
Route::delete('/users/{databaseUser}', [DatabaseUserController::class, 'destroy'])->name('servers.databases.users.destroy');
Route::post('/users/{databaseUser}/password', [DatabaseUserController::class, 'password'])->name('servers.databases.users.password');
Route::post('/users/{databaseUser}/link', [DatabaseUserController::class, 'link'])->name('servers.databases.users.link');
// database backups
Route::post('/backups', [DatabaseBackupController::class, 'store'])->name('servers.databases.backups.store');
Route::delete('/backups/{backup}', [DatabaseBackupController::class, 'destroy'])->name('servers.databases.backups.destroy');
// database backup files
Route::get('/backups/{backup}', [DatabaseBackupController::class, 'show'])->name('servers.databases.backups');
Route::get('/backups/{backup}/run', [DatabaseBackupController::class, 'run'])->name('servers.databases.backups.run');
Route::post('/backups/{backup}/files/{backupFile}/restore', [DatabaseBackupController::class, 'restore'])->name('servers.databases.backups.files.restore');
Route::delete('/backups/{backup}/files/{backupFile}', [DatabaseBackupController::class, 'destroyFile'])->name('servers.databases.backups.files.destroy');
});
// php
Route::get('/{server}/php', [PHPController::class, 'index'])->name('servers.php');
Route::post('/{server}/php/install', [PHPController::class, 'install'])->name('servers.php.install');
Route::post('/{server}/php/install-extension', [PHPController::class, 'installExtension'])->name('servers.php.install-extension');
Route::post('/{server}/php/default-cli', [PHPController::class, 'defaultCli'])->name('servers.php.default-cli');
Route::get('/{server}/php/get-ini', [PHPController::class, 'getIni'])->name('servers.php.get-ini');
Route::post('/{server}/php/update-ini', [PHPController::class, 'updateIni'])->name('servers.php.update-ini');
Route::delete('/{server}/php/uninstall', [PHPController::class, 'uninstall'])->name('servers.php.uninstall');
// firewall
Route::get('/{server}/firewall', [FirewallController::class, 'index'])->name('servers.firewall');
Route::post('/{server}/firewall', [FirewallController::class, 'store'])->name('servers.firewall.store');
Route::delete('/{server}/firewall/{firewallRule}', [FirewallController::class, 'destroy'])->name('servers.firewall.destroy');
// cronjobs
Route::get('/{server}/cronjobs', [CronjobController::class, 'index'])->name('servers.cronjobs');
Route::post('/{server}/cronjobs', [CronjobController::class, 'store'])->name('servers.cronjobs.store');
Route::delete('/{server}/cronjobs/{cronJob}', [CronjobController::class, 'destroy'])->name('servers.cronjobs.destroy');
// ssh keys
Route::get('/{server}/ssh-keys', [SSHKeyController::class, 'index'])->name('servers.ssh-keys');
Route::post('/{server}/ssh-keys', [SSHKeyController::class, 'store'])->name('servers.ssh-keys.store');
Route::delete('/{server}/ssh-keys/{sshKey}', [SSHKeyController::class, 'destroy'])->name('servers.ssh-keys.destroy');
Route::post('/{server}/ssh-keys/deploy', [SSHKeyController::class, 'deploy'])->name('servers.ssh-keys.deploy');
// services
Route::get('/{server}/services', [ServiceController::class, 'index'])->name('servers.services');
Route::get('/{server}/services/{service}/start', [ServiceController::class, 'start'])->name('servers.services.start');
Route::get('/{server}/services/{service}/stop', [ServiceController::class, 'stop'])->name('servers.services.stop');
Route::get('/{server}/services/{service}/restart', [ServiceController::class, 'restart'])->name('servers.services.restart');
Route::get('/{server}/services/{service}/enable', [ServiceController::class, 'enable'])->name('servers.services.enable');
Route::get('/{server}/services/{service}/disable', [ServiceController::class, 'disable'])->name('servers.services.disable');
});
// settings
Route::prefix('/{server}/settings')->group(function () {
Route::get('/', [ServerSettingController::class, 'index'])->name('servers.settings');
Route::post('/check-connection', [ServerSettingController::class, 'checkConnection'])->name('servers.settings.check-connection');
Route::post('/reboot', [ServerSettingController::class, 'reboot'])->name('servers.settings.reboot');
Route::post('/edit', [ServerSettingController::class, 'edit'])->name('servers.settings.edit');
});
// logs
Route::prefix('/{server}/logs')->group(function () {
Route::get('/', [ServerLogController::class, 'index'])->name('servers.logs');
Route::get('/{serverLog}', [ServerLogController::class, 'show'])->name('servers.logs.show');
});
});

66
routes/settings.php Normal file
View File

@ -0,0 +1,66 @@
<?php
use App\Http\Controllers\Settings\NotificationChannelController;
use App\Http\Controllers\Settings\ProfileController;
use App\Http\Controllers\Settings\ProjectController;
use App\Http\Controllers\Settings\ServerProviderController;
use App\Http\Controllers\Settings\SourceControlController;
use App\Http\Controllers\Settings\SSHKeyController;
use App\Http\Controllers\Settings\StorageProviderController;
use Illuminate\Support\Facades\Route;
// profile
Route::prefix('settings/profile')->group(function () {
Route::get('/', [ProfileController::class, 'index'])->name('profile');
Route::post('info', [ProfileController::class, 'info'])->name('profile.info');
Route::post('password', [ProfileController::class, 'password'])->name('profile.password');
});
// profile
Route::prefix('settings/projects')->group(function () {
Route::get('/', [ProjectController::class, 'index'])->name('projects');
Route::post('create', [ProjectController::class, 'create'])->name('projects.create');
Route::post('update/{project}', [ProjectController::class, 'update'])->name('projects.update');
Route::delete('delete/{project}', [ProjectController::class, 'delete'])->name('projects.delete');
Route::get('switch/{project}', [ProjectController::class, 'switch'])->name('projects.switch');
});
// server-providers
Route::prefix('settings/server-providers')->group(function () {
Route::get('/', [ServerProviderController::class, 'index'])->name('server-providers');
Route::post('connect', [ServerProviderController::class, 'connect'])->name('server-providers.connect');
Route::delete('delete/{serverProvider}', [ServerProviderController::class, 'delete'])
->name('server-providers.delete');
});
// source-controls
Route::prefix('settings/source-controls')->group(function () {
Route::get('/', [SourceControlController::class, 'index'])->name('source-controls');
Route::post('connect', [SourceControlController::class, 'connect'])->name('source-controls.connect');
Route::delete('delete/{sourceControl}', [SourceControlController::class, 'delete'])
->name('source-controls.delete');
});
// storage-providers
Route::prefix('settings/storage-providers')->group(function () {
Route::get('/', [StorageProviderController::class, 'index'])->name('storage-providers');
Route::post('connect', [StorageProviderController::class, 'connect'])->name('storage-providers.connect');
Route::delete('delete/{storageProvider}', [StorageProviderController::class, 'delete'])
->name('storage-providers.delete');
});
// notification-channels
Route::prefix('settings/notification-channels')->group(function () {
Route::get('/', [NotificationChannelController::class, 'index'])->name('notification-channels');
Route::post('add', [NotificationChannelController::class, 'add'])
->name('notification-channels.add');
Route::delete('delete/{id}', [NotificationChannelController::class, 'delete'])
->name('notification-channels.delete');
});
// ssh-keys
Route::prefix('settings/ssh-keys')->group(function () {
Route::get('/', [SSHKeyController::class, 'index'])->name('ssh-keys');
Route::post('add', [SshKeyController::class, 'add'])->name('ssh-keys.add');
Route::delete('delete/{id}', [SshKeyController::class, 'delete'])->name('ssh-keys.delete');
});

View File

@ -1,16 +1,6 @@
<?php
use App\Http\Controllers\CronjobController;
use App\Http\Controllers\DaemonController;
use App\Http\Controllers\DatabaseController;
use App\Http\Controllers\FirewallController;
use App\Http\Controllers\PHPController;
use App\Http\Controllers\ProjectController;
use App\Http\Controllers\ServerController;
use App\Http\Controllers\ServerSettingController;
use App\Http\Controllers\ServiceController;
use App\Http\Controllers\SiteController;
use App\Http\Controllers\SSHKeyController;
use App\Http\Controllers\SearchController;
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
@ -18,42 +8,11 @@
});
Route::middleware('auth')->group(function () {
Route::prefix('/settings')->group(function () {
Route::view('/profile', 'profile.index')->name('profile');
Route::get('/projects', [ProjectController::class, 'index'])->name('projects');
Route::get('/projects/{projectId}', [ProjectController::class, 'switch'])->name('projects.switch');
Route::view('/server-providers', 'server-providers.index')->name('server-providers');
Route::view('/source-controls', 'source-controls.index')->name('source-controls');
Route::view('/storage-providers', 'storage-providers.index')->name('storage-providers');
Route::view('/notification-channels', 'notification-channels.index')->name('notification-channels');
Route::view('/ssh-keys', 'ssh-keys.index')->name('ssh-keys');
});
require __DIR__.'/settings.php';
Route::prefix('/servers')->group(function () {
Route::get('/', [ServerController::class, 'index'])->name('servers');
Route::get('/create', [ServerController::class, 'create'])->name('servers.create');
Route::get('/{server}', [ServerController::class, 'show'])->name('servers.show');
Route::get('/{server}/logs', [ServerController::class, 'logs'])->name('servers.logs');
Route::get('/{server}/settings', [ServerSettingController::class, 'index'])->name('servers.settings');
Route::middleware('server-is-ready')->group(function () {
Route::get('/{server}/databases', [DatabaseController::class, 'index'])->name('servers.databases');
Route::get('/{server}/databases/backups/{backup}', [DatabaseController::class, 'backups'])->name(
'servers.databases.backups'
);
Route::prefix('/{server}/sites')->group(function () {
Route::get('/', [SiteController::class, 'index'])->name('servers.sites');
Route::get('/create', [SiteController::class, 'create'])->name('servers.sites.create');
Route::get('/{site}', [SiteController::class, 'show'])->name('servers.sites.show');
Route::get('/{site}/ssl', [SiteController::class, 'ssl'])->name('servers.sites.ssl');
Route::get('/{site}/queues', [SiteController::class, 'queues'])->name('servers.sites.queues');
Route::get('/{site}/settings', [SiteController::class, 'settings'])->name('servers.sites.settings');
Route::get('/{site}/logs', [SiteController::class, 'logs'])->name('servers.sites.logs');
});
Route::get('/{server}/php', [PHPController::class, 'index'])->name('servers.php');
Route::get('/{server}/firewall', [FirewallController::class, 'index'])->name('servers.firewall');
Route::get('/{server}/cronjobs', [CronjobController::class, 'index'])->name('servers.cronjobs');
Route::get('/{server}/daemons', [DaemonController::class, 'index'])->name('servers.daemons');
Route::get('/{server}/services', [ServiceController::class, 'index'])->name('servers.services');
Route::get('/{server}/ssh-keys', [SSHKeyController::class, 'index'])->name('servers.ssh-keys');
});
require __DIR__.'/server.php';
});
Route::get('/search', [SearchController::class, 'search'])->name('search');
});