Invoker Logo

Invoker — The no-bull Laravel tool

Invoker

Opening local projects#

You can open any local Laravel project with Invoker by using the "Open local project" button on the Invoker home screen. Invoker will prompt you to select the folder that contains your Laravel project. After you selected your project folder, Invoker scans your project for Eloquent models, Artisan commands and Mailables and you are ready to go.

In order for Invoker to connect to your application database, it will use the configuration of your Laravel app and models. You can connect to projects that are on remote servers, or projects within Homestead/Docker, using the SSH method.

Opening remote projects via SSH#

To connect to a Laravel project via SSH, choose "Set up SSH connection" on the Invoker home screen. This opens up a modal with all the available SSH connection settings.

Once you have saved the SSH settings, you can click on the project to connect Invoker to your codebase.

Laravel Vapor#

If you are using a project hosted on Laravel Vapor, you can use Invoker by accessing your local codebase and establish an SSH tunnel to your Vapor/AWS database.

We will look into how we can simplify the setup in future versions of Invoker, but in the meantime you can use this workaround to connect Invoker with a database on AWS/Laravel Vapor:

Create a Jumpbox on Laravel Vapor, to connect to your database (depending on your database setup, this might not be required)

Create an SSH tunnel to your jumpbox for your database port. Replace YOUR-VAPOR-JUMPBOX-PRIVATE-KEY with the location of the private key used for your jumpbox and YOUR-VAPOR-JUMPBOX-HOST with the host of your Vapor jumpbox.

ssh -i ~/YOUR-VAPOR-JUMPBOX-PRIVATE-KEY -N -L 13306:[database host]:3306 ec2-user@YOUR-VAPOR-JUMPBOX-HOST 

Modify your .env file to include the username and password from your Vapor provisioned database, as well as the tunneled port of your Jumpbox (13306 in the example above).

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=13306
DB_DATABASE=vapor
DB_USERNAME=vapor
DB_PASSWORD=secret

In Invoker, you can now open your local project and it will connect to your Vapor hosted database, through the Jumpbox SSH tunnel.

Docker connections#

Invoker 2.0 does not have the same seamless Docker connections as Tinkerwell (yet). We are working on a better integration within the next versions but don't have an ETA for this at the moment. To connect Invoker to your Docker container, your container needs to allow incoming connections via SSH. Follow the "Opening remote projects via SSH" documentation to learn how to connect to remote servers.

Connection configuration#

After you have created a local or remote connection, you can customize certain settings for the given project. This includes the way that Invoker persists its settings, the ability to scan for models, mailables and notifications in your vendor folder, as well as choose a color that will be used on the project list to quickly identify projects.

Persist settings in project directory#

By default, Invoker does not persist the project specific settings (such as visible columns, accessors, widgets, and dashboards) in the project directory - but only in your local user path. This means that all the widgets and dashboards that you create, will not be visible to other teammembers. If you want to share these settings with others, turn this on. Note: Beware that Invoker will write these settings to your project when you are connected via SSH.

Include vendor folder#

This setting determines if Invoker should not only scan your application for Eloquent models, mailables, and notifications, but also all of your composer dependencies. This can be very helpful when your dependencies ship their own models or mailables that you want to inspect - such as Laravel Cashier. Enabling this setting might introduce longer loading times when opening a project.

Color#

The project color that you pick here will be used on the project list. You can use this setting to distinguish a production environment from a local development environment.