Ray server is a beautiful, lightweight php app build on Laravel that helps you debug your app. It runs without installation on multiple platforms.

Overview

Ray server

A server for debugging more than just Laravel applications.

Support me on Patreon Downloads Join to iur telegram

RayServer is a beautiful, lightweight web server built on Laravel and VueJs that helps debugging your app. It runs without installation on multiple platforms.

RayServer will help you debugging your projects with the Ray debug tool from spatie. The Ray debug tool supports PHP, Ruby, JavaScript, TypeScript, NodeJS, Go and Bash applications. After installing one of the libraries to send information to Ray, you can use the ray function to quickly dump stuff. Any variable(s) that you pass to ray will be displayed. Reas more.

RayServer also is an email testing tool that makes it super easy to install and configure a local email server. RayServer sets up a fake SMTP server and you can configure your preferred web applications to use RayServer’s SMTP server to send and receive emails. For instance, you can configure a local WordPress site to use RayServer for email deliveries.

Moreover RayServer is compatible with sentry, monolog.

It is a free alternative of The Ray app for those who want to run a server without GUI, cannot afford the paid version or just like open source.

But it doesn’t mean you shouldn’t support spatie’s packages!

You can find out more information about the RayServer here.

Features

  • Compatible with spatie/ray package
  • Compatible with Sentry (See https://docs.sentry.io/platforms)
  • Compatible with Monolog via \Monolog\Handler\SlackWebhookHandler
  • Compatible with SMTP. RayServer can be used as an email testing tool.

Code samples of usage you can find here

Technological stack

  • Laravel 8
  • Inertia
  • Swoole Http/Websocket server
  • Vue
  • TailwindCSS

Ray server devices

Code samples of usage you can find [here](https://github.com/butschster/ray-server-test/tree/master/tests/Feature

Docker image

You can run Ray server via docker

Run it from Docker Hub or using the provided Dockerfile

docker run --pull always -p 23517:8000 -p 1025:1025 butschster/ray-server:latest

# or 

docker run -p 23517:8000 -p 1025:1025 butschster/ray-server:v1.11

Configuration

  1. Install spatie/ray or other Ray debug tool in your project
  2. Configure your .env for Ray package
    • RAY_HOST=127.0.0.1 - Ray server host
    • RAY_PORT=23517 - Ray server port
  3. Configure your .env for Sentry package
  4. Configure your .env for monolog logs
    • LOG_CHANNEL=slack
    • LOG_SLACK_WEBHOOK_URL=http://127.0.0.1:23517/slack
  5. Configure your .env for mail
    • MAIL_MAILER=smtp
    • MAIL_HOST=127.0.0.1
    • MAIL_PORT=1025
  6. Open http://127.0.0.1:23517 url in your browser

Enjoy!

Contributing

Server requirements

  1. PHP 8.0
  2. Swoole 4.7
  3. NodeJS

Installation

  1. Clone repository
  2. Run composer `composer install
  3. Run npm npm i
  4. Run ray server php artisan server:start --host=127.0.0.1 --port=23517
  5. Run smtp server php artisan smtp:start --host=127.0.0.1 --port=1025
  6. Build npm npm run prod

License

Ray server is open-sourced software licensed under the MIT license.

Tasks to do

  • Simple data
  • Colors
  • Sizes
  • Labels
  • New screen
  • Clear all
  • Caller
  • Trace
  • Pause
  • Counter
  • Class name of an object
  • Measure
  • Json
  • Xml
  • Carbon
  • File
  • Table
  • Image
  • Html
  • Text
  • Notifications
  • Phpinfo
  • Exception
  • Show queries
  • Count queries
  • Show events
  • Show jobs
  • Show cache
  • Model
  • Show views
  • Markdown
  • Collections
  • Env
  • Response
  • Request
  • Ban
  • Charles
  • Remove
  • Hide/Show events
  • Sticky header
  • Application log
  • Show Http client requests
  • Mailable
  • Sentry
  • Monolog
  • SMTP server
  • Show WordPress errors
  • Dark theme
Comments
  • No events receiving

    No events receiving

    Any ideas? I powered up the docker containers as you specified I installed vardumper and ray in my laravel application in the controller I do dd('hello'); ray('hiya'); But when I navigate to http://localhost:23517/ It keeps spinning "Hurry! Give me something. I can't wait to show it." So I guess no events are coming in

    Any ideas

    opened by robov 12
  • Add projects for events

    Add projects for events

    Default project is assigned to events by default. For sentry events project id is taken from projectId param in sentry.event.store route. Events can by filtered by setting projectId in events.type route.

    improvement module:events module:sentry feature module:projects 
    opened by js361014 9
  • how to start without docker?

    how to start without docker?

    i have this error when opening the page

    Warning: Unknown: Failed to open stream: No such file or directory in Unknown on line 0

    Fatal error: Failed opening required '/Volumes/MacData/work/buggregator/server.php' (include_path='.:/usr/local/Cellar/php/8.0.12/share/php/pear') in Unknown on line 0

    help wanted 
    opened by anditsung 6
  • Get the UI which is shown on the homepage

    Get the UI which is shown on the homepage

    When I pull the latest version of buggregator from docker hub I get the app version which is shown in the images in the Readme but when I saw the version on the website I fell in love with that UI. I did not find a way in the readme to be able to get that version I might miss something but is there a way to get this fancy looking version?

    Screenshot 2022-03-22 at 22 15 02

    By the way; I love working with buggregator it really makes me more productive if there is a way I can fund you some coffee please let me know!

    opened by dstollie 4
  • Issues with SQL Database locked

    Issues with SQL Database locked

    I've been playing with Buggregator recently via Docker, but keep hitting this error:

    [2022-03-10 14:24:02] production.ERROR: SQLSTATE[HY000]: General error: 5 database is locked {"exception":"[object] (Cycle\\Database\\Exception\\StatementException(code: 0): SQLSTATE[HY000]: General error: 5 database is locked at /app/vendor/cycle/database/src/Driver/SQLite/SQLiteDriver.php:39)

    I'm primarily using the v2.0.0-beta Docker image on an M1 Mac, both from DockerHub (using Rosetta to run the x86 image on ARM), and building it locally (ARM on ARM).

    After starting the server and sending a larger amount of data, I get the following:

    ➜  MoodleRay git:(main) ✗ docker logs ray
    SQLite database file [/app/database/database.sqlite] is created.
    Migrate 0_default_create_events
    Migrate 0_default_create_users
    Migrate 0_default_create_stored_events
    Authentication is disabled.
    [INFO] RoadRunner server started; version: 2.6.3, buildtime: 2021-12-03T11:37:00+0000
    [2022-03-10 14:26:25] production.ERROR: Cycle\Database\Driver\Driver::getPDO(): Return value must be of type PDO, null returned {"exception":"[object] (Cycle\\Database\\Exception\\StatementException(code: 0): Cycle\\Database\\Driver\\Driver::getPDO(): Return value must be of type PDO, null returned at /app/vendor/cycle/database/src/Driver/SQLite/SQLiteDriver.php:39)
    [stacktrace]
    #0 /app/vendor/cycle/database/src/Driver/Driver.php(322): Cycle\\Database\\Driver\\SQLite\\SQLiteDriver->mapException(Object(TypeError), 'BEGIN TRANSACTI...')
    #1 /app/vendor/cycle/orm/src/Transaction/Runner.php(159): Cycle\\Database\\Driver\\Driver->beginTransaction()
    #2 /app/vendor/cycle/orm/src/Transaction/Runner.php(58): Cycle\\ORM\\Transaction\\Runner->prepareTransaction(Object(Infrastructure\\CycleOrm\\Database\\Drivers\\SQLiteDriver))
    #3 /app/vendor/cycle/orm/src/Transaction/UnitOfWork.php(152): Cycle\\ORM\\Transaction\\Runner->run(Object(Cycle\\ORM\\Command\\Database\\Insert))
    #4 /app/vendor/cycle/orm/src/Transaction/UnitOfWork.php(372): Cycle\\ORM\\Transaction\\UnitOfWork->runCommand(Object(Cycle\\ORM\\Command\\Database\\Insert))
    #5 /app/vendor/cycle/orm/src/Transaction/UnitOfWork.php(424): Cycle\\ORM\\Transaction\\UnitOfWork->resolveSelfWithEmbedded(Object(Cycle\\ORM\\Transaction\\Tuple), Object(Cycle\\ORM\\RelationMap), false)
    #6 /app/vendor/cycle/orm/src/Transaction/UnitOfWork.php(233): Cycle\\ORM\\Transaction\\UnitOfWork->resolveRelations(Object(Cycle\\ORM\\Transaction\\Tuple))
    #7 /app/vendor/cycle/orm/src/Transaction/UnitOfWork.php(99): Cycle\\ORM\\Transaction\\UnitOfWork->walkPool()
    #8 /app/vendor/cycle/orm/src/EntityManager.php(47): Cycle\\ORM\\Transaction\\UnitOfWork->run()
    #9 /app/app/Modules/Events/Application/Commands/StoreEvent/Handler.php(36): Cycle\\ORM\\EntityManager->run()
    #10 /app/app/Modules/Events/Application/Commands/StoreEvent/Handler.php(47): Modules\\Events\\Application\\Commands\\StoreEvent\\Handler->handle(Object(Modules\\Events\\Application\\Commands\\StoreEvent\\Command))
    #11 /app/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php(96): Modules\\Events\\Application\\Commands\\StoreEvent\\Handler->__invoke(Object(App\\Commands\\HandleReceivedEvent))
    #12 /app/vendor/symfony/messenger/MessageBus.php(77): Symfony\\Component\\Messenger\\Middleware\\HandleMessageMiddleware->handle(Object(Symfony\\Component\\Messenger\\Envelope), Object(Symfony\\Component\\Messenger\\Middleware\\StackMiddleware))
    #13 /app/app/Infrastructure/Bus/Command/MessengerCommandBus.php(31): Symfony\\Component\\Messenger\\MessageBus->dispatch(Object(App\\Commands\\HandleReceivedEvent))
    #14 /app/app/Modules/Ray/Interfaces/Http/Controllers/StoreEventAction.php(41): Infrastructure\\Bus\\Command\\MessengerCommandBus->dispatch(Object(App\\Commands\\HandleReceivedEvent))
    #15 /app/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Modules\\Ray\\Interfaces\\Http\\Controllers\\StoreEventAction->__invoke(Object(Illuminate\\Http\\Request), Object(Infrastructure\\Bus\\Command\\MessengerCommandBus), Object(Illuminate\\Cache\\Repository), Object(Modules\\Ray\\EventHandler), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
    #16 /app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('__invoke', Array)
    #17 /app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(262): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Modules\\Ray\\Interfaces\\Http\\Controllers\\StoreEventAction), '__invoke')
    #18 /app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController()
    #19 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\\Routing\\Route->run()
    #20 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #21 /app/vendor/inertiajs/inertia-laravel/src/Middleware.php(82): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #22 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Inertia\\Middleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #23 /app/app/Interfaces/Http/Middleware/ShareInertiaData.php(30): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #24 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Interfaces\\Http\\Middleware\\ShareInertiaData->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #25 /app/app/Interfaces/Http/Middleware/SubstituteUuids.php(34): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #26 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Interfaces\\Http\\Middleware\\SubstituteUuids->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #27 /app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #28 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #29 /app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #30 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #31 /app/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #32 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\AuthenticateSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #33 /app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #34 /app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
    #35 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #36 /app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #37 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #38 /app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #39 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #40 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #41 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
    #42 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
    #43 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
    #44 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
    #45 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
    #46 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
    #47 /app/vendor/spiral/roadrunner-laravel/src/Dumper/Middleware.php(45): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #48 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Spiral\\RoadRunnerLaravel\\Dumper\\Middleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #49 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #50 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #51 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #52 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #53 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #54 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #55 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #56 /app/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #57 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #58 /app/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #59 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #60 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #61 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
    #62 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
    #63 /app/vendor/spiral/roadrunner-laravel/src/Worker.php(113): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
    #64 /app/vendor/spiral/roadrunner-laravel/src/Console/Commands/StartCommand.php(112): Spiral\\RoadRunnerLaravel\\Worker->start(Object(Spiral\\RoadRunnerLaravel\\WorkerOptions))
    #65 /app/vendor/symfony/console/Command/Command.php(298): Spiral\\RoadRunnerLaravel\\Console\\Commands\\StartCommand->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\StreamOutput))
    #66 /app/vendor/symfony/console/Application.php(1005): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\StreamOutput))
    #67 /app/vendor/symfony/console/Application.php(299): Symfony\\Component\\Console\\Application->doRunCommand(Object(Spiral\\RoadRunnerLaravel\\Console\\Commands\\StartCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\StreamOutput))
    #68 /app/vendor/symfony/console/Application.php(171): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\StreamOutput))
    #69 /app/bin/rr-worker(74): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\StreamOutput))
    #70 {main}
    
    [previous exception] [object] (TypeError(code: 0): Cycle\\Database\\Driver\\Driver::getPDO(): Return value must be of type PDO, null returned at /app/vendor/cycle/database/src/Driver/Driver.php:662)
    [stacktrace]
    #0 /app/vendor/cycle/database/src/Driver/Driver.php(320): Cycle\\Database\\Driver\\Driver->getPDO()
    #1 /app/vendor/cycle/orm/src/Transaction/Runner.php(159): Cycle\\Database\\Driver\\Driver->beginTransaction()
    #2 /app/vendor/cycle/orm/src/Transaction/Runner.php(58): Cycle\\ORM\\Transaction\\Runner->prepareTransaction(Object(Infrastructure\\CycleOrm\\Database\\Drivers\\SQLiteDriver))
    #3 /app/vendor/cycle/orm/src/Transaction/UnitOfWork.php(152): Cycle\\ORM\\Transaction\\Runner->run(Object(Cycle\\ORM\\Command\\Database\\Insert))
    #4 /app/vendor/cycle/orm/src/Transaction/UnitOfWork.php(372): Cycle\\ORM\\Transaction\\UnitOfWork->runCommand(Object(Cycle\\ORM\\Command\\Database\\Insert))
    #5 /app/vendor/cycle/orm/src/Transaction/UnitOfWork.php(424): Cycle\\ORM\\Transaction\\UnitOfWork->resolveSelfWithEmbedded(Object(Cycle\\ORM\\Transaction\\Tuple), Object(Cycle\\ORM\\RelationMap), false)
    #6 /app/vendor/cycle/orm/src/Transaction/UnitOfWork.php(233): Cycle\\ORM\\Transaction\\UnitOfWork->resolveRelations(Object(Cycle\\ORM\\Transaction\\Tuple))
    #7 /app/vendor/cycle/orm/src/Transaction/UnitOfWork.php(99): Cycle\\ORM\\Transaction\\UnitOfWork->walkPool()
    #8 /app/vendor/cycle/orm/src/EntityManager.php(47): Cycle\\ORM\\Transaction\\UnitOfWork->run()
    #9 /app/app/Modules/Events/Application/Commands/StoreEvent/Handler.php(36): Cycle\\ORM\\EntityManager->run()
    #10 /app/app/Modules/Events/Application/Commands/StoreEvent/Handler.php(47): Modules\\Events\\Application\\Commands\\StoreEvent\\Handler->handle(Object(Modules\\Events\\Application\\Commands\\StoreEvent\\Command))
    #11 /app/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php(96): Modules\\Events\\Application\\Commands\\StoreEvent\\Handler->__invoke(Object(App\\Commands\\HandleReceivedEvent))
    #12 /app/vendor/symfony/messenger/MessageBus.php(77): Symfony\\Component\\Messenger\\Middleware\\HandleMessageMiddleware->handle(Object(Symfony\\Component\\Messenger\\Envelope), Object(Symfony\\Component\\Messenger\\Middleware\\StackMiddleware))
    #13 /app/app/Infrastructure/Bus/Command/MessengerCommandBus.php(31): Symfony\\Component\\Messenger\\MessageBus->dispatch(Object(App\\Commands\\HandleReceivedEvent))
    #14 /app/app/Modules/Ray/Interfaces/Http/Controllers/StoreEventAction.php(41): Infrastructure\\Bus\\Command\\MessengerCommandBus->dispatch(Object(App\\Commands\\HandleReceivedEvent))
    #15 /app/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Modules\\Ray\\Interfaces\\Http\\Controllers\\StoreEventAction->__invoke(Object(Illuminate\\Http\\Request), Object(Infrastructure\\Bus\\Command\\MessengerCommandBus), Object(Illuminate\\Cache\\Repository), Object(Modules\\Ray\\EventHandler), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
    #16 /app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('__invoke', Array)
    #17 /app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(262): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Modules\\Ray\\Interfaces\\Http\\Controllers\\StoreEventAction), '__invoke')
    #18 /app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController()
    #19 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\\Routing\\Route->run()
    #20 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #21 /app/vendor/inertiajs/inertia-laravel/src/Middleware.php(82): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #22 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Inertia\\Middleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #23 /app/app/Interfaces/Http/Middleware/ShareInertiaData.php(30): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #24 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Interfaces\\Http\\Middleware\\ShareInertiaData->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #25 /app/app/Interfaces/Http/Middleware/SubstituteUuids.php(34): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #26 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Interfaces\\Http\\Middleware\\SubstituteUuids->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #27 /app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #28 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #29 /app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #30 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #31 /app/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #32 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\AuthenticateSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #33 /app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #34 /app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
    #35 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #36 /app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #37 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #38 /app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #39 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #40 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #41 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
    #42 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
    #43 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
    #44 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
    #45 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
    #46 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
    #47 /app/vendor/spiral/roadrunner-laravel/src/Dumper/Middleware.php(45): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #48 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Spiral\\RoadRunnerLaravel\\Dumper\\Middleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #49 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #50 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #51 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #52 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #53 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #54 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #55 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #56 /app/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #57 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #58 /app/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #59 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #60 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #61 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
    #62 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
    #63 /app/vendor/spiral/roadrunner-laravel/src/Worker.php(113): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
    #64 /app/vendor/spiral/roadrunner-laravel/src/Console/Commands/StartCommand.php(112): Spiral\\RoadRunnerLaravel\\Worker->start(Object(Spiral\\RoadRunnerLaravel\\WorkerOptions))
    #65 /app/vendor/symfony/console/Command/Command.php(298): Spiral\\RoadRunnerLaravel\\Console\\Commands\\StartCommand->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\StreamOutput))
    #66 /app/vendor/symfony/console/Application.php(1005): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\StreamOutput))
    #67 /app/vendor/symfony/console/Application.php(299): Symfony\\Component\\Console\\Application->doRunCommand(Object(Spiral\\RoadRunnerLaravel\\Console\\Commands\\StartCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\StreamOutput))
    #68 /app/vendor/symfony/console/Application.php(171): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\StreamOutput))
    #69 /app/bin/rr-worker(74): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\StreamOutput))
    #70 {main}
    "}
    +---------+------------------------------------------------------+
    |  date   |  Thu, 10 Mar 2022 14:26:28 +0000                     |
    |  source |  setup.php on line 441                               |
    |  file   |  /Users/nicols/Sites/moodles/sm/moodle/lib/setup.php |
    +---------+------------------------------------------------------+
     RAY  Log
    
      1▕ array:4 [
      2▕   "identifer" => "asdf"
      3▕   "component" => "core"
      4▕   "a" => null
      5▕   "lang" => "en"
      6▕ ]
    
    
    bug help wanted question 
    opened by andrewnicols 4
  • Using vue-ray, or js-ray etc - In browser Ray is being blocked by CORS policy

    Using vue-ray, or js-ray etc - In browser Ray is being blocked by CORS policy

    CORS allowed headers are missing.

    Still didn't dive into source code. Is this something you would accept a PR?

    Or you see this is missing, and easy fix on your end?

    image

    opened by ijpatricio 4
  • Error on long data dump

    Error on long data dump

    v2.0.0-beta1

    [previous exception] [object] (PDOException(code: 22001): SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'payload' at row 1 at /app/vendor/cycle/database/src/Driver/Driver.php:443)
    

    I think it possible to use blob cell for very long data.

    bug improvement 
    opened by roxblnfk 2
  • mail server seems to cache emails and is not refreshing

    mail server seems to cache emails and is not refreshing

    hi, I have found some strange behavior.

    I am using buggregator as a smtp server, but it keeps showing the same email message over and over.

    not sure if it caches it somehow or is not refreshing or something...

    cheers, dan

    bug 
    opened by danielzzz 2
  • is it possible to password protect the dashboard

    is it possible to password protect the dashboard

    hi,

    is it possible to somehow password protect the dashboard?

    this would be useful for tracking live servers. I know I could tunnel it to my local installation, but with more developers it get's a bit complicated.

    thanks, cheers, dan

    enhancement 
    opened by danielzzz 2
  • Use termwind to format console output

    Use termwind to format console output

    Termwind allows you to build unique and beautiful PHP command-line applications, using the Tailwind CSS API. In short, it's like Tailwind CSS, but for the PHP command-line applications.

    See https://github.com/nunomaduro/termwind

    enhancement 
    opened by butschster 1
  • GUI improvements

    GUI improvements

    • Get rid of left sidebar in list of events
    • Add better support for dark theme
    • Turn off "Projects" and "Transactions" sections in menu

    fixed #104

    enhancement usability 
    opened by butschster 0
  • Labels for screens

    Labels for screens

    Hi

    Is it possible to have the screen label in the selector itself, instead just the blue circle? If many screens are opened it is hard to know which one is which.

    Also, is it possible not to automatically change the active screen when a message is received. If I am currently reviewing a message and new one is received in another screen, I am automatically moved to the new screen. Instead of automatically change the active screen, maybe just highlight the screen button on the screen selector on the top.

    Thanks galiganu

    help wanted discussion usability 
    opened by galiganu 0
  • Clear screen button clears all the screens, not only the current one

    Clear screen button clears all the screens, not only the current one

    Hi

    The Clear Screen button from the top-right corner it clears all the screens info. I was expecting that this button will clear the info from the current screen and leave all other screens untouched. This is useful when you debug 2 environments and each environment has its screen.

    Thanks galiganu

    bug 
    opened by galiganu 0
  • Unraid Community App

    Unraid Community App

    Lots of businesses / dev teams run unraid for files which have community apps, which allow Dockers to be pulled in

    Would be super if this was on that marketplace (its all free btw)

    help wanted 
    opened by matthiscock 1
Releases(v2.0.0-rc.2)
  • v2.0.0-rc.2(Dec 15, 2022)

    What's Changed

    • Update README.md - remove unexisting sub-title from navigarion tree by @roxblnfk in https://github.com/buggregator/app/pull/118
    • Added basic functionality to show HTTP request info, should close #70 by @chorry in https://github.com/buggregator/app/pull/119

    New Contributors

    • @roxblnfk made their first contribution in https://github.com/buggregator/app/pull/118

    Full Changelog: https://github.com/buggregator/app/compare/v2.0.0-rc.1...v2.0.0-rc.2

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-rc.1(Dec 7, 2022)

    What's Changed

    • Fixes the problem with var-dumper with long running applications by @butschster in https://github.com/buggregator/app/pull/116

    Full Changelog: https://github.com/buggregator/app/compare/v2.0.0-beta6...v2.0.0-beta7

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-beta6(Dec 7, 2022)

    What's Changed

    • Show mapping of variables which were available within specific sentry frame by @chorry in https://github.com/buggregator/app/pull/115

    New Contributors

    • @chorry made their first contribution in https://github.com/buggregator/app/pull/115

    Full Changelog: https://github.com/buggregator/app/compare/v2.0.0-beta5...v2.0.0-beta6

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-beta5(Nov 23, 2022)

    What's Changed

    • Fixes delimiter for var dumper logs. by @butschster in https://github.com/buggregator/app/pull/112

    Full Changelog: https://github.com/buggregator/app/compare/v2.0.0-beta4...v2.0.0-beta5

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-beta4(Nov 21, 2022)

    What's Changed

    • Fixes problem with receiving logs from monolog in Long running applications by @butschster in https://github.com/buggregator/app/pull/107
    • Updates column type for payload field by @butschster in https://github.com/buggregator/app/pull/108
    • GUI improvements by @butschster in https://github.com/buggregator/app/pull/110
    docker run --pull always -p 23517:8000 -p 1025:1025 -p 9912:9912 -p 9913:9913 butschster/buggregator:v2.0.0-beta4
    

    Full Changelog: https://github.com/buggregator/app/compare/v2.0.0-beta3...v2.0.0-beta4

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-beta3(Oct 28, 2022)

    What's Changed

    • Add projects for events by @js361014 in https://github.com/buggregator/app/pull/92
    • Add event_payload_check trigger migration by @js361014 in https://github.com/buggregator/app/pull/89
    • Added json link for every event by @AnastasiaArt in https://github.com/buggregator/app/pull/99
    • Added performance module by @js361014 in https://github.com/buggregator/app/pull/100
    docker run --pull always -p 23517:8000 -p 1025:1025 -p 9912:9912 -p 9913:9913 butschster/buggregator:v2.0.0-beta3
    

    Full Changelog: https://github.com/buggregator/app/compare/v2.0.0-beta2...v2.0.0-beta3

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-beta2(Jul 30, 2022)

    What's Changed

    • Add tag 'beta' for docker builds with for pre releases by @butschster in https://github.com/buggregator/app/pull/95

    Not you may use latest beta release with with tag beta

    docker run --pull always -p 23517:8000 -p 1025:1025 -p 9912:9912 -p 9913:9913 butschster/buggregator:beta
    

    Full Changelog: https://github.com/buggregator/app/compare/v2.0.0-beta1...v2.0.0-beta2

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-beta1(Jul 30, 2022)

    There is no more problems with database locking. Since this moment buggregator uses mysql out of the box, but if you want you may use an external database.

    To try the release use command below:

    docker run --pull always -p 23517:8000 -p 1025:1025 -p 9912:9912 -p 9913:9913 butschster/buggregator:v2.0.0-beta1
    

    Thank you for using buggregator!


    What's Changed

    • Adds CORS headers to RoadRunner server by @HazyAlex in https://github.com/buggregator/app/pull/73
    • Show all event's exceptions by @js361014 in https://github.com/buggregator/app/pull/82
    • Show event's user data by @js361014 in https://github.com/buggregator/app/pull/85
    • Showing custom tags by @js361014 in https://github.com/buggregator/app/pull/84
    • Show event's contexts by @js361014 in https://github.com/buggregator/app/pull/86
    • Show event transaction name by @js361014 in https://github.com/buggregator/app/pull/81
    • Added icon of unread event for navigation link by @AnastasiaArt in https://github.com/buggregator/app/pull/88
    • Server upgrade by @butschster in https://github.com/buggregator/app/pull/91

    New Contributors

    • @HazyAlex made their first contribution in https://github.com/buggregator/app/pull/73
    • @js361014 made their first contribution in https://github.com/buggregator/app/pull/80

    Thank you guys for your contribution!


    Full Changelog: https://github.com/buggregator/app/compare/v2.0.0-beta...v2.0.0-beta1

    Source code(tar.gz)
    Source code(zip)
  • v1.19.0(Feb 22, 2022)

    What's Changed

    • Adds CORS headers to Swoole server by @HazyAlex in https://github.com/buggregator/app/pull/74

    Full Changelog: https://github.com/buggregator/app/compare/v1.18.3...v1.19.0

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-beta(Dec 17, 2021)

    docker run --pull always -p 23517:8000 -p 1025:1025 -p 9912:9912 -p 9913:9913 butschster/buggregator:v2.0.0-beta
    

    What's Changed

    • Fixed typo in README.md by @kastahov in https://github.com/buggregator/app/pull/12
    • added node in docker-compose.yml by @AnastasiaArt in https://github.com/buggregator/app/pull/19
    • Feature/change icons by @AnastasiaArt in https://github.com/buggregator/app/pull/23
    • Fix/28 by @butschster in https://github.com/buggregator/app/pull/30
    • [feature] Console output in a GUI by @kastahov in https://github.com/buggregator/app/pull/31
    • Fixed problem with dissapearing emails from list by @butschster in https://github.com/buggregator/app/pull/32
    • Replaces Swoole with Roadrunner by @butschster in https://github.com/buggregator/app/pull/35
    • Adds ability to download roadrunner binary via CLI by @butschster in https://github.com/buggregator/app/pull/37
    • Added Sentry events in a separate section by @butschster in https://github.com/buggregator/app/pull/40
    • Replaces Eloquent with CycleORM v2.x by @butschster in https://github.com/buggregator/app/pull/44
    • Replaces Spiral container with laravel ProxyContainer by @butschster in https://github.com/buggregator/app/pull/53
    • Adds inspector support with timeline chart by @AnastasiaArt in https://github.com/buggregator/app/pull/50
    • Adds ability to enable password protection for dashboard by @butschster in https://github.com/buggregator/app/pull/58
    • fixed bug of terminal by @AnastasiaArt in https://github.com/buggregator/app/pull/64
    • Starts working on dark theme by @butschster in https://github.com/buggregator/app/pull/49

    New Contributors

    • @kastahov made their first contribution in https://github.com/buggregator/app/pull/12
    • @AnastasiaArt made their first contribution in https://github.com/buggregator/app/pull/19

    Full Changelog: https://github.com/buggregator/app/compare/v1.18.1...v2.0.0-beta

    Source code(tar.gz)
    Source code(zip)
  • v1.18.3(Nov 30, 2021)

  • v1.18(Sep 6, 2021)

    You can add a new channel to config file config/logging.php

    'channels' => [
         ...
    
        'socket' => [
            'driver' => 'monolog',
            'level' => env('LOG_LEVEL', 'debug'),
            'handler' => \Monolog\Handler\SocketHandler::class,
            'formatter' => \Monolog\Formatter\JsonFormatter::class,
            'handler_with' => [
                'connectionString' => env('LOG_SOCKET_URL', '127.0.0.1:9913'),
            ],
        ],
    ]
    

    the set default channel to socket

    LOG_CHANNEL=socket
    LOG_SOCKET_URL=127.0.0.1:9913
    

    Logs

    Source code(tar.gz)
    Source code(zip)
  • v1.17(Sep 5, 2021)

    1. Fixed problem with ray measure units

    2. Added ability to suppress cli output for smtp, var-dumper, ray and sentry

    If you don't want to see dump output in your terminal, you can disable it through ENV variables:

    CLI_SMTP_STREAM=false
    CLI_VAR_DUMPER_STREAM=false
    CLI_SENTRY_STREAM=false
    CLI_RAY_STREAM=false
    

    Example

    docker run --pull always --env CLI_SMTP_STREAM=false --env CLI_SENTRY_STREAM=false -p 23517:8000 -p 1025:1025 -p 9912:9912 butschster/debugger:latest
    
    1. Fixed app name
    2. Fixed debug int values with spatie/ray
    Source code(tar.gz)
    Source code(zip)
  • v1.16.2(Sep 4, 2021)

  • v1.16(Sep 3, 2021)

  • v1.15(Sep 2, 2021)

    image 41 (4)

    • Added support for rendering Sentry errors in a terminal
    • added support for ray event for console
    • added support for ray query for console
    • added support for ray job for console
    • added support for ray view for console
    Source code(tar.gz)
    Source code(zip)
  • v1.12(Sep 1, 2021)

    Also you can see event from VarDumper or spatie/ray in a bash terminal instead of GUI.

    See https://symfony.com/doc/current/components/var_dumper.html#the-dump-server

    If you want to send data to a dump server you need to configure your .env

    VAR_DUMPER_FORMAT=server
    VAR_DUMPER_SERVER=127.0.0.1:9912
    

    Group 48 (1)

    Source code(tar.gz)
    Source code(zip)
  • v1.11(Aug 27, 2021)

    Now you can use RayServer as an email testing tool.

    Just configure your .env for mail

    MAIL_MAILER=smtp
    MAIL_HOST=127.0.0.1
    MAIL_PORT=1025
    
    Source code(tar.gz)
    Source code(zip)
  • v1.10.4(Aug 24, 2021)

  • v1.10.3(Aug 20, 2021)

  • v1.10.2(Aug 20, 2021)

  • v1.10.1(Aug 20, 2021)

Owner
Pavel Buchnev
You can get in touch with me via telegram @butschster
Pavel Buchnev
Runs artisan command in web application

Laravel Terminal Installation composer require recca0120/terminal --dev OR Add Presenter to your composer.json file: "require-dev": { "recca0120/t

Recca Tsai 783 Dec 27, 2022
Php Debugger to run in terminal to debug your code easily.

What is Dephpugger? Dephpugger (read depugger) is an open source lib to make a debug in php direct in terminal, without necessary configure an IDE. Th

Renato Cassino 190 Dec 3, 2022
Php Debugger to run in terminal to debug your code easily.

What is Dephpugger? Dephpugger (read depugger) is an open source library that allows a developer to debug in php direct in terminal, without necessary

Renato Cassino 190 Dec 3, 2022
A simple Craft module, inspired by Mildly Geeky's "Kint", to debug Twig within your browser

A simple Craft module, inspired by Mildly Geeky's "Kint", to debug Twig within your browser

TrendyMinds 4 Feb 2, 2022
Laravel Debugbar (Integrates PHP Debug Bar)

Laravel Debugbar This is a package to integrate PHP Debug Bar with Laravel. It includes a ServiceProvider to register the debugbar and attach it to th

Barry vd. Heuvel 14.8k Jan 9, 2023
An elegant debug assistant for the Laravel framework.

Introduction Laravel Telescope is an elegant debug assistant for the Laravel framework. Telescope provides insight into the requests coming into your

The Laravel Framework 4.4k Dec 27, 2022
Debug bar for PHP

PHP Debug Bar Displays a debug bar in the browser with information from php. No more var_dump() in your code! Features: Generic debug bar Easy to inte

Maxime Bouroumeau-Fuseau 4k Jan 8, 2023
PHP Debug Console

PHP Console A web console to try your PHP code into Creating a test file or using php's interactive mode can be a bit cumbersome to try random php sni

Jordi Boggiano 523 Nov 7, 2022
Extends the Debug Bar plugin for the Sophi.io service

Debug Bar for Sophi.io Extends the Debug Bar plugin for the Sophi.io service Requirements PHP 7.4+ WordPress 5.6+ Sophi.io 1.1.0+ Debug Bar 1.0+ Insta

10up 2 Jun 22, 2022
A beautiful error page for Laravel apps

Ignition: a beautiful error page for Laravel apps Ignition is a beautiful and customizable error page for Laravel applications running on Laravel 5.5

Facade 2k Jan 1, 2023
Test your routes without hassle

Laravel Api Tester Live demo Try it out: laravel-api-tester.asva.by Docs Those are short and easy to read. Take a look. Interface FAQ Installation Req

Yauheni Prakopchyk 343 Nov 6, 2022
Restart a CLI process without loading the xdebug extension.

composer/xdebug-handler Restart a CLI process without loading the Xdebug extension, unless xdebug.mode=off. Originally written as part of composer/com

Composer 2.4k Dec 30, 2022
Clockwork - php dev tools in your browser - server-side component

Clockwork is a development tool for PHP available right in your browser. Clockwork gives you an insight into your application runtime - including requ

its 4.8k Dec 29, 2022
😎 Tracy: the addictive tool to ease debugging PHP code for cool developers. Friendly design, logging, profiler, advanced features like debugging AJAX calls or CLI support. You will love it.

Tracy - PHP debugger Introduction Tracy library is a useful helper for everyday PHP programmers. It helps you to: quickly detect and correct errors lo

Nette Foundation 1.6k Dec 23, 2022
The VarDumper component provides mechanisms for walking through any arbitrary PHP variable. It provides a better dump() function that you can use instead of var_dump().

VarDumper Component The VarDumper component provides mechanisms for walking through any arbitrary PHP variable. It provides a better dump() function t

Symfony 7.1k Jan 1, 2023
Generate Laravel test factories from your existing models

Laravel Test Factory Generator php artisan generate:model-factory This package will generate factories from your existing models so you can get starte

Marcel Pociot 923 Dec 16, 2022
An artisan command to tail your application logs

Easily tail your logs This package offers an artisan command to tail the application log. It supports daily and single logs on your local machine. To

Spatie 677 Dec 29, 2022
Laravel Dumper - Improve the default output of dump() and dd() in Laravel projects

Laravel Dumper Improve the default output of dump() and dd() in Laravel projects. Improves the default dump behavior for many core Laravel objects, in

Galahad 301 Dec 26, 2022
This package connects a Laravel Octance application with Tideways for PHP Monitoring, Profiling and Exception Tracking.

Tideways Middleware for Laravel Octane This package connects a Laravel Octance application with Tideways for PHP Monitoring, Profiling and Exception T

Tideways 7 Jan 6, 2022