HTTPS and proxy

Ports 80 and 443 in use

Lerd, Laravel Herd, Valet, Apache, Caddy, MAMP, DDEV or a container holds the proxy's port: how Joppa names it and offers the right way to stop it.

Joppa’s proxy needs port 443 (HTTPS) and, for the redirect, port 80. Only one program at a time can listen on a port: if another local server already holds them, Joppa can’t start its proxy. It then tells you who holds them and offers to stop it the way that tool expects, never by blindly killing a process.

The banner

When the proxy can’t start because the port is taken, the red banner at the top of the window shows “Port 443 is held by …” with what Joppa found: the tool’s name, the PID, the user and the executable’s path (or the container and its runtime). The button does the rest: it stops the occupant, waits for the port to be freed, then starts the proxy.

The proxy banner: port 443 is held by Laravel Herd, with “Stop Laravel Herd and start”

Occupant Button What Joppa does
Lerd (its nginx, in Podman) Stop Lerd and start lerd stop
Laravel Herd Stop Laravel Herd and start herd stop (without the herd command: quit Herd from its menu bar)
Laravel Valet (Homebrew’s nginx run as root) Stop Laravel Valet and start brew services stop nginx as root, with your password
macOS’s Apache (/usr/sbin/httpd) Stop Apache (macOS) and start apachectl stop, with your password
Homebrew service (nginx, httpd, caddy…) Stop … and start brew services stop <formula>
systemd service (Linux: nginx, apache2, caddy…) Stop … and start systemctl stop <unit>, with your password
Caddy Stop Caddy and start caddy stop
MAMP Stop MAMP and start its stopApache.sh script, with your password
DDEV (its ddev-router) Stop DDEV and start ddev poweroff
Laravel Sail or Traefik, in a container Stop Laravel Sail and start (or Traefik) docker stop <container> (or podman stop)
Another container Stop the container and start docker stop <container> (or podman stop)
Another process of yours End … and start It sends it a stop signal, after you confirm

The equivalent command is shown next to the button, so you can run it yourself if you prefer. Before acting, Joppa checks that the occupant hasn’t changed since it was shown.

When the occupant is Lerd, Herd, DDEV or Sail, the banner also offers Move its sites to Joppa…: see Migrating from Lerd, Herd, DDEV or Sail.

Port 80 only

If only port 80 is taken, the proxy still starts: HTTPS works, but http:// no longer redirects to https://. Settings › Proxy then names what holds port 80 and offers Free port 80: Joppa stops it the same way, then restarts its proxy with the redirect.

Lerd

Lerd also serves .test sites on ports 80 and 443: the two can’t serve at the same time. When the proxy starts, if Lerd’s nginx holds the ports, the banner offers Stop Lerd and start.

Stopping Lerd stops its containers (nginx, PHP-FPM, services), but not its DNS resolution: your .test domains keep pointing to your machine, and Joppa leaves it in place (see Resolving .test domains).

getjoppa.com › support

Loading

Not going through? Write to [email protected]. Just a question: [email protected].