xray / app3.py
ManiAz09's picture
Rename app.py to app3.py
df561fc verified
Raw
History Blame Contribute Delete
1.23 kB
import subprocess
import time
import os
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/')
def health_check():
return jsonify({"status": "3x-ui is running"})
@app.route('/health')
def health():
# Check if 3x-ui process is alive
result = subprocess.run(['pgrep', 'x-ui'], capture_output=True)
if result.returncode == 0:
return jsonify({"status": "healthy"}), 200
return jsonify({"status": "unhealthy"}), 503
if __name__ == '__main__':
# Change port
subprocess.run(['/usr/bin/x-ui', 'setting', '-port', '7860'])
# Start 3x-ui in background
subprocess.Popen(['/usr/bin/x-ui', 'start'])
time.sleep(5)
# Run Flask on the same port? No, it's occupied.
# We'll run Flask on port 7860 and use it as a reverse proxy, or run on a different port.
# Actually, we can run Flask on 7860 and forward requests to 3x-ui on a different port.
# But 3x-ui is listening on 7860. This is conflicting.
# Solution: Run 3x-ui on 8080, and Flask on 7860 and proxy.
# Or run Flask on 7860 and 3x-ui on another port. Let's do Flask on 7860 and proxy.
# But then we need to implement a proxy in Flask.
# It's more complex. The start.sh approach is simpler.