A beautiful, fully open-source, tunneling service - written in pure PHP

Related tags

Configuration expose
Overview

Expose

Latest Version on Packagist Quality Score Total Downloads

A completely open-source ngrok alternative - written in pure PHP.

Documentation

For installation instructions, in-depth usage and deployment details, please take a look at the official documentation.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Comments
  • DNS error

    DNS error

    while running expose share

    this the error i am getting Could not connect to the server. Connection to sharedwithexpose.com:443 failed during DNS lookup: DNS error

    opened by ManojKiranA 42
  • redirecting to local domain

    redirecting to local domain

    • using laradock to host locally
    • expose share hello.test --subdomain=hello
    • Auth::routes(['verify' => true]); in routes file
    • $this->middleware('verified'); in controller constructor
    • When I hit my public url e.g. hello.sharedwithexpose.com it redirects me to local domain hello.test

    ngrok simply goes to the same public url not the local domain

    opened by sohaibilyas 31
  • Allowed memory size of..

    Allowed memory size of..

    Hi,

    I whenever the pages loads images this error happen. I thought it was php memory limit or Homestead limit, but it it's not. I didn't find any info about this error, that's why I posted here. Any help is much appreciated.

    expose_error

    opened by filippesic 26
  • Questions regarding Laravel and expose

    Questions regarding Laravel and expose

    I have a couple of questions regarding using Laravel with expose:

    • Laravel's route() and url() helpers both generate absolute URLs by default. This means all links in the site include the local URL, not the public "expose" URL. What's the best practice solution for resolving this situation when using expose?

    • should the .env value for APP_URL still contain the local URL, or the public "expose" URL?

    I've noticed a bunch of issues here already which relate to one of the above, but haven't really seen a definitive answer. I'm more than happy to create a PR adding some documentation around this, once I understand how things should be handled.

    opened by jeff-h 26
  • 504 Timeout when trying to open expose.mydomain.com/users

    504 Timeout when trying to open expose.mydomain.com/users

    server is running on Laravel Forge. php 7.3

    expose.mydomain.com, /sites and /settings is working, but when clicking the users tab, there is a 504 timeout and a generic nginx error page.

    opened by goellner 21
  • expose command not found?

    expose command not found?

    composer --version
    Composer version 1.10.9 2020-07-16 12:57:00
    

    installation:

    composer global require beyondcode/expose

    Second time outpout:

    composer global require beyondcode/expose
    Changed current directory to /root/.composer
    Using version ^1.0 for beyondcode/expose
    ./composer.json has been updated
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Nothing to install or update
    Generating autoload files
    1 package you are using is looking for funding.
    Use the `composer fund` command to find out more!
    

    trying expose command:

    expose serve my-domain.com
    -bash: expose: command not found
    
    opened by scratchoo 14
  • Custom domain on Expose Pro not working

    Custom domain on Expose Pro not working

    I've registered a custom domain on my account:

    image

    I've then ran the command to make this default:

    expose default-domain tim.aero.dev --server=eu-1
    

    However, when I run expose I get:

    image

    opened by timrspratt 12
  • Exposed localhost stuck loading

    Exposed localhost stuck loading

    I'm exposing a .NET Core 3.14 project running on IIS express.

    expose share https://localhost:44332/ --subdomain=mySubDomain

    the registry is successful and calling the page results in an entry in the dashboard/console.

    However, there seems to be no actual response occurring, calling the site through the browser just results in a seemingly infinite loading icon in the browser tab.

    +--------+--------+----------+---------------------+----------+
    | Method | URI    | Response | Time                | Duration |
    +--------+--------+----------+---------------------+----------+
    | GET    | /files |          | 2020-11-20 09:43:56 | 4ms      |
    | GET    | /files |          | 2020-11-20 09:40:12 | 223503ms |
    | GET    | /      |          | 2020-11-20 09:38:49 | 307309ms |
    +--------+--------+----------+---------------------+----------+
    

    Not the absurd duration for the latter calls. The dashboard lacks a response as well.

    image

    Am I missing some configuration or something else? So far I tried:

    • running expose https://localhost:44332/ --subdomain=mySubDomain in different variations (no subdomain, leaving out share keyword)
    • running through regular http; I suspected the IIS SSL being the problem but it works completely fine with ngrok.
    opened by marwalsch 12
  • Help to get this working

    Help to get this working

    It sounds like at least some of you have been able to get this working?

    I would like to create my own expose server to tunnel a TCP Port on a local computer just like nGrok can do. I created a DO Docker droplet. Installed expose Not sure what to do next?

    What app do I download to the client? With nGrok there's a Windows/Mac/Linux app for the local computer that's going to share it's port.

    What command(s) do I run on my server?

    I've gone through the documentation many times and I'm missing a few key steps...

    Thanks for taking pity on me, anyone kind enough to help! :-)

    opened by MeestorX 11
  • PHP 8.0 Support

    PHP 8.0 Support

    This PR adds PHP 8.0 support for Expose

    It looks like the following also need to be updated to support PHP 8.

    • ~~https://github.com/laravel-zero/framework/pull/421~~
    • ~~https://github.com/laminas/laminas-http/pull/45~~
    • ~~https://github.com/laminas/laminas-validator/pull/75~~
    opened by octoper 11
  • Issues using with Homestead

    Issues using with Homestead

    I've tried using this inside and outside of Laravel Homestead with issues. Expose does give me a expose-url and shows the initial connection (when I visit the expose-url) but it never ever loads, it just sits there loading a blank page forever until it times out.

    Any ideas what's going on?

    opened by Braunson 9
  • Fix `save-state`, `set-output` and Node.js 12 actions deprecation warnings

    Fix `save-state`, `set-output` and Node.js 12 actions deprecation warnings

    ::save-state and ::set-output in Github actions have been deprecated. The first commit replaces with Github's recommendedEnvironment files.

    The second commit upgrades the actions actions/checkout@v2 and docker/build-push-action@v2 that are both using the aforementioned deprecated ::save-state and ::set-output as well being based on Node.js 12 that's also deprecated.

    By merging this PR, the annotations in the Summary page of the previous run should be fixed; See sample run https://github.com/SamuelMwangiW/expose/actions/runs/3850300033

    opened by SamuelMwangiW 1
  • Name not resolved

    Name not resolved

    Hi,

    I came across expose and I wanted to share my page with others, but the page seems to not resolve the app.js.

    I am using VITE, Vue.js and Laravel. I am getting the following error message in console:

    Screenshot 2023-01-04 at 13 52 03

    The hostname has been blurred/removed, but I can confirm these are the exact same.

    How do I resolve this issue?

    EDIT 1:

    Non of the issues that were already issued on this github repository helped fix my issue. I tried the following:

    expose share https://mydomain.test --subdomain=mydomain, does not fix the issue. VITE still loads the .test app.js file.

    Changing the APP_URL and ASSET_URL into the expose url. VITE still loads the .test app.js file.

    opened by KickSchutte67 0
  • syntax error with v2.5.0

    syntax error with v2.5.0

    Hey there, so I tried upgrading to 2.5.0 and then to share one of my local domains, but I am getting this error:

    Parse error: syntax error, unexpected token ")" in phar:///Users/gigi/.composer/vendor/beyondcode/expose/builds/expose/vendor/symfony/finder/Finder.php on line 636
    

    Here is info on php on my machine:

    ❯ ~ php -v
    PHP 8.0.23 (cli) (built: Sep  3 2022 12:20:56) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v4.0.23, Copyright (c) Zend Technologies
        with Zend OPcache v8.0.23, Copyright (c), by Zend Technologies
    

    So what I did was I downgraded to 2.4.0 and then it worked:

    ❯ ~ composer global update
    Changed current directory to /Users/gigi/.composer
    Loading composer repositories with package information
    Updating dependencies
    Lock file operations: 0 installs, 1 update, 0 removals
      - Downgrading beyondcode/expose (2.5.0 => 2.4.0)
    Writing lock file
    Installing dependencies from lock file (including require-dev)
    Package operations: 0 installs, 1 update, 0 removals
      - Downgrading beyondcode/expose (2.5.0 => 2.4.0): Extracting archive
    Generating autoload files
    No security vulnerability advisories found
    ❯ ~ expose share https://*************.test --domain=local*************.dev --server=us-1
    ------------------------------------------------------------
              A new Expose Update is available (2.5.0)
                 To update run: expose self-update
    ------------------------------------------------------------
                   Thank you for using Expose Pro
    ------------------------------------------------------------
    
    Shared URL:		*************.test:443
    Dashboard:		http://127.0.0.1:4040
    Public HTTP:		http://*************.local*************.dev
    Public HTTPS:		https://*************.local*************.dev
    
    ^C
    

    Then I tried upgrading again to 2.5.0 and running expose but it failed again:

    ❯ ~ composer global update
    Changed current directory to /Users/gigi/.composer
    Loading composer repositories with package information
    Updating dependencies
    Lock file operations: 0 installs, 1 update, 0 removals
      - Upgrading beyondcode/expose (2.4.0 => 2.5.0)
    Writing lock file
    Installing dependencies from lock file (including require-dev)
    Package operations: 0 installs, 1 update, 0 removals
      - Upgrading beyondcode/expose (2.4.0 => 2.5.0): Extracting archive
    Generating autoload files
    No security vulnerability advisories found
    ❯ ~ expose share https://*************.test --domain=local*************.dev --server=us-1
    PHP Parse error:  syntax error, unexpected token ")" in phar:///Users/gigi/.composer/vendor/beyondcode/expose/builds/expose/vendor/symfony/finder/Finder.php on line 636
    
    Parse error: syntax error, unexpected token ")" in phar:///Users/gigi/.composer/vendor/beyondcode/expose/builds/expose/vendor/symfony/finder/Finder.php on line 636
    ❯ ~
    
    opened by Gavrisimo 5
  • Error: Could not connect to the server ... failed during TLS handshake ...

    Error: Could not connect to the server ... failed during TLS handshake ...

    After creating an expose account, following the setup steps, I get the following error, when trying to expose my local site with the expose command: Could not connect to the server. Connection to eu-1.sharedwithexpose.com:443 failed during TLS handshake: Unable to complete TLS handshake: SSL operation failed with code 1. OpenSSL Error messages: error:14094419:SSL routines:ssl3_read_bytes:tlsv1 alert access denied. There are some open but unsolved issues similar to this, but maybe there is someone, who figured it out.

    opened by devutoo 1
  • No such server

    No such server

    Hello, I have just created account on https://expose.dev and reserved one domain sunil.in-1.sharedwithexpose.com After that I followed the official guide to install the expose in system. (https://expose.dev/docs/getting-started/installation) And Setup authentication token Then when I share the local site with expose share http://portfolio.test it gives some production error.

    In ServerAwareCommand.php line 105: No such server eu-1

    image

    Any guide, Please. @beyondcode Thanks

    opened by thesunilyadav 1
