| import os |
| import sys |
| |
| sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) |
|
|
| from flask import Flask, send_from_directory |
| from models.user import db |
| from routes.user import user_bp |
| from routes.auth import auth_bp |
| from routes.isp_api import init_engines, isp_api |
| from core.openvpn_manager import initialize_openvpn_manager |
|
|
|
|
| app = Flask(__name__, static_folder=os.path.join(os.path.dirname(__file__), 'static')) |
| app.config['SECRET_KEY'] = 'asdf#FGSgvasgf$5$WGT' |
|
|
| app.register_blueprint(user_bp, url_prefix='/api') |
| app.register_blueprint(isp_api, url_prefix='/api') |
| app.register_blueprint(auth_bp, url_prefix='/api') |
|
|
| |
| app.config['SQLALCHEMY_DATABASE_URI'] = f"sqlite:///{os.path.join(os.path.dirname(__file__), 'database', 'app.db')}" |
| app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False |
| db.init_app(app) |
|
|
| with app.app_context(): |
| db.create_all() |
|
|
| |
| app.config["dhcp"] = { |
| "network": "10.0.0.0/24", |
| "range_start": "10.0.0.10", |
| "range_end": "10.0.0.100", |
| "lease_time": 3600, |
| "gateway": "10.0.0.1", |
| "dns_servers": ["8.8.8.8", "8.8.4.4"] |
| } |
|
|
| |
| if not app.debug or os.environ.get('WERKZEUG_RUN_MAIN') == 'true': |
| init_engines(app.config) |
| initialize_openvpn_manager(app.config) |
|
|
| @app.route("/auth") |
| def serve_auth(): |
| return send_from_directory(app.static_folder, "auth.html") |
|
|
| @app.route("/dashboard") |
| def serve_dashboard(): |
| return send_from_directory(app.static_folder, "dashboard.html") |
|
|
| @app.route("/") |
| def serve_root(): |
| return send_from_directory(app.static_folder, "index.html") |
|
|
| @app.route('/<path:path>') |
| def serve(path): |
| static_folder_path = app.static_folder |
| if static_folder_path is None: |
| return "Static folder not configured", 404 |
|
|
| if path != "" and os.path.exists(os.path.join(static_folder_path, path)): |
| return send_from_directory(static_folder_path, path) |
| else: |
| index_path = os.path.join(static_folder_path, 'index.html') |
| if os.path.exists(index_path): |
| return send_from_directory(static_folder_path, 'index.html') |
| else: |
| return "index.html not found", 404 |
|
|
|
|
| if __name__ == '__main__': |
| app.run(host='0.0.0.0', port=5000, debug=False) |
|
|
|
|
|
|
|
|