Merge pull request #422 from ppluciennik/ppluciennik/port-binding

Allow to configure cdn, api, tcp and udp host and port
This commit is contained in:
zoffline
2025-06-11 19:19:53 -04:00
committed by GitHub
2 changed files with 18 additions and 4 deletions

View File

@@ -792,18 +792,24 @@ if os.path.isfile(ENABLE_BOTS_FILE):
bot.start()
socketserver.ThreadingTCPServer.allow_reuse_address = True
httpd = socketserver.ThreadingTCPServer(('', 80), CDNHandler)
cdn_host = os.environ.get('ZOFFLINE_CDN_HOST', '')
cdn_port = int(os.environ.get('ZOFFLINE_CDN_PORT', 80))
httpd = socketserver.ThreadingTCPServer((cdn_host, cdn_port), CDNHandler)
zoffline_thread = threading.Thread(target=httpd.serve_forever)
zoffline_thread.daemon = True
zoffline_thread.start()
tcpserver = socketserver.ThreadingTCPServer(('', 3025), TCPHandler)
tcp_host = os.environ.get('ZOFFLINE_TCP_HOST', '')
tcp_port = int(os.environ.get('ZOFFLINE_TCP_PORT', 3025))
tcpserver = socketserver.ThreadingTCPServer((tcp_host, tcp_port), TCPHandler)
tcpserver_thread = threading.Thread(target=tcpserver.serve_forever)
tcpserver_thread.daemon = True
tcpserver_thread.start()
socketserver.ThreadingUDPServer.allow_reuse_address = True
udpserver = socketserver.ThreadingUDPServer(('', 3024), UDPHandler)
udp_host = os.environ.get('ZOFFLINE_UDP_HOST', '')
udp_port = int(os.environ.get('ZOFFLINE_UDP_PORT', 3024))
udpserver = socketserver.ThreadingUDPServer((udp_host, udp_port), UDPHandler)
udpserver_thread = threading.Thread(target=udpserver.serve_forever)
udpserver_thread.daemon = True
udpserver_thread.start()

View File

@@ -4368,7 +4368,15 @@ def run_standalone(passed_online, passed_global_relay, passed_global_pace_partne
remove_inactive_thread = threading.Thread(target=remove_inactive)
remove_inactive_thread.start()
logger.info("Server version %s is running." % ZWIFT_VER_CUR)
server = WSGIServer(('0.0.0.0', 443), app, certfile='%s/cert-zwift-com.pem' % SSL_DIR, keyfile='%s/key-zwift-com.pem' % SSL_DIR, log=logger)
host = os.environ.get('ZOFFLINE_API_HOST', '0.0.0.0')
port = int(os.environ.get('ZOFFLINE_API_PORT', 443))
use_cert = os.environ.get('ZOFFLINE_API_USE_CERT', 'true').lower() == 'true'
if host != '0.0.0.0' or port != 443 or not use_cert:
logger.info("Listening on %s:%d using certificate: %s", host, port, use_cert)
cert_kwargs = {'certfile': '%s/cert-zwift-com.pem' % SSL_DIR, 'keyfile': '%s/key-zwift-com.pem' % SSL_DIR}
if not use_cert:
cert_kwargs = {}
server = WSGIServer((host, port), app, log=logger, **cert_kwargs)
server.serve_forever()
# app.run(ssl_context=('%s/cert-zwift-com.pem' % SSL_DIR, '%s/key-zwift-com.pem' % SSL_DIR), port=443, threaded=True, host='0.0.0.0') # debug=True, use_reload=False)