Releases(2.5.0)
  • 2.5.0(Dec 20, 2022)

    What's Changed

    • Add PHP 8.2 support by @mpociot in https://github.com/beyondcode/expose/pull/356
    • All Expose Dashboard settings now get stored/loaded from local storage

    New Contributors

    • @DevinNorgarb made their first contribution in https://github.com/beyondcode/expose/pull/353
    • @mnapoli made their first contribution in https://github.com/beyondcode/expose/pull/352
    • @SamuelMwangiW made their first contribution in https://github.com/beyondcode/expose/pull/357
    • @MrWeb made their first contribution in https://github.com/beyondcode/expose/pull/348

    Full Changelog: https://github.com/beyondcode/expose/compare/2.4.0...2.5.0

    Source code(tar.gz)
    Source code(zip)
  • 2.4.0(Oct 7, 2022)

    What's Changed

    • Add JSON viewer to dashboard by @mpociot in https://github.com/beyondcode/expose/pull/349
    • Add toggle to show request and response on the same tab by @mpociot in https://github.com/beyondcode/expose/pull/350
    • Add the ability to toggle sections by @mpociot in https://github.com/beyondcode/expose/pull/351

    Full Changelog: https://github.com/beyondcode/expose/compare/2.3.0...2.4.0

    Source code(tar.gz)
    Source code(zip)
  • 2.3.0(Aug 11, 2022)

    What's Changed

    • Docker container: access linux host by @Deyjandi in https://github.com/beyondcode/expose/pull/293
    • Fixed an issue that showed a PHP warning when not using basic authentication
    • Added support for custom HTTPS ports

    New Contributors

    • @Deyjandi made their first contribution in https://github.com/beyondcode/expose/pull/293

    Full Changelog: https://github.com/beyondcode/expose/compare/2.2.2...2.3.0

    Source code(tar.gz)
    Source code(zip)
  • 2.2.3(Jul 16, 2022)

    What's Changed

    • Docker container: access linux host by @Deyjandi in https://github.com/beyondcode/expose/pull/293

    New Contributors

    • @Deyjandi made their first contribution in https://github.com/beyondcode/expose/pull/293

    Full Changelog: https://github.com/beyondcode/expose/compare/2.2.2...2.2.3

    Source code(tar.gz)
    Source code(zip)
  • 2.2.2(Jul 4, 2022)

  • 2.2.1(Jul 4, 2022)

    What's Changed

    • Fix regression issue and re-add basic auth support by @mpociot in https://github.com/beyondcode/expose/pull/328

    Full Changelog: https://github.com/beyondcode/expose/compare/2.2.0...2.2.1

    Source code(tar.gz)
    Source code(zip)
  • 2.2.0(Mar 17, 2022)

  • 2.1.2(Feb 23, 2022)

  • 2.1.1(Feb 23, 2022)

    What's Changed

    • Drop php 7.4 on Docker by @matthieumota in https://github.com/beyondcode/expose/pull/300
    • Always return '$this' in 'registerStatisticsCollector' by @ttrig in https://github.com/beyondcode/expose/pull/292
    • Fix redirect error when using custom domains

    New Contributors

    • @ttrig made their first contribution in https://github.com/beyondcode/expose/pull/292

    Full Changelog: https://github.com/beyondcode/expose/compare/2.1.0...2.1.1

    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Feb 8, 2022)

  • 2.0.2(Jun 23, 2021)

  • 2.0.1(Jun 21, 2021)

  • 2.0.0(Jun 21, 2021)

    Expose 2.0 🥳

    Almost one year after the initial release of Expose 1.0.0, we are extremely excited about the release of version 2.0! In addition to the release of Expose 2.0 as open-source software, we have also released Expose Pro - a commercial offering of all the latest and greatest Expose features on a global network of Expose servers.

    We have put a ton of effort into this release, making sure that Expose stays the best tunneling solution out there - not only for PHP developers.

    New Features

    Dark Mode 🌚

    The local Expose Dashboard now comes with a beautiful dark mode theme!

    Automatic Subdomain Generation

    When sharing a local site explicitly via expose share my-local-site.test, Expose 2 now automatically assigns a static subdomain based on the provided hostname. In this case, Expose would try to use the subdomain my-local-site. This makes it even easier to always ensure that you use the same subdomain for your Expose URLs, even if you do not explicitly provide the custom subdomain yourself.

    TCP Port Sharing

    Expose 2.0 finally adds the ability to share your local TCP ports with others. This is super useful when you want to give access to an application that is running on your local machine via an Expose server.

    For example, you can share your local HELO instance with others, making it easy to send out emails from staging/production servers right into a desktop application running on your local computer.

    Reserved Subdomains

    In Expose 1.0 you were already able to specify a custom subdomain that you want to use for your current tunnel. With Expose 2.0 you can now ensure that nobody else can use the subdomain besides you (and your team). You can reserve a custom subdomain on an Expose server and this subdomain will then be associated with your unique authentication token.

    Multiple-Server support

    Expose 1.0 was limited to one server that it could connect to. In case of our free Expose server, this would mean that all traffic was going through one server sitting in Frankfurt, Germany. With Expose 2.0, you can now define an array of servers that are available for your Expose client and then easily switch between those servers using the --server command-line argument.

    White-Label Domain support

    The 2.0 update of Expose finally allows you to register a custom white-label domain on the Expose servers, allowing you to use your own custom domain with the Expose service. This means that you no longer have to share *.sharedwithexpose.com URLs with your colleagues and clients, but you can now register your own domain and use that instead. All it takes is a simple CNAME DNS entry and you're ready to go!

    White label domains get TLS/SSL certificates on the first connect to a URL automatically. This process takes a few seconds so that first page load can take a moment or even fail – try again after a few seconds and all additional requests will be fast until the certificate expires. Re-using the same (sub-)domain makes sure that your certificate stays available.

    Source code(tar.gz)
    Source code(zip)
  • 1.5.1(Mar 2, 2021)

  • 1.5.0(Jan 14, 2021)

  • 1.4.1(Dec 7, 2020)

  • 1.3.4(Jul 28, 2020)

  • 1.3.3(Jul 28, 2020)

  • 1.3.2(Jul 28, 2020)

  • 1.3.1(Jul 28, 2020)

  • 1.3.0(Jul 1, 2020)

    1.3.0 (2020-07-01)

    • Feature: Add pagination to admin user interface
    • Feature: Add request time to CLI output
    • Feature: Add X-Forwarded-Host header
    • Fix: Fix remaining time calculation
    • Fix: Don't use underscores for automatic subdomain generation
    Source code(tar.gz)
    Source code(zip)
  • 1.2.2(Jun 22, 2020)

  • 1.2.1(Jun 22, 2020)

    • Register chrome-extension as a valid uri scheme. Fixes #50
    • Use toArray representation of sites for the server. Fixes #44
    • Automatically detect valet secured sites when sharing
    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Jun 18, 2020)

    • Feature: Allow overriding the subdomain when using expose without specifying expose share explicitly
    • Show badges in the local dashboard for 3xx response statuses
    • Fix: Updated minimum PHP dependency
    • Fix: Added support for detecting the Windows user home path
    • Fix: Use minified VueJS versions
    • Various spelling fixes
    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(Jun 17, 2020)

  • 1.0.0(Jun 17, 2020)

