|
|
import os |
|
|
import sys |
|
|
|
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) |
|
|
|
|
|
from flask import Flask, send_from_directory |
|
|
from src.models.user import db |
|
|
from src.routes.user import user_bp |
|
|
from src.routes.isp_api import init_engines, isp_api |
|
|
|
|
|
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.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) |
|
|
|
|
|
@app.route('/') |
|
|
def serve_root(): |
|
|
return serve('') |
|
|
|
|
|
@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) |
|
|
|
|
|
|
|
|
|