@extends('layouts.portal')
@section('title', 'Lab portal')
@section('subtitle', 'Virtual labs on VMware vSphere/ESXi, Workstation, Proxmox, AWS and Azure, opened in the browser through the console gateway. Learners never receive machine credentials.')
@section('actions')@can('settings.view') Provider key Limits: {{ config('labs.limits.max_active_per_user') }} active lab per learner · one extension of {{ config('labs.limits.extend_minutes') }} minutes · expired sessions are destroyed automatically every 5 minutes · access only for learners enrolled in the lab's course.Platforms
Console gateway: {{ $gateway ? 'connected' : 'not configured' }}{{ $key }}@switch($key)
@case('proxmox') · linked clone of a template VM per session @break
@case('vsphere') · vCenter clone per session (ESXi hosts managed by vCenter) @break
@case('workstation') · vmrest clone on a lab PC @break
@case('pool') · assigns pre-built machines (standalone ESXi, racks, EVE-NG) @break
@case('aws') · EC2 from a launch template, tagged and auto-terminated @break
@case('azure') · one resource group per session, deleted at expiry @break
@endswitchLive sessions ({{ $sessions->count() }})
@forelse($sessions as $s)
Learner Lab Platform Started Expires Status
@empty
{{ $s->user?->name }} {{ $s->lab?->title }} {{ $s->access['provider'] ?? $s->lab?->provider }}
{{ $s->started_at?->format('d M H:i') }} {{ $s->expires_at?->format('d M H:i') }} {{ $s->status }}
@can('labs.manage')@endcan
@endforelse
No lab is running right now. Labs
@foreach($labs as $l)
Lab Course Platform Live now
@endforeach
{{ $l->title }} {{ $l->course?->title ?? 'Open to all learners' }}
@if(\App\Labs\LabOrchestrator::live($l->provider)){{ \App\Labs\LabOrchestrator::driver($l->provider)->label() }}@elseGuided{{ $l->provider !== 'local' ? ' ('.$l->provider.' not connected)' : '' }}@endif
{{ $l->active_count }}
@can('labs.manage')@endcan