All PHP functions, rewritten to throw exceptions instead of returning false

Safe PHP This project is deprecated Because of how this project needs to be in sync with the official PHP documentation, maintaining a set of function

TheCodingMachine 2.1k Jan 2, 2023
PHP client library for the Square Connect APIs

Square Connect PHP SDK - RETIRED replaced by square/square-php-sdk NOTICE: Square Connect PHP SDK retired The Square Connect PHP SDK is retired (EOL)

Square 113 Dec 30, 2022
A PHP parser for TOML

TOML parser for PHP A PHP parser for TOML compatible with TOML v0.4.0. Support: Installation Requires PHP >= 7.1. Use Composer to install this package

Yo! Symfony 175 Dec 26, 2022
Simple yet expressive schema-based configuration library for PHP apps

league/config helps you define nested configuration arrays with strict schemas and access configuration values with dot notation.

The League of Extraordinary Packages 282 Jan 6, 2023
This library can parse a TypeSchema specification either from a JSON file, or from PHP classes using reflection and annotations.

This library can parse a TypeSchema specification either from a JSON file, or from PHP classes using reflection and annotations. Based on this schema it can generate source code and transform raw JSON data into DTO objects. Through this you can work with fully typed objects in your API for incoming and outgoing data.

Apioo 54 Jul 14, 2022
LOAD is a PHP library for configuration loading to APCu

