Files
tuxinet-streamhub/backend/app/__init__.py
T
2026-03-23 00:37:22 +01:00

31 lines
1.3 KiB
Python

import os
from flask import Flask
from .models import db, User
from .routes import bp
def create_app():
app = Flask(__name__, instance_relative_config=False)
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY', 'change-me')
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////app/data/streamhub.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['ADMIN_USERNAME'] = os.getenv('ADMIN_USERNAME', 'admin')
app.config['ADMIN_PASSWORD'] = os.getenv('ADMIN_PASSWORD', 'ChangeMe123!')
app.config['PUBLIC_BASE_URL'] = os.getenv('PUBLIC_BASE_URL', 'https://localhost')
app.config['MEDIA_BASE_URL'] = os.getenv('MEDIA_BASE_URL', 'http://mediamtx:8888')
app.config['MEDIA_PUBLIC_HLS_BASE'] = os.getenv('MEDIA_PUBLIC_HLS_BASE', app.config['PUBLIC_BASE_URL'].rstrip('/') + '/hls')
app.config['MEDIAMTX_API_URL'] = os.getenv('MEDIAMTX_API_URL', 'http://mediamtx:9997')
db.init_app(app)
app.register_blueprint(bp)
with app.app_context():
db.create_all()
if not User.query.filter_by(username=app.config['ADMIN_USERNAME']).first():
admin = User(username=app.config['ADMIN_USERNAME'], role='admin', active=True)
admin.set_password(app.config['ADMIN_PASSWORD'])
db.session.add(admin)
db.session.commit()
return app