fran1215/fastapi-test
0
1---2title: Fastapi Test3sdk: docker4colorFrom: purple5---6 7# Uso8 9## Despliegue de la aplicación10 11La aplicación ha sido diseñada para ser desplegada en fly.io. Para ello, será12necesario tener instalada el CLI `flyctl`13 14```sh15# Cargar las variables de entorno16cat .env | flyctl secrets import17# Desplegar la aplicación18flyctl deploy19```20 21## Ejecución de desarrollo22 23### Requisitos24 25- Python 3.11 o superior26- Pip327 28### Instrucciones29 30```sh31# Crear un entorno virtual32python -m venv .venv33# Desactivar restricciones para ejecutar script desde powershell como admin34Set-ExecutionPolicy RemoteSigned35 36# Activar entorno virtual37.venv/bin/activate38 39# Activar la restricción de nuevo por seguridad40Set-ExecutionPolicy Restricted41 42# Actualizar pip43py -m pip install --upgrade pip44 45# Instalar los paquetes necesarios46pip install -r requirements.txt47 48# Configuración necesaria para arrancar el servicio49export mongo_url=<VALOR>50export mongo_collection=<VALOR>51# Ver la sección Configuración ...52# Iniciar el servidor53uvicorn --reload --port 8000 --host 127.0.0.1 app:app54```55 56## Ejecución mediante docker57 58```sh59# Compilar el contenedor60docker build -t fastapi-app .61# Inicializar el contenedor. Añadir todas las variables de entorno necesarias62docker run -p 8000:8080 \63 -e mongo_url=<VALOR> \64 -e mongo_collection=<VALOR> \65 -e mongo_database=<VALOR> \66 fastapi-app67```68 69# Configuración70 71La aplicación admite las siguientes opciones de configuración mediante ficheros72`.env` o variables de entorno73 74| Variable | Descripción | Valor por defecto |75| -------------------- | --------------------------------------- | ----------------- |76| `mongo_url` | URL de un servidor Mongodb | |77| `mongo_collection` | Colección donde almacenar los datos | |78| `mongo_database` | Base de datos donde buscar la colección | |79| `locationiq_apikey` | LocationIQ api key | |80| `locationiq_baseurl` | LocationIQ API URL | |81| `paypal_clientid` | Paypal client id | |82| `paypal_secret` | Paypal client secret | |83| `paypal_url` | Paypal API URL | |84| `auth_audience` | JWT audience | |85| `auth_baseurl` | Base url where to find public JWK | |86 87# Documentación88 89Se proporciona un fichero `openapi.json` con la especificación de OpenApi.90Además, el propio servidor web proporciona la documentación sobre los endpoints91REST bajo las rutas `/docs` (SwaggerUI) y `/redoc` (Redoc)