LOAD LOAD is a PHP library for configuration loading to APCu Sources Available sources for configuration loading are: PHP file Consul Environment vari

Beat Labs 4 Jan 18, 2022
An object-oriented option parser library for PHP, which supports type constraints, flag, multiple flag, multiple values, required value checking

GetOptionKit Code Quality Versions & Stats A powerful option parser toolkit for PHP, supporting type constraints, flag, multiple flag, multiple values

Yo-An Lin 140 Sep 28, 2022
Config is a file configuration loader that supports PHP, INI, XML, JSON, YML, Properties and serialized files and string

Config Config is a file configuration loader that supports PHP, INI, XML, JSON, YML, Properties and serialized files and strings. Requirements Config

Hassan Khan 946 Jan 1, 2023
A beautiful, fully open-source, tunneling service - written in pure PHP

Expose A completely open-source ngrok alternative - written in pure PHP. Documentation For installation instructions, in-depth usage and deployment de

Beyond Code 3.9k Jan 7, 2023
YCOM Impersonate. Login as selected YCOM user 🧙‍♂️in frontend.

YCOM Impersonate Login as selected YCOM user in frontend. Features: Backend users with admin rights or YCOM[] rights, can be automatically logged in v

Friends Of REDAXO 17 Sep 12, 2022
PrestaShop is a fully scalable open source e-commerce solution.

