some progress

This commit is contained in:
Doar Mihai
2026-01-17 16:42:43 +02:00
parent 030a105992
commit 3665a1d5a3
57 changed files with 5804 additions and 3 deletions
+48
View File
@@ -0,0 +1,48 @@
<?php
use App\Http\Controllers\Api\AuthController;
use App\Http\Controllers\Api\LinkController;
use App\Http\Controllers\Api\SiteController;
use App\Http\Controllers\Api\SslController;
use App\Http\Controllers\Api\UptimeController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "api" middleware group. Make something great!
|
*/
Route::get('/test', function (Request $request) {
return response()->json(['message' => 'API is working']);
});
Route::middleware('auth:sanctum')->group(function () {
// Authentication & Token Management
Route::post('/tokens', [AuthController::class, 'createToken']);
Route::get('/tokens', [AuthController::class, 'tokens']);
Route::delete('/tokens/{tokenId}', [AuthController::class, 'revokeToken']);
Route::delete('/tokens', [AuthController::class, 'revokeAllTokens']);
// Sites
Route::get('/sites', [SiteController::class, 'index']);
Route::get('/sites/{site}', [SiteController::class, 'show']);
// Uptime
Route::get('/sites/{site}/uptime', [UptimeController::class, 'index']);
Route::get('/sites/{site}/uptime/stats', [UptimeController::class, 'stats']);
// SSL
Route::get('/sites/{site}/ssl', [SslController::class, 'show']);
Route::get('/sites/{site}/ssl/history', [SslController::class, 'history']);
// Broken Links
Route::get('/sites/{site}/links', [LinkController::class, 'index']);
Route::get('/sites/{site}/links/stats', [LinkController::class, 'stats']);
});
+28
View File
@@ -15,6 +15,13 @@ Schedule::command('monitor:uptime')
->runInBackground()
->appendOutputTo(storage_path('logs/uptime-monitoring.log'));
// Schedule ping monitoring to run every 5 minutes
Schedule::command('monitor:ping')
->everyFiveMinutes()
->withoutOverlapping()
->runInBackground()
->appendOutputTo(storage_path('logs/ping-monitoring.log'));
// Schedule SSL certificate monitoring to run daily
Schedule::command('monitor:ssl')
->daily()
@@ -28,3 +35,24 @@ Schedule::command('monitor:links')
->withoutOverlapping()
->runInBackground()
->appendOutputTo(storage_path('logs/link-monitoring.log'));
// Schedule TCP port monitoring to run every 10 minutes
Schedule::command('monitor:tcp-ports')
->everyTenMinutes()
->withoutOverlapping()
->runInBackground()
->appendOutputTo(storage_path('logs/tcp-port-monitoring.log'));
// Schedule health endpoint monitoring to run every 5 minutes
Schedule::command('monitor:health')
->everyFiveMinutes()
->withoutOverlapping()
->runInBackground()
->appendOutputTo(storage_path('logs/health-monitoring.log'));
// Schedule DNS monitoring to run hourly
Schedule::command('monitor:dns')
->hourly()
->withoutOverlapping()
->runInBackground()
->appendOutputTo(storage_path('logs/dns-monitoring.log'));
+7
View File
@@ -22,6 +22,13 @@ Route::middleware('auth')->group(function () {
Route::resource('sites', SiteController::class);
Route::get('dashboard/{site}', [DashboardController::class, 'show'])->name('dashboard.show');
// Resources nested under sites
Route::prefix('sites/{site}')->group(function () {
Route::resource('tcp-ports', \App\Http\Controllers\TcpPortController::class);
Route::resource('health-checks', \App\Http\Controllers\HealthCheckController::class);
Route::resource('dns-records', \App\Http\Controllers\DnsRecordController::class);
});
// Alerts
Route::get('/alerts', [AlertController::class, 'index'])->name('alerts.index');
Route::patch('/alerts/{notification}/read', [AlertController::class, 'markAsRead'])->name('alerts.markAsRead');