from flask import Flask, request, redirect, url_for, render_template_string
import subprocess
import threading
app = Flask(__name__)
# Replace these with your desired username and password
USERNAME = 'your_username'
PASSWORD = 'your_password'
html_login = '''
Login
Login
'''
@app.route('/', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
if request.form['username'] == USERNAME and request.form['password'] == PASSWORD:
return redirect(url_for('gradio_app'))
else:
return 'Incorrect credentials', 401
return render_template_string(html_login)
@app.route('/gradio')
def gradio_app():
# This will ensure the app runs only once and not on every request
if not gradio_app.started:
threading.Thread(target=run_gradio).start()
gradio_app.started = True
return redirect("http://localhost:7860")
def run_gradio():
subprocess.run(["python", "app_w_lora.py"])
# Initialize the flag to indicate if the Gradio app has started
gradio_app.started = False
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)