46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
|
|
import uvicorn
|
||
|
|
from fastapi import FastAPI
|
||
|
|
import sys
|
||
|
|
import os
|
||
|
|
|
||
|
|
# Add project root to sys.path explicitly to ensure absolute imports work
|
||
|
|
import os
|
||
|
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||
|
|
|
||
|
|
from database import engine, Base
|
||
|
|
from routers import system, server, profiles, server_process
|
||
|
|
from utils.logging import setup_logging
|
||
|
|
from fastapi.middleware.cors import CORSMiddleware
|
||
|
|
|
||
|
|
# Create Database Tables
|
||
|
|
Base.metadata.create_all(bind=engine)
|
||
|
|
|
||
|
|
setup_logging()
|
||
|
|
|
||
|
|
app = FastAPI(
|
||
|
|
title="OpenVPN Profiler API",
|
||
|
|
description="REST API for managing OpenVPN profiles and configuration",
|
||
|
|
version="1.0.0"
|
||
|
|
)
|
||
|
|
|
||
|
|
# Enable CORS
|
||
|
|
app.add_middleware(
|
||
|
|
CORSMiddleware,
|
||
|
|
allow_origins=["*"],
|
||
|
|
allow_credentials=True,
|
||
|
|
allow_methods=["*"],
|
||
|
|
allow_headers=["*"],
|
||
|
|
)
|
||
|
|
|
||
|
|
app.include_router(system.router, prefix="/api", tags=["System"])
|
||
|
|
app.include_router(server.router, prefix="/api", tags=["Server"])
|
||
|
|
app.include_router(profiles.router, prefix="/api", tags=["Profiles"])
|
||
|
|
app.include_router(server_process.router, prefix="/api", tags=["Process Control"])
|
||
|
|
|
||
|
|
@app.get("/")
|
||
|
|
def read_root():
|
||
|
|
return {"message": "Welcome to OpenVPN Profiler API"}
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)
|