2023-05-17 01:15:30 +08:00
|
|
|
import ngrok
|
2022-10-11 17:40:27 +08:00
|
|
|
|
2023-05-17 01:15:30 +08:00
|
|
|
# Connect to ngrok for ingress
|
|
|
|
def connect(token, port, options):
|
2022-11-10 20:42:41 +08:00
|
|
|
account = None
|
2022-12-15 02:59:33 +08:00
|
|
|
if token is None:
|
2022-10-11 17:40:27 +08:00
|
|
|
token = 'None'
|
2022-11-10 20:39:20 +08:00
|
|
|
else:
|
|
|
|
if ':' in token:
|
|
|
|
# token = authtoken:username:password
|
2023-05-10 03:17:58 +08:00
|
|
|
token, username, password = token.split(':', 2)
|
|
|
|
account = f"{username}:{password}"
|
2022-11-10 20:39:20 +08:00
|
|
|
|
2023-05-17 01:15:30 +08:00
|
|
|
# For all options see: https://github.com/ngrok/ngrok-py/blob/main/examples/ngrok-connect-full.py
|
|
|
|
if not options.get('authtoken_from_env'):
|
|
|
|
options['authtoken'] = token
|
|
|
|
if account:
|
|
|
|
options['basic_auth'] = account
|
|
|
|
if not options.get('session_metadata'):
|
|
|
|
options['session_metadata'] = 'stable-diffusion-webui'
|
|
|
|
|
2023-05-11 23:28:15 +08:00
|
|
|
|
2022-10-11 17:40:27 +08:00
|
|
|
try:
|
2023-05-17 01:15:30 +08:00
|
|
|
public_url = ngrok.connect(f"127.0.0.1:{port}", **options).url()
|
|
|
|
except Exception as e:
|
|
|
|
print(f'Invalid ngrok authtoken? ngrok connection aborted due to: {e}\n'
|
2022-10-11 17:40:27 +08:00
|
|
|
f'Your token: {token}, get the right one on https://dashboard.ngrok.com/get-started/your-authtoken')
|
|
|
|
else:
|
|
|
|
print(f'ngrok connected to localhost:{port}! URL: {public_url}\n'
|
2022-10-11 17:48:27 +08:00
|
|
|
'You can use this link after the launch is complete.')
|