feat: Prepare Zemailnator for Dokploy deployment

- Add highly optimized Dockerfile with Nginx and PHP-FPM 8.4
- Add docker-compose.yml configured with Redis and MariaDB 10.11
- Implement entrypoint.sh and supervisord.conf for background workers
- Refactor legacy IMAP scripts into scheduled Artisan Commands
- Secure app by removing old routes with hardcoded basic auth credentials
- Configure email attachments to use Laravel Storage instead of insecure public/tmp
This commit is contained in:
idevakk
2026-02-28 23:17:39 +05:30
parent bf5b797cd8
commit c312ec3325
78 changed files with 750 additions and 360 deletions

View File

@@ -2,11 +2,11 @@
namespace App\Livewire\Dashboard;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Request;
use App\Models\Ticket;
use App\Models\TicketResponse;
use Exception;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Str;
use Livewire\Component;
class Support extends Component
@@ -129,9 +129,9 @@ class Support extends Component
public function updateTicketCounts(): void
{
$this->open = $this->tickets->filter(fn($ticket): bool => in_array($ticket->status, ['open', 'pending']))->count();
$this->open = $this->tickets->filter(fn ($ticket): bool => in_array($ticket->status, ['open', 'pending']))->count();
$this->closed = $this->tickets->filter(fn($ticket): bool => $ticket->status === 'closed')->count();
$this->closed = $this->tickets->filter(fn ($ticket): bool => $ticket->status === 'closed')->count();
}
protected function getClientIp()