mirror of
https://github.com/bitinflow/expose.git
synced 2026-03-13 13:35:54 +00:00
wip
This commit is contained in:
4
docs/client/_index.md
Normal file
4
docs/client/_index.md
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Client
|
||||
order: 2
|
||||
---
|
||||
32
docs/client/basic-authentication.md
Normal file
32
docs/client/basic-authentication.md
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
title: Basic Authentication
|
||||
order: 2
|
||||
---
|
||||
|
||||
# Sharing sites with basic authentication
|
||||
|
||||
Expose allows you to share your local sites with custom basic authentication credentials.
|
||||
|
||||
This can be useful, if you have a static subdomain that you share with someone else, for example a client, and you want to provide some additional security to it. Before someone can access your shared site, they need to provide the correct credentials.
|
||||
|
||||
> **Warning**: You can not add basic authentication to a website that already uses basic authentication.
|
||||
|
||||
To share your site with basic authentication, use:
|
||||
|
||||
```bash
|
||||
expose --auth="admin:secret"
|
||||
```
|
||||
|
||||
Or if you want to use the explicit sharing:
|
||||
|
||||
```bash
|
||||
expose share my-site.test --auth="admin:secret"
|
||||
```
|
||||
|
||||
This will share the local URL my-site.test with the username "admin" and the password "secret".
|
||||
|
||||
You can also use the basic authentication parameter in addition to a custom subdomain:
|
||||
|
||||
```bash
|
||||
expose share my-site.test --subdomain=site --auth="admin:secret"
|
||||
```
|
||||
189
docs/client/configuration.md
Normal file
189
docs/client/configuration.md
Normal file
@@ -0,0 +1,189 @@
|
||||
---
|
||||
title: Configuration
|
||||
order: 3
|
||||
---
|
||||
|
||||
# Configuration
|
||||
|
||||
To configure the Expose client, you first need to publish the configuration file.
|
||||
|
||||
This can be done using the publish command:
|
||||
|
||||
```bash
|
||||
expose publish
|
||||
```
|
||||
|
||||
The configuration file will be written to your home directory inside a `.expose` folder:
|
||||
|
||||
`~/.expose/config.php`
|
||||
|
||||
And the default content of the configuration file is this:
|
||||
|
||||
```php
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Host
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The expose server to connect to. By default, expose is using the free
|
||||
| expose.dev server, offered by Beyond Code. You will need a free
|
||||
| Beyond Code account in order to authenticate with the server.
|
||||
| Feel free to host your own server and change this value.
|
||||
|
|
||||
*/
|
||||
'host' => 'expose.dev',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Port
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The port that expose will try to connect to. If you want to bypass
|
||||
| firewalls and have proper SSL encrypted tunnels, make sure to use
|
||||
| port 443 and use a reverse proxy for Expose.
|
||||
|
|
||||
| The free default server is already running on port 443.
|
||||
|
|
||||
*/
|
||||
'port' => 443,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Auth Token
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The global authentication token to use for the expose server that you
|
||||
| are connecting to. You can let expose automatically update this value
|
||||
| for you by running
|
||||
|
|
||||
| > expose token YOUR-AUTH-TOKEN
|
||||
|
|
||||
*/
|
||||
'auth_token' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default TLD
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The default TLD to use when sharing your local sites. Expose will try
|
||||
| to look up the TLD if you are using Laravel Valet automatically.
|
||||
| Otherwise you can specify it here manually.
|
||||
|
|
||||
*/
|
||||
'default_tld' => 'test',
|
||||
|
||||
'admin' => [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Database
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The SQLite database that your expose server should use. This datbaase
|
||||
| will hold all users that are able to authenticate with your server,
|
||||
| if you enable authentication token validation.
|
||||
|
|
||||
*/
|
||||
'database' => base_path('database/expose.db'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validate auth tokens
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| By default, once you start an expose server, anyone is able to connect to
|
||||
| it, given that they know the server host. If you want to only allow the
|
||||
| connection from users that have valid authentication tokens, set this
|
||||
| setting to true. You can also modify this at runtime in the server
|
||||
| admin interface.
|
||||
|
|
||||
*/
|
||||
'validate_auth_tokens' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Maximum connection length
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If you want to limit the amount of time that a single connection can
|
||||
| stay connected to the expose server, you can specify the maximum
|
||||
| connection length in minutes here. A maximum length of 0 means that
|
||||
| clients can stay connected as long as they want.
|
||||
|
|
||||
*/
|
||||
'maximum_connection_length' => 0,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Subdomain
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This is the subdomain that your expose admin dashboard will be available at.
|
||||
| The given subdomain will be reserved, so no other tunnel connection can
|
||||
| request this subdomain for their own connection.
|
||||
|
|
||||
*/
|
||||
'subdomain' => 'expose',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Subdomain Generator
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This is the subdomain generator that will be used, when no specific
|
||||
| subdomain was provided. The default implementation simply generates
|
||||
| a random string for you. Feel free to change this.
|
||||
|
|
||||
*/
|
||||
'subdomain_generator' => \App\Server\SubdomainGenerator\RandomSubdomainGenerator::class,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Users
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The admin dashboard of expose is protected via HTTP basic authentication
|
||||
| Here you may add the user/password combinations that you want to
|
||||
| accept as valid logins for the dashboard.
|
||||
|
|
||||
*/
|
||||
'users' => [
|
||||
'username' => 'password'
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| User Repository
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This is the user repository, which by default loads and saves all authorized
|
||||
| users in a SQLite database. You can implement your own user repository
|
||||
| if you want to store your users in a different store (Redis, MySQL, etc.)
|
||||
|
|
||||
*/
|
||||
'user_repository' => \App\Server\UserRepository\DatabaseUserRepository::class,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Messages
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The default messages that the expose server will send the clients.
|
||||
| These settings can also be changed at runtime in the expose admin
|
||||
| interface.
|
||||
|
|
||||
*/
|
||||
'messages' => [
|
||||
'message_of_the_day' => 'Thank you for using expose.',
|
||||
|
||||
'invalid_auth_token' => 'Authentication failed. Please check your authentication token and try again.',
|
||||
|
||||
'subdomain_taken' => 'The chosen subdomain :subdomain is already taken. Please choose a different subdomain.',
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
```
|
||||
11
docs/client/dashboard.md
Normal file
11
docs/client/dashboard.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: Dashboard
|
||||
order: 5
|
||||
---
|
||||
|
||||
# Dashboard
|
||||
|
||||
Once you share a local site, expose will show you all incoming HTTP requests along with their status code and duration in your terminal:
|
||||
|
||||

|
||||
|
||||
8
docs/client/extending.md
Normal file
8
docs/client/extending.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: Extending
|
||||
order: 100
|
||||
---
|
||||
|
||||
# Sharing local sites
|
||||
|
||||
This page will be under the "Basic Usage" submenu.
|
||||
57
docs/client/sharing.md
Normal file
57
docs/client/sharing.md
Normal file
@@ -0,0 +1,57 @@
|
||||
---
|
||||
title: Sharing your local sites
|
||||
order: 1
|
||||
---
|
||||
|
||||
# Sharing local sites
|
||||
|
||||
Expose allows you to share any kind of HTTP/HTTPS traffic for websites that you can reach on your own computer, with anyone on the internet.
|
||||
|
||||
There are multiple different ways on how you can initiate the site sharing with Expose.
|
||||
|
||||
## Sharing the current working directory
|
||||
|
||||
To share the current working directory with expose, all you need to do is go into the directory and call `expose`.
|
||||
|
||||
This makes the assumption that you have access to the current working directory name as a domain with the `.test` TLD.
|
||||
|
||||
If you are using Laravel Valet, the configured Valet subdomain will automatically be detected.
|
||||
|
||||
If you are using a different domain for your local sites, you can change the default TLD that expose uses in the [configuration file]().
|
||||
|
||||
For example:
|
||||
|
||||
```bash
|
||||
# Will share a local site "my-site.test" as "my-site.EXPOSE-SERVER"
|
||||
~/Sites/my-site/ expose
|
||||
|
||||
# Will share a local site "api.my-site.test" as "api-my-site.EXPOSE-SERVER"
|
||||
~/Sites/api.my-site/ expose
|
||||
```
|
||||
|
||||
## Sharing a local site explicitly
|
||||
|
||||
If you want to explicitly share a local URL, without going into a specific folder first, you can do this by using the `expose share` command.
|
||||
|
||||
> By default, this command will generate a unique subdomain for the shared URL.
|
||||
|
||||
```bash
|
||||
# Will share access to http://192.168.2.100 using a randomly generated subdomain
|
||||
expose share http://192.168.2.100
|
||||
|
||||
# Will share access to http://my-local-site.dev using a randomly generated subdomain
|
||||
expose share my-local-site.dev
|
||||
```
|
||||
|
||||
## Share a local site with a given subdomain
|
||||
|
||||
You can also share one of your local sites explicitly and specify which exact subdomain you want Expose to use when sharing the site.
|
||||
This works similar to the paid offerings of Ngrok - but you can use it with your own custom server.
|
||||
|
||||
To specify the subdomain, pass the `--subdomain` option to expose:
|
||||
|
||||
```bash
|
||||
expose share my-site.test --subdomain=my-site
|
||||
```
|
||||
|
||||
If the chosen subdomain is already taken on the Expose server, you will see an error message and the connection to the Expose server gets closed.
|
||||
Reference in New Issue
Block a user