50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
"""
|
|
MiroFish Backend entry point
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
|
|
# Fix Chinese garbled output in Windows console: set UTF-8 encoding before all imports
|
|
if sys.platform == "win32":
|
|
# Set environment variable to ensure Python uses UTF-8
|
|
os.environ.setdefault("PYTHONIOENCODING", "utf-8")
|
|
# Reconfigure standard output streams to UTF-8
|
|
if hasattr(sys.stdout, "reconfigure"):
|
|
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
|
|
if hasattr(sys.stderr, "reconfigure"):
|
|
sys.stderr.reconfigure(encoding="utf-8", errors="replace")
|
|
|
|
# Add project root directory to path
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
from app import create_app
|
|
from app.config import Config
|
|
|
|
|
|
def main():
|
|
"""Main function"""
|
|
# Validate configuration
|
|
errors = Config.validate()
|
|
if errors:
|
|
print("Configuration errors:")
|
|
for err in errors:
|
|
print(f" - {err}")
|
|
print("\nPlease check the configuration in the .env file")
|
|
sys.exit(1)
|
|
|
|
# Create application
|
|
app = create_app()
|
|
|
|
# Get runtime config
|
|
host = os.environ.get("FLASK_HOST", "0.0.0.0")
|
|
port = int(os.environ.get("FLASK_PORT", 5001))
|
|
debug = Config.DEBUG
|
|
|
|
# Start service
|
|
app.run(host=host, port=port, debug=debug, threaded=True)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|