from flask import Flask from werkzeug.middleware.proxy_fix import ProxyFix from config import Config from extensions import CORS, db from blueprints import register_blueprints app = Flask(__name__, static_folder='static') app.config.from_object(Config) # Fix for Nginx proxying (ensures correct IP addresses) app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_prefix=1) CORS(app) db.init_app(app) register_blueprints(app) with app.app_context(): from models.user import User from models.notepad import Notepad from models.favorite import Favorite from models.note import Note from models.banned_ip import BannedIP from models.collaborator import Collaborator from models.notepad_key import NotepadKey db.create_all() # Create default Global Public Notepad if it doesn't exist if not Notepad.query.filter_by(name="Global Public Notes").first(): global_pad = Notepad(name="Global Public Notes", is_public=True) db.session.add(global_pad) db.session.commit() if __name__ == "__main__": app.run(debug=True)