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

Related tags

Miscellaneous 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)

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 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
Backend repository of libreoupas project, fully written in PHP, using the datas provided by the University.

libreoupas-engine/fst-nancy Description libreoupas est un site Internet permettant aux étudiant de la Faculté des Strasbourg illkirsh d'avoir accès au

Clément Colné 5 Jan 6, 2022
A pure PHP implementation of the open Language Server Protocol. Provides static code analysis for PHP for any IDE.

A pure PHP implementation of the open Language Server Protocol. Provides static code analysis for PHP for any IDE.

Felix Becker 1.1k Jan 4, 2023
It is an open-source and free project, which is faced with the drawing lovers, providing a free and simple Gallery service

It is an open-source and free project, which is faced with the drawing lovers, providing a free and simple Gallery service

WeepingDogel 5 Dec 15, 2022
An open-source Minecraft: Java Edition server implementation, written in PHP.

PHPCraft An open-source Minecraft: Java Edition server implementation, written in PHP. What is PHPCraft? PHPCraft is an open-source Minecraft: Java Ed

Karen/あけみ 17 Dec 31, 2022
Tars is a high-performance RPC framework based on name service and Tars protocol, also integrated administration platform, and implemented hosting-service via flexible schedule.

TARS - A Linux Foundation Project TARS Foundation Official Website TARS Project Official Website WeChat Group: TARS01 WeChat Offical Account: TarsClou

THE TARS FOUNDATION PROJECTS 9.6k Jan 1, 2023
A pure PHP implementation of the MessagePack serialization format / msgpack.org[PHP]

msgpack.php A pure PHP implementation of the MessagePack serialization format. Features Fully compliant with the latest MessagePack specification, inc

Eugene Leonovich 368 Dec 19, 2022
Columnar analytics for PHP - a pure PHP library to read and write simple columnar files in a performant way.

Columnar Analytics (in pure PHP) On GitHub: https://github.com/envoymediagroup/columna About the project What does it do? This library allows you to w

Envoy Media Group 2 Sep 26, 2022
Neural Network in pure PHP

rn Neural Network in pure PHP - ML Machine Learning - AI Artificial Intelligence RED NEURONAL WHAT DO THIS LIBRARY IN PURE PHP OF ARTIFICIAL INTELLIGE

Rafael Martin Soto 6 May 31, 2022
A lightweight framework-agnostic library in pure PHP for part-of-speech tagging

N-ai php pos tagger A lightweight framework-agnostic library in pure PHP for part-of-speech tagging. Can be used for chatbots, personal assistants, ke

Giorgio Rey 8 Nov 8, 2022
A pure PHP library for reading and writing presentations documents

Branch Master : Branch Develop : PHPPresentation is a library written in pure PHP that provides a set of classes to write to different presentation fi

PHPOffice 1.2k Jan 2, 2023
APM pure Php package

Pure Php sample project is just a sample project and here is what I usualy do for each new Php project.

AmirHossein Mohammadi 6 Jul 25, 2022
2022 edition of the inRage Theme fully based on Gutenberg with the support of Roots Sage 10

2022 Edition - inRage theme This version of the theme is compatible with the Full site editing of Wordpress 5.8/5.9 and use Sage 10 in order to manage

inRage 5 Jan 3, 2023
Magento 2 Blog Extension - FREE, fully featured, powerful Blog solution for your online store!

Blog MX | Magento 2 Blog Module by Mirasvit FREE, fully featured, powerful Blog solution for your online store! Magento 2 Blog MX allows you to open a

Mirasvit 71 Dec 7, 2022
Yclas Self Hosted is a powerful script that can transform any domain into a fully customizable classifieds site within a few seconds.

Yclas 4.4.0. Description Yclas self-hosted is a powerful script that can transform any domain into a fully customizable classifieds site within a few

Yclas 299 May 29, 2022
N2Web turns your Notion HTML export into a fully functional static website

Notion2Web N2Web turns your Notion HTML export into a fully functional static website. What is Notion? Notion is an online tool. But I can't tell you

Lars Lehmann 15 Nov 23, 2022
Fully covered with tests, documented by Swagger and dockerized API based on enterprise-level framework with optional queue worker.

symfony-api Fully covered with tests, documented by Swagger and dockerized API based on enterprise-level framework with optional queue worker. ⚙️ Depl

Oleksii Velychko 1 Nov 20, 2022
Beautiful and understandable static analysis tool for PHP

PhpMetrics PhpMetrics provides metrics about PHP project and classes, with beautiful and readable HTML report. Documentation | Twitter | Contributing

PhpMetrics 2.3k Jan 5, 2023