[SOMA][BOT-3][INFRA] skeleton: project folder structure and all package manifests

This commit is contained in:
Ramakrishna Mamidi
2026-03-23 01:13:11 +05:30
parent 00e314eb89
commit f857845dd2
18 changed files with 1024 additions and 0 deletions

30
soma/backend/Dockerfile Normal file
View File

@@ -0,0 +1,30 @@
FROM python:3.11-slim
# System deps
RUN apt-get update && apt-get install -y \
gcc \
libpq-dev \
curl \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Install Python dependencies before copying app code
# (layer cache: dependencies change less often than code)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy application code
COPY . .
# Create uploads directory
RUN mkdir -p /app/uploads
# Non-root user for security
RUN addgroup --system appgroup && adduser --system --group appgroup
RUN chown -R appgroup:appgroup /app
USER appgroup
EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "1"]

41
soma/backend/alembic.ini Normal file
View File

@@ -0,0 +1,41 @@
[alembic]
script_location = alembic
prepend_sys_path = .
version_path_separator = os
sqlalchemy.url = driver://user:pass@localhost/dbname
[post_write_hooks]
[loggers]
keys = root,sqlalchemy,alembic
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = WARN
handlers = console
qualname =
[logger_sqlalchemy]
level = WARN
handlers =
qualname = sqlalchemy.engine
[logger_alembic]
level = INFO
handlers =
qualname = alembic
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %H:%M:%S

View File

@@ -0,0 +1,3 @@
# SOMA Backend
# Phase 0 completion signal — this file's existence indicates the skeleton is ready.
# Bot 1 and Bot 2 may now begin parallel work.

View File

@@ -0,0 +1,22 @@
fastapi==0.115.0
uvicorn[standard]==0.30.0
sqlalchemy[asyncio]==2.0.35
alembic==1.13.0
asyncpg==0.29.0
redis[hiredis]==5.0.0
python-jose[cryptography]==3.3.0
passlib[bcrypt]==1.7.4
pyotp==2.9.0
qrcode[pil]==7.4.2
pdfplumber==0.11.0
ollama==0.3.0
google-generativeai==0.8.0
groq==0.9.0
httpx==0.27.0
apscheduler==3.10.4
boto3==1.34.0
python-multipart==0.0.9
pydantic-settings==2.4.0
chromadb==0.5.0
psycopg2-binary==2.9.9
pytz==2024.1