Compare commits

..

6 Commits

Author SHA1 Message Date
EC2 Default User a76579785f latest fix 2025-06-18 16:44:10 +00:00
owusu 64e22d34fb Merge pull request 'fix server issues' (#7) from dev into main
Reviewed-on: #7
2025-06-18 16:30:42 +00:00
OwusuBlessing 3cae5feee7 fix server issues 2025-06-18 17:27:50 +01:00
owusu cfe4d8b619 Merge pull request 'dev' (#6) from dev into main
Reviewed-on: #6
2025-06-18 16:18:32 +00:00
OwusuBlessing 60d2368be9 added 2025-06-18 17:15:19 +01:00
OwusuBlessing 5b055f2870 added please 2025-06-18 17:09:36 +01:00
5 changed files with 26 additions and 52 deletions
+1
View File
@@ -116,6 +116,7 @@ async def get_api_key(api_key_header: str = Security(api_key_header)) -> str:
)
token = api_key_header.split(' ')[1]
print(f"Token : {token}")
if token != API_KEY:
raise HTTPException(
status_code=401,
+3
View File
@@ -1,4 +1,7 @@
import os
from dotenv import load_dotenv
load_dotenv()
QUIZ_TYPES = {
1: {
"name": "Single Line Text Inputs",
+1
View File
@@ -0,0 +1 @@
387857
+20 -52
View File
@@ -2,28 +2,25 @@ import multiprocessing
import os
# Server socket
bind = "0.0.0.0:5042" # Same port as in your app.py
bind = "0.0.0.0:5042"
backlog = 2048
# Worker processes
workers = multiprocessing.cpu_count() * 2 + 1 # Recommended formula for worker count
worker_class = "uvicorn.workers.UvicornWorker" # Required for FastAPI
workers = 4
worker_class = "uvicorn.workers.UvicornWorker"
worker_connections = 1000
timeout = 30
timeout = 120
keepalive = 2
# Process naming
proc_name = "firefighter"
pythonpath = "."
# Logging
accesslog = "logs/access.log"
errorlog = "logs/error.log"
loglevel = "info"
# Process naming
proc_name = "fire_fighter_api"
# SSL (uncomment and configure if using HTTPS)
# keyfile = "path/to/keyfile"
# certfile = "path/to/certfile"
# Server mechanics
daemon = False
pidfile = "gunicorn.pid"
@@ -32,46 +29,17 @@ user = None
group = None
tmp_upload_dir = None
# Server hooks
def on_starting(server):
"""
Server startup hook
"""
# Create logs directory if it doesn't exist
os.makedirs("logs", exist_ok=True)
# Worker lifecycle
max_requests = 1000
max_requests_jitter = 50
graceful_timeout = 30
preload_app = True
def post_fork(server, worker):
"""
Worker initialization hook
"""
server.log.info("Worker spawned (pid: %s)", worker.pid)
# Debug
reload = False
reload_engine = "auto"
spew = False
def pre_fork(server, worker):
"""
Pre-fork hook
"""
pass
def pre_exec(server):
"""
Pre-exec hook
"""
server.log.info("Forked child, re-executing.")
def when_ready(server):
"""
Server ready hook
"""
server.log.info("Server is ready. Spawning workers")
def worker_int(worker):
"""
Worker interrupt hook
"""
worker.log.info("worker received INT or QUIT signal")
def worker_abort(worker):
"""
Worker abort hook
"""
worker.log.info("worker received SIGABRT signal")
# Server mechanics
check_config = False
preload_app = True
+1
View File
@@ -26,5 +26,6 @@ python-docx==1.1.2
unstructured==0.17.2
pypdf==5.4.0
gunicorn==23.0.0
python-dotenv