app.py (1255B)
1 import os, logging 2 from datetime import timedelta 3 from flask import Flask 4 from blueprints.terminal.terminal import terminal_bp 5 from blueprints.api.api import api_bp 6 from blueprints.admin.admin import admin_bp 7 from blueprints.userpanel.userpanel import user_bp 8 from blueprints.challenges.challenges import challenges_bp 9 from werkzeug.middleware.proxy_fix import ProxyFix 10 from dotenv import load_dotenv 11 12 load_dotenv() 13 14 app = Flask(__name__) 15 16 # File upload config 17 app.config['MAX_CONTENT_LENGTH'] = 1024 * 1024 18 app.config['UPLOAD_EXTENSIONS'] = ['.jpg'] 19 20 # Session management config 21 app.config['SECRET_KEY'] = os.getenv("SESSION_SECRET") 22 app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours=1) 23 app.config['SESSION_TYPE'] = 'sqlite3' 24 25 app.register_blueprint(terminal_bp) 26 app.register_blueprint(api_bp, url_prefix="/api/v1") 27 app.register_blueprint(admin_bp, url_prefix="/admin") 28 app.register_blueprint(user_bp, url_prefix="/userpanel") 29 app.register_blueprint(challenges_bp, url_prefix="/challenge") 30 31 logging.basicConfig(filename='server-logs.log', encoding='utf-8', level=logging.INFO) 32 logging.info("Starting the server...") 33 34 if __name__ == "__main__": 35 app.run() 36 37 app.wsgi_app = ProxyFix( 38 app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_prefix=1 39 )