This commit is contained in:
2026-04-28 19:48:02 -05:00
parent 798bd14312
commit f548a2d9bd
7 changed files with 5035 additions and 21 deletions

View File

@ -1,4 +1,4 @@
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/hermesmessages
DATABASE_URL=postgresql+psycopg://postgres:postgres@localhost:5433/hermesmessages
REDIS_URL=redis://localhost:6379
SECRET_KEY=changeme-use-a-long-random-string
META_APP_ID=

View File

@ -1,6 +1,11 @@
import asyncio
import sys
from logging.config import fileConfig
# Windows + asyncpg requiere SelectorEventLoop (no ProactorEventLoop)
if sys.platform == "win32":
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
from alembic import context
from sqlalchemy.ext.asyncio import create_async_engine

View File

@ -1,20 +1,19 @@
fastapi==0.115.0
uvicorn[standard]==0.30.6
sqlalchemy[asyncio]==2.0.35
asyncpg==0.29.0
alembic==1.13.3
pydantic==2.9.2
pydantic-settings==2.5.2
pydantic[email]==2.9.2
redis==5.1.1
python-jose[cryptography]==3.3.0
passlib[bcrypt]==1.7.4
python-multipart==0.0.12
httpx==0.27.2
anthropic==0.34.2
slowapi==0.1.9
python-dotenv==1.0.1
fastapi>=0.115.0
uvicorn[standard]>=0.30.6
sqlalchemy[asyncio]>=2.0.36
psycopg[binary]>=3.2.0
alembic>=1.13.3
pydantic>=2.10.0
pydantic-settings>=2.7.0
pydantic[email]>=2.10.0
redis>=5.1.1
python-jose[cryptography]>=3.3.0
bcrypt>=4.2.0
python-multipart>=0.0.12
httpx>=0.27.2
anthropic>=0.40.0
python-dotenv>=1.0.1
# testing
pytest==8.3.3
pytest-asyncio==0.24.0
pytest>=8.3.3
pytest-asyncio>=0.24.0

26
backend/run.py Normal file
View File

@ -0,0 +1,26 @@
"""
Arranque local para Windows + Python 3.14.
psycopg3 requiere SelectorEventLoop; este script lo configura
antes de que uvicorn tome el control del event loop.
"""
import asyncio
import selectors
import uvicorn
async def main():
config = uvicorn.Config(
"app.main:app",
host="0.0.0.0",
port=8000,
reload=False,
log_level="info",
)
server = uvicorn.Server(config)
await server.serve()
if __name__ == "__main__":
loop = asyncio.SelectorEventLoop(selectors.SelectSelector())
asyncio.set_event_loop(loop)
loop.run_until_complete(main())

View File

@ -6,7 +6,7 @@ services:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: hermesmessages
ports:
- "5432:5432"
- "5433:5432"
volumes:
- postgres_data:/var/lib/postgresql/data

4985
frontend/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -26,7 +26,6 @@
"@radix-ui/react-switch": "^1.1.1",
"@radix-ui/react-tabs": "^1.1.1",
"@radix-ui/react-avatar": "^1.1.1",
"@radix-ui/react-badge": "^1.0.0",
"@radix-ui/react-separator": "^1.1.0",
"@radix-ui/react-label": "^2.1.0"
},