Files
mealie/mealie/app.py

65 lines
1.4 KiB
Python
Raw Normal View History

2020-12-24 16:37:38 -09:00
from pathlib import Path
2021-01-05 14:14:55 +01:00
import os
2020-12-24 16:37:38 -09:00
import uvicorn
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
2021-01-01 22:33:19 -09:00
import startup
2020-12-24 16:37:38 -09:00
from routes import (
backup_routes,
meal_routes,
2021-01-01 16:51:55 -09:00
migration_routes,
2020-12-24 16:37:38 -09:00
recipe_routes,
setting_routes,
static_routes,
user_routes,
)
from routes.setting_routes import scheduler
from settings import PORT
from utils.logger import logger
CWD = Path(__file__).parent
WEB_PATH = CWD.joinpath("dist")
app = FastAPI()
2021-01-05 14:14:55 +01:00
# Mount Vue Frontend only in production
env = os.environ.get("ENV")
if(env == "prod"):
app.mount("/static", StaticFiles(directory=WEB_PATH, html=True))
2020-12-24 16:37:38 -09:00
# API Routes
app.include_router(recipe_routes.router)
app.include_router(meal_routes.router)
app.include_router(setting_routes.router)
app.include_router(backup_routes.router)
app.include_router(user_routes.router)
2021-01-01 16:51:55 -09:00
app.include_router(migration_routes.router)
2020-12-24 16:37:38 -09:00
# API 404 Catch all CALL AFTER ROUTERS
@app.get("/api/{full_path:path}", status_code=404, include_in_schema=False)
def invalid_api():
return None
app.include_router(static_routes.router)
2021-01-01 22:33:19 -09:00
startup.ensure_dirs()
startup.generate_default_theme()
2020-12-24 16:37:38 -09:00
if __name__ == "__main__":
logger.info("-----SYSTEM STARTUP-----")
uvicorn.run(
"app:app",
host="0.0.0.0",
port=PORT,
reload=True,
debug=True,
workers=1,
forwarded_allow_ips="*",
)