PrestaShop is an Open Source e-commerce web application, committed to providing the best shopping cart experience for both merchants and customers.

PrestaShop 6.9k Jan 9, 2023
Cachet is a beautiful and powerful open source status page system.

Cachet is a beautiful and powerful open source status page system. Overview List your service components Report incidents Customise the look of your s

Cachet 12.5k Dec 5, 2021
Simple, beautiful, open source publishing.

Simple, beautiful publishing. Website Documentation Created by Cory LaViska Maintained by Marc Apfelbaum Requirements PHP 7.1+ with curl, gd lib, mbst

Leafpub 646 Dec 21, 2022
A set of tools for lexical and syntactical analysis written in pure PHP.

Welcome to Dissect! master - this branch always contains the last stable version. develop - the unstable development branch. Dissect is a set of tools

Jakub Lédl 221 Nov 29, 2022
A MySQL engine written in pure PHP

PHP MySQL Engine PHP MySQL Engine is a library for PHP that allows you to test database-driven applications with an in-memory simulation of MySQL 5.6.

Vimeo 529 Jan 4, 2023
PHPProject is a library written in pure PHP that provides a set of classes to write to different project management file formats

PHPProject PHPProject is a library written in pure PHP that provides a set of classes to write to different project management file formats, i.e. Micr

PHPOffice 192 Dec 17, 2022
PhpSpreadsheet - a library written in pure PHP and offers a set of classes that allow you to read and write various spreadsheet file formats such as Excel and LibreOffice Calc

PhpSpreadsheet PhpSpreadsheet is a library written in pure PHP and offers a set of classes that allow you to read and write various spreadsheet file f

PHPOffice 11.8k Dec 31, 2022
Very simple CRUD project, written in pure php. Designed as framework-agnostic as possible, and with basically no stack overflow if you can believe that

briefly simple CRUD pure php project for self improvement I try to make it purely in github - not only code, but any documentation (wiki), tasks (issu

Michał Jędrasiak 1 Jan 23, 2022
A fully-managed real-time messaging service that allows you to send and receive messages between independent applications.

A fully-managed real-time messaging service that allows you to send and receive messages between independent applications.

Google APIs 58 Dec 23, 2022
A fully featured full text search engine written in PHP

TNTSearch TNTSearch is a full-text search (FTS) engine written entirely in PHP. A simple configuration allows you to add an amazing search experience

TNT Studio 2.9k Jan 8, 2023