diff --git a/Dockerfile b/Dockerfile index 3f2af16f..9430fb58 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,10 @@ RUN apt-get update && apt-get install -y \ npm \ nginx \ curl \ - redis-server + redis-server \ + default-libmysqlclient-dev \ + build-essential \ + pkg-config # Create a working directory WORKDIR /app diff --git a/Dockerfile.dev b/Dockerfile.dev index 664eb16a..1659ad9b 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -6,7 +6,10 @@ RUN apt-get update && apt-get install -y \ npm \ nginx \ curl \ - redis-server + redis-server \ + default-libmysqlclient-dev \ + build-essential \ + pkg-config # Change working directory WORKDIR /app diff --git a/docker-compose.yml b/docker-compose.yml index fd92fa8b..871db042 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,6 +20,7 @@ services: - CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY} - CUSTOM_MODEL=${CUSTOM_MODEL} - PEXELS_API_KEY=${PEXELS_API_KEY} + - SQL_URL=${SQL_URL} production-gpu: # image: ghcr.io/presenton/presenton:latest @@ -49,6 +50,7 @@ services: - CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY} - CUSTOM_MODEL=${CUSTOM_MODEL} - PEXELS_API_KEY=${PEXELS_API_KEY} + - SQL_URL=${SQL_URL} development: build: @@ -72,6 +74,7 @@ services: - CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY} - CUSTOM_MODEL=${CUSTOM_MODEL} - PEXELS_API_KEY=${PEXELS_API_KEY} + - SQL_URL=${SQL_URL} development-gpu: build: @@ -101,4 +104,5 @@ services: - CUSTOM_LLM_URL=${CUSTOM_LLM_URL} - CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY} - CUSTOM_MODEL=${CUSTOM_MODEL} - - PEXELS_API_KEY=${PEXELS_API_KEY} \ No newline at end of file + - PEXELS_API_KEY=${PEXELS_API_KEY} + - SQL_URL=${SQL_URL} \ No newline at end of file diff --git a/servers/fastapi/api/services/database.py b/servers/fastapi/api/services/database.py index 114610cd..ea9f3cd1 100644 --- a/servers/fastapi/api/services/database.py +++ b/servers/fastapi/api/services/database.py @@ -4,8 +4,14 @@ from sqlalchemy import create_engine from sqlmodel import Session -sql_url = "sqlite:///" + os.path.join(os.getenv("APP_DATA_DIRECTORY"), "fastapi.db") -sql_engine = create_engine(sql_url, connect_args={"check_same_thread": False}) +sql_url = os.getenv("SQL_URL") or "sqlite:///" + os.path.join( + os.getenv("APP_DATA_DIRECTORY"), "fastapi.db" +) +connect_args = {} +if "sqlite" in sql_url: + connect_args["check_same_thread"] = False + +sql_engine = create_engine(sql_url, connect_args=connect_args) @contextmanager diff --git a/servers/fastapi/requirements.txt b/servers/fastapi/requirements.txt index c78d19e0..7b92550b 100644 --- a/servers/fastapi/requirements.txt +++ b/servers/fastapi/requirements.txt @@ -55,6 +55,7 @@ mmh3==5.1.0 mpmath==1.3.0 multidict==6.4.3 mypy_extensions==1.1.0 +mysqlclient==2.2.7 numpy==2.2.5 ollama==0.5.1 onnxruntime==1.22.0 @@ -67,6 +68,7 @@ pillow==11.3.0 propcache==0.3.1 proto-plus==1.26.1 protobuf==6.31.1 +psycopg2-binary==2.9.10 py_rust_stemmers==0.1.5 pyasn1==0.6.1 pyasn1_modules==0.4.2