From 64a089cef96ce716161235f18a1c487b8e2ce6ed Mon Sep 17 00:00:00 2001 From: Whispering Wind <151555003+ReturnFI@users.noreply.github.com> Date: Sat, 10 Aug 2024 00:18:00 +0330 Subject: [PATCH] Environment variables --- core/scripts/singbox/singbox.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/core/scripts/singbox/singbox.py b/core/scripts/singbox/singbox.py index 111d577..c670d71 100644 --- a/core/scripts/singbox/singbox.py +++ b/core/scripts/singbox/singbox.py @@ -1,9 +1,19 @@ -from aiohttp import web +import os import ssl import json import subprocess +from aiohttp import web from urllib.parse import unquote, parse_qs import re +from dotenv import load_dotenv + +load_dotenv() + +# Environment variables +DOMAIN = os.getenv('DOMAIN') +CERTFILE = os.getenv('CERTFILE') +KEYFILE = os.getenv('KEYFILE') +PORT = int(os.getenv('PORT', '3324')) async def handle(request): username = request.query.get('username') @@ -25,10 +35,9 @@ async def handle(request): return web.Response(text=config_json, content_type='application/json') except Exception as e: - return web.Response(status=500, text="Error: Internal server error.") + return web.Response(status=500, text=f"Error: {str(e)}") def generate_singbox_config(username, ip_version, fragment): - # CLI command try: uri = subprocess.check_output([ 'python3', '/etc/hysteria/core/cli.py', 'show-user-uri', '-u', username, '-ip', ip_version @@ -102,10 +111,9 @@ if __name__ == '__main__': app = web.Application() app.add_routes([web.get('/sub/singbox/', handle)]) - # SSL context ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) - ssl_context.load_cert_chain(certfile="/etc/letsencrypt/live/example.com/fullchain.pem", keyfile="/etc/letsencrypt/live/example.com/privkey.pem") - ssl_context.minimum_version = ssl.TLSVersion.TLSv1_2 + ssl_context.load_cert_chain(certfile=CERTFILE, keyfile=KEYFILE) + ssl_context.minimum_version = ssl.TLSVersion.TLSv1_1 ssl_context.set_ciphers('AES256+EECDH:AES256+EDH') - web.run_app(app, port=3324, ssl_context=ssl_context) + web.run_app(app, port=PORT, ssl_context=ssl_context)