diff --git a/.idea/runConfigurations/latest.xml b/.idea/runConfigurations/latest.xml
new file mode 100644
index 0000000..f53f827
--- /dev/null
+++ b/.idea/runConfigurations/latest.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/sandboxapi.xml b/.idea/runConfigurations/sandboxapi.xml
index 55a7670..ddd0e08 100644
--- a/.idea/runConfigurations/sandboxapi.xml
+++ b/.idea/runConfigurations/sandboxapi.xml
@@ -6,6 +6,13 @@
+
+
+
+
+
+
+
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..e863916
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,23 @@
+FROM python:3
+
+LABEL authors="Bernhard Radermacher"
+
+RUN pip install fastapi mariadb pymysql passlib[bcrypt] pyjwt python-multipart sqlmodel uvicorn ldap3
+
+ARG DB_USER="must be set"
+ARG DB_PASSWORD="must be set"
+
+ENV DB_USER=$DB_USER \
+ DB_PASSWORD=$DB_PASSWORD \
+ DB_HOST="mariadb.ctmapp.kiongroup.net" \
+ DB_PORT=3306 \
+ DB_DATABASE="fast_vpsx" \
+ LOG_LEVEL="INFO"
+
+COPY app /
+
+
+#ENTRYPOINT ["python", "main.py"]
+#ENTRYPOINT ["/bin/bash"]
+
+ENTRYPOINT ["/usr/local/bin/uvicorn", "main:app", "--host", "0.0.0.0"]
\ No newline at end of file
diff --git a/app/dependencies/engine.py b/app/dependencies/engine.py
index 69e3cc2..29668e2 100644
--- a/app/dependencies/engine.py
+++ b/app/dependencies/engine.py
@@ -1,11 +1,22 @@
-from sqlalchemy import create_engine
+import os
+import sqlalchemy
-# engine_url="sqlite+pysqlite:///vpsx.db"
-engine_url="mariadb+pymysql://fast:fast@mariadb.ctmapp.kiongroup.net/fast_vpsx?charset=utf8mb4"
+# # engine_url="sqlite+pysqlite:///vpsx.db"
+# engine_url="mariadb+pymysql://fast:fast@mariadb.ctmapp.kiongroup.net/fast_vpsx?charset=utf8mb4"
+
+engine_url = sqlalchemy.URL.create(
+ drivername="mariadb+pymysql",
+ username=os.getenv("DB_USER"),
+ password=os.getenv("DB_PASSWORD"),
+ host=os.getenv("DB_HOST"),
+ port=int(os.getenv("DB_PORT")),
+ database=os.getenv("DB_DATABASE"),
+ query={'charset': 'utf8mb4'},
+)
def get_engine():
- return create_engine(engine_url)
+ return sqlalchemy.create_engine(engine_url)
engine = get_engine()
diff --git a/app/main.py b/app/main.py
index 2b8d234..6e0f9b8 100644
--- a/app/main.py
+++ b/app/main.py
@@ -1,15 +1,13 @@
import inspect
from contextlib import asynccontextmanager
-from typing import Annotated
import fastapi
-from fastapi.security import OAuth2PasswordRequestForm
-
-from app.alchemy import Base
-from app.dependencies import engine
-from fastapi import FastAPI, Depends, HTTPException
+from fastapi import FastAPI
from starlette.middleware.cors import CORSMiddleware
-from app import routers
+
+from alchemy import Base
+import routers
+from dependencies import engine
@asynccontextmanager
@@ -17,15 +15,10 @@ async def lifespan(app: FastAPI):
Base.metadata.create_all(engine)
yield
+
app = FastAPI(lifespan=lifespan)
app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"])
-
-# app.include_router(routers.contact)
-# app.include_router(routers.country)
-# app.include_router(routers.status)
-# app.include_router(routers.user)
-
for i in inspect.getmembers(routers):
if isinstance(i[1], fastapi.routing.APIRouter):
app.include_router(i[1])