Este proyecto puede ejecutarse de dos maneras:
- Con Docker, utilizando los contenedores definidos en
docker-compose.yml. - Localmente con Python (venv), configurando las variables de entorno para usar los servicios reales de base de datos y Redis.
Antes de comenzar, asegúrate de tener instalado:
- Docker
- Docker Compose
- Python 3.8+ (solo si vas a ejecutar el proyecto sin Docker)
Verifica tus versiones con:
docker --version
docker compose version
python --versionEste método permite levantar el entorno completo (API, base de datos y Redis) sin necesidad de instalar dependencias manualmente.
docker compose builddocker compose updocker compose up -ddocker compose logs -fdocker compose downdocker compose up --build- API: http://localhost:8000
- Documentación Swagger: http://localhost:8000/docs
- Documentación ReDoc: http://localhost:8000/redoc
- Base de datos (PostgreSQL): puerto local
5433 - Redis: puerto local
6379
Si prefieres ejecutar la aplicación directamente desde tu entorno local, debes configurar tu entorno virtual y asegurarte de que las variables de entorno .env apunten a tus servicios reales (no los contenedores).
python -m venv venv
venv\Scripts\activatepython3 -m venv venv
source venv/bin/activatepip install -r requirements.txtCrea un archivo .env (puedes copiar el ejemplo si existe):
cp .env.example .envEdita las variables con tus configuraciones reales (base de datos y Redis):
DB_TYPE=postgres
DB_USER=admin
DB_PASSWORD=admin123
DB_NAME=appcine
DB_HOST=db
DB_PORT=5432
REDIS_URL=redis://redis:6379/0
SECRET_KEY=super_secret_key_123
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=200
FRONTEND_ORIGIN=http://localhost:3000Importante:
Si ejecutas el proyecto localmente (sin Docker), debes reemplazar:
DB_HOST=dbpor el host real olocalhostsi usas una base de datos instalada localmente.REDIS_URL=redis://redis:6379/0por la URL de tu servidor Redis real (por ejemplo,redis://localhost:6379/0o un host remoto).
Ejemplo para ejecución local real:
DB_HOST=localhost
REDIS_URL=redis://localhost:6379/0uvicorn app.main:app --reloadLa aplicación se ejecutará en:
http://localhost:8000
- Swagger: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
deactivate