Files
shoppy/README.md
T
2025-01-31 12:50:27 +01:00

133 lines
4.9 KiB
Markdown

# Shop
[![codecov](https://codecov.io/gh/pablo-moreno/shoppy/graph/badge.svg?token=8oQg2Mqn3m)](https://codecov.io/gh/pablo-moreno/shoppy)
## Desarrollo
### Establecer variables de entorno
A partir del archivo `.env.example`, creamos un archivo `.env` en el que podemos establecer las
[variables de entorno](#variables-de-entorno).
### Instalar dependencias
El siguiente comando instalará todas las dependencias, incluidas las necesarias para desarrollo y testing.
```bash
pip install -r requirements.test.txt
```
### Lanzar migraciones
```bash
python manage.py migrate
```
### Arrancar servidor
```bash
python manage.py runserver
```
### Crear superusuario
Con este usuario tendremos control total de la aplicación desde el [admin de Django](http://localhost:8000/admin/)
```bash
python manage.py createsuperuser
```
### Arrancar Tailwind
```bash
tailwindcss -w -i theme/static/css/main.css -o theme/static/css/styles.css
```
### Tareas de Celery
```bash
celery -A config worker -B -l debug
```
### Pruebas con pytest
```bash
pytest --cov
```
## Docker
### Descarga
```bash
docker pull ghcr.io/pablo-moreno/shoppy
```
### Construir imagen
```bash
docker build -t shoppy .
```
### Crear contenedor
**API**
```bash
docker run -it --rm -p 8000:80 -e RUN_SERVER=TRUE --env-file=.env shoppy_api
```
**Tareas en segundo plano**
```bash
docker run -it --rm -p 8000:80 -e RUN_CELERY=TRUE --env-file=.env shoppy_tasks
```
## Variables de entorno
Puedes crear un archivo `.env` con las siguientes variables de entorno.
| Variable | Default value | Comments |
|-------------------------|----------------------------------|--------------------------------------------|
| SECRET_KEY | secret key | Clave de encriptación |
| DEBUG | TRUE | Modo de desarrollo activo |
| DATABASE_URL | sqlite:///db.sqlite3 | URL de conexión a base de datos |
| STATIC_ROOT | static | Carpeta de estáticos |
| MEDIA_ROOT | media | Carpeta de archivos media |
| REDIS_HOST | redis | Dirección de servidor Redis |
| REDIS_PORT | 6379 | Puerto de Redis |
| PAGE_SIZE | 20 | Tamaño de paginación |
| ALLOWED_HOSTS | * | Hosts permitidos (CORS) |
| CELERY_BROKER_URL | redis://172.17.0.1:6379/0 | Url de conexión para celery |
| S3_ENABLED | FALSE | Activado protocolo S3 |
| S3_HOST | | URL de servidor S3 |
| AWS_ACCESS_KEY_ID | | Clave de acceso de S3 |
| AWS_SECRET_ACCESS_KEY | | Clave secreta de S3 |
| AWS_STORAGE_BUCKET_NAME | | Nombre del bucket de S3 |
| AWS_S3_ENDPOINT_URL | | Endpoint de S3 |
## Depurar pagos TPV con Redsys
Para poder usar el TPV en la máquina local necesitaremos instalar y configurar [`ngrok`](https://ngrok.com/),
siguiendo los pasos que nos indican en la web al crear nuestra cuenta
Arrancaremos ngrok con el siguiente comando:
```bash
ngrok http http://localhost:8000
```
Ngrok nos dará una URL accesible desde fuera, que tendremos que guardar en los `Ajustes de la tienda`
como `Dominio del TPV`
Tendremos que establecer también los siguientes ajustes de la cuenta con estos valores para desarrollo.
| Variable | Valor para desarrollo | Descripción |
|------------------------|----------------------------------|------------------------------------------------------------------------------|
| `redsys_shared_secret` | sq7HjrUOBfKmC576ILgskD5srU870gJ7 | Clave privada de Redsys |
| `merchant_code` | 999008881 | Código de negocio de Redsys |
| `terminal` | 001 | Terminal de Redsys |
| `currency_code` | 978 | Código de moneda de Redsys |
| `tpv_domain` | <variable> | Dominio del TPV para redirección de Redsys (en local lo obtenemos por ngrok) |