Expose: An Ngrok Alternative Written in PHP


June 18th, 2020


Expose is a tunnel application by Beyond Code that allows you to share your local websites with others via the internet, written in PHP.

Expose just got released!

It's a beautiful, fully open-source tunneling service (like ngrok) written entirely in PHP.
You can self-host it, use custom subdomains, add basic authentication, and much more!https://t.co/1wjW9E8fce

— Marcel Pociot (@marcelpociot) June 17, 2020

It works by installing the expose composer binary via the composer CLI:

composer global require beyondcode/expose

cd path/to/project
expose .

If you want to use the sharedwithexpose.com domain, you’ll need to sign up for a Beyond Code account (free). Otherwise, you can run your own expose server. Here’s what the CLI looks like once you run expose:

Like Ngrok, Expose has a command-line tool (the client) and a server, which work hand-in-hand to tunnel local websites publicly. It also includes an excellent web-based dashboard on localhost:4040 to inspect requests and responses, replay requests, and copy the equivalent curl command:

Screenshot credit: Beyond Code GmbH

Under the hood, Expose uses the ReactPHP framework. If you are not familiar with ReactPHP, I recommend checking out Marcel’s Learning ReactPHP Video Course to learn how you can use this robust framework with PHP.

Learn More

You can learn more about Expose by checking out the Expose documentation. To learn more about the source code that powers the client and the server, check out beyondcode/expose on GitHub.

Filed in:

Paul Redmond

Full stack web developer. Author of Lumen Programming Guide and Docker for PHP Developers.