The biggest issue with Herd Pro is that you cannot use Reverb out of the box with a site that has SSL enabled. Here is the workaround to get it working.
First create two sites. The two I have here are as follows:
- reverb-ssl - This is a new Laravel 11 project using Breeze for the ease of Inertia. This also follows the setup for Reverb line by line.
- wss-reverb-ssl - This is an empty directory, we are going to use this soley to edit an Nginx config and setup a proxy to the reverb service.
Of note is that I'm using Herd Pro as well, so all additional services are being used directly though Herd Pro itself.
Onec those two sites have their SSL's as provisioned by Herd, we'll now fire up the Reverb Service. You can see I'm running both MySQL and Reverb as my Services and both are active.
Once this is running copy the enviroment variables and we'll adjust our Laravel Project which is the reverb-ssl directory.
The updated .env variables should now be:
APP_URL=https://reverb-ssl.test
REVERB_APP_ID=1001
REVERB_APP_KEY=laravel-herd
REVERB_APP_SECRET=secret
REVERB_HOST="wss-reverb-ssl.test"
REVERB_PORT=8080
REVERB_SCHEME=http
Notice that they match the app ID, and that the nost matches that additional directory that we setup and added an SSL to. This is very important as this Host is where we are going to now edit an Nginx conf file and setup our proxy.
In your ~/Library/Application Support/Herd/config/valet/Nginx/ directory, there will be a wss-reverb-ssl.test file. Open that and you'll find a faily standard Nginx config file. We're going to replace a few lines.
You'll want to find these lines:
location / {
rewrite ^ "/Applications/Herd.app/Contents/Resources/valet/server.php" last;
}
And replace them with these:
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass $herd_sock;
fastcgi_index "/Applications/Herd.app/Contents/Resources/valet/server.php";
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME "/Applications/Herd.app/Contents/Resources/valet/server.php";
fastcgi_param HERD_HOME "/Users/conrad/Library/Application Support/Herd";
fastcgi_param PATH_INFO $fastcgi_path_info;
}
Once this is saved, stop, and restart the general Herd services (Nginx, PHP, DNSMasq) and you should be all set. Visting reverb-ssl.test will now have the ability to listen to Reverb via Echo!



Excellent article, you solved my problem after days of frustration. Thank you.