|
73 | 73 | - [TLS Interception](#tls-interception)
|
74 | 74 | - [TLS Interception With Docker](#tls-interception-with-docker)
|
75 | 75 | - [GROUT (NGROK Alternative)](#grout-ngrok-alternative)
|
| 76 | + - [Grout Usage](#grout-usage) |
| 77 | + - [Grout Authentication](#grout-authentication) |
| 78 | + - [Grout Paths](#grout-paths) |
| 79 | + - [Grout Wildcard Domains](#grout-wildcard-domains) |
76 | 80 | - [Grout using Docker](#grout-using-docker)
|
77 | 81 | - [How Grout works](#how-grout-works)
|
78 | 82 | - [Self-hosted Grout](#self-hosted-grout)
|
@@ -1323,7 +1327,10 @@ with TLS Interception:
|
1323 | 1327 |
|
1324 | 1328 | # GROUT (NGROK Alternative)
|
1325 | 1329 |
|
1326 |
| -`grout` is a drop-in alternative to `ngrok` that comes packaged within `proxy.py` |
| 1330 | +1. `grout` is a drop-in alternative for `ngrok` and `frp` |
| 1331 | +2. `grout` comes packaged within `proxy.py` |
| 1332 | + |
| 1333 | +## Grout Usage |
1327 | 1334 |
|
1328 | 1335 | ```console
|
1329 | 1336 | ❯ grout
|
@@ -1375,12 +1382,58 @@ SUPPORT:
|
1375 | 1382 | https://jaxl.io
|
1376 | 1383 | ```
|
1377 | 1384 |
|
| 1385 | +## Grout Authentication |
| 1386 | + |
| 1387 | +Grout supports authentication to protect your files, folders and services from unauthorized |
| 1388 | +access. Use `--basic-auth` flag to enforce authentication. Example: |
| 1389 | + |
| 1390 | +```console |
| 1391 | +grout /path/to/folder --basic-auth user:pass |
| 1392 | +grout https://localhost:8080 --basic-auth u:p |
| 1393 | +``` |
| 1394 | + |
| 1395 | +## Grout Paths |
| 1396 | + |
| 1397 | +By default, Grout allows access to all paths on the services. Use `--path` flag to restrict |
| 1398 | +access to only certain paths on your web service. Example: |
| 1399 | + |
| 1400 | +```console |
| 1401 | +grout https://localhost:8080 --path /worker/ |
| 1402 | +grout https://localhost:8080 --path /webhook/ --path /callback/ |
| 1403 | +``` |
| 1404 | + |
| 1405 | +## Grout Wildcard Domains |
| 1406 | + |
| 1407 | +By default, Grout client serves incoming traffic on a dedicated subdomain. |
| 1408 | +However, some services (e.g. Kubernetes) may want to serve traffic on adhoc subdomains. |
| 1409 | +Starting a dedicated Grout client for every adhoc subdomain may not be a practical solution. |
| 1410 | + |
| 1411 | +For such scenarios, Grout supports wildcard domains. Here is how to configure your own |
| 1412 | +wildcard domain for use with Grout clients. |
| 1413 | + |
| 1414 | +1. Choose a domain e.g. `custom.example.com` |
| 1415 | +2. Your service wants to serve traffic for `custom.example.com` and `*.custom.example.com` |
| 1416 | +3. If you plan on using `https://`, you need to setup a load balancer: |
| 1417 | + - Setup a HTTPS load balancer (LB) |
| 1418 | + - Configure LB with certificate generated for `custom.example.com` and `*.custom.example.com` |
| 1419 | + - Point traffic to Grout service public IP addresses |
| 1420 | +4. Contact Grout team at support@jaxl.com to whitelist `custom.example.com`. Grout team will make |
| 1421 | + sure you really own the domain and you have configured a valid SSL certificate as described above |
| 1422 | + |
| 1423 | +Start Grout with `--wildcard` flag. Example: |
| 1424 | + |
| 1425 | +```console |
| 1426 | +grout https://localhost:8080 custom.example.com --wildcard |
| 1427 | +2024-08-05 18:24:59,294 - grout - Logged in as someone@gmail.com |
| 1428 | +2024-08-05 18:25:03,159 - setup - Grouting https://*.custom.domain.com |
| 1429 | +``` |
| 1430 | + |
1378 | 1431 | ## Grout using Docker
|
1379 | 1432 |
|
1380 | 1433 | ```console
|
1381 |
| -❯ docker run -it \ |
| 1434 | +❯ docker run --rm -it \ |
1382 | 1435 | --entrypoint grout \
|
1383 |
| - --rm -v ~/.proxy:/root/.proxy \ |
| 1436 | + -v ~/.proxy:/root/.proxy \ |
1384 | 1437 | abhinavsingh/proxy.py:latest \
|
1385 | 1438 | http://host.docker.internal:29876
|
1386 | 1439 | ```
|
|
0 commit comments