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,9 +2,9 @@
namespace Tests\Unit;
use Exception;
use App\Http\Controllers\WebhookController;
use App\NotifyMe;
use Exception;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
@@ -19,6 +19,7 @@ class TestNotifier
class NotifyMeTest extends TestCase
{
public $notifier;
protected function setUp(): void
{
parent::setUp();
@@ -42,7 +43,7 @@ class NotifyMeTest extends TestCase
$result = $this->notifier->sendTelegramNotification('Test message');
$this->assertTrue($result);
Http::assertSent(fn(array $request): bool => $request->url() === 'https://api.telegram.org/bottest_bot_token/sendMessage' &&
Http::assertSent(fn (array $request): bool => $request->url() === 'https://api.telegram.org/bottest_bot_token/sendMessage' &&
$request['chat_id'] === 'test_chat_id' &&
$request['text'] === 'Test message' &&
$request['parse_mode'] === 'HTML');
@@ -133,7 +134,7 @@ class NotifyMeTest extends TestCase
$htmlMessage = '<b>Bold text</b> and <i>italic text</i>';
$this->notifier->sendTelegramNotification($htmlMessage);
Http::assertSent(fn(array $request): bool => $request['parse_mode'] === 'HTML' &&
Http::assertSent(fn (array $request): bool => $request['parse_mode'] === 'HTML' &&
$request['text'] === $htmlMessage);
}