133 lines
4.9 KiB
Markdown
133 lines
4.9 KiB
Markdown
# Shop
|
|
|
|
[](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) |
|