Saltar a contenido

Configuración

Esta guía explica cómo configurar las variables de entorno y servicios externos necesarios para el Sistema A3.

Variables de Entorno (.env)

El Sistema A3 utiliza un archivo .env para almacenar configuraciones sensibles que no deben estar en el control de versiones.

1. Crear el Archivo .env

En la raíz del proyecto, crea el archivo .env:

touch .env
type nul > .env

2. Variables Básicas

Agrega estas variables mínimas para desarrollo local:

# Modo de desarrollo
DEBUG=True

# Base de datos PostgreSQL
DB_NAME=sistema_a3
DB_USER=tu_usuario_postgres
DB_PASSWORD=tu_contraseña_postgres
DB_HOST=localhost
DB_PORT=5432

# Django Secret Key (genera una nueva para producción)
SECRET_KEY=tu-secret-key-super-segura-aqui

Seguridad

NUNCA commitees el archivo .env al repositorio. Ya está incluido en .gitignore.

3. Variables de AWS S3

Para almacenamiento de archivos en AWS S3:

# AWS S3 Configuration
AWS_ACCESS_KEY_ID=tu_access_key
AWS_SECRET_ACCESS_KEY=tu_secret_key
AWS_STORAGE_BUCKET_NAME=nombre-del-bucket
AWS_S3_REGION_NAME=us-east-1
USE_S3=True

Desarrollo local

Si no tienes AWS configurado, puedes usar USE_S3=False para almacenar archivos localmente durante desarrollo.

4. Variables de API Externa (SAP)

Para integración con la API de SAP HANA:

# SAP API Configuration
SAP_API_URL=http://atercerosb1.ddns.net
SAP_API_USERNAME=usuario_api
SAP_API_PASSWORD=contraseña_api

5. Variables de Web Push

Para notificaciones push:

# Web Push (VAPID)
VAPID_PUBLIC_KEY=tu_public_key
VAPID_PRIVATE_KEY=tu_private_key
VAPID_ADMIN_EMAIL=admin@ejemplo.com

Generar claves VAPID

Puedes generar las claves VAPID usando la librería pywebpush:

from pywebpush import webpush, WebPushException
import json

# Genera las claves
vapid = webpush.Vapid()
vapid.generate_keys()
print("Public Key:", vapid.public_key)
print("Private Key:", vapid.private_key)

6. Variables de Email (Opcional)

Para envío de emails:

# Email Configuration
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_HOST_USER=tu_email@gmail.com
EMAIL_HOST_PASSWORD=tu_app_password
EMAIL_USE_TLS=True

Configuración Completa de Ejemplo

Aquí está un ejemplo completo del archivo .env:

# === Desarrollo ===
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1

# === Django ===
SECRET_KEY=django-insecure-ejemplo-cambiar-en-produccion

# === Base de Datos ===
DB_NAME=sistema_a3
DB_USER=postgres
DB_PASSWORD=mi_password_seguro
DB_HOST=localhost
DB_PORT=5432

# === AWS S3 ===
USE_S3=False  # True en producción
AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_STORAGE_BUCKET_NAME=sistema-a3-media
AWS_S3_REGION_NAME=us-east-1

# === SAP API ===
SAP_API_URL=http://atercerosb1.ddns.net
SAP_API_USERNAME=api_user
SAP_API_PASSWORD=api_pass

# === Web Push ===
VAPID_PUBLIC_KEY=BJxxxxxxxxxxxxxxxxxxxx
VAPID_PRIVATE_KEY=yyyyyyyyyyyyyyyyyyyyyyyy
VAPID_ADMIN_EMAIL=admin@aterceros.com

# === Email (Opcional) ===
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_HOST_USER=notificaciones@aterceros.com
EMAIL_HOST_PASSWORD=app_password_de_gmail
EMAIL_USE_TLS=True

Configuración de Servicios Externos

AWS S3

  1. Crea una cuenta en AWS
  2. Crea un bucket en S3
  3. Configura permisos IAM con acceso a S3
  4. Obtén tus credenciales (Access Key y Secret Key)
  5. Agrega las credenciales al archivo .env

SAP API

La integración con SAP requiere credenciales proporcionadas por el equipo de sistemas. Contacta al administrador del sistema para obtenerlas.

Verificar Configuración

Para verificar que todas las variables estén cargadas correctamente:

python manage.py shell
from django.conf import settings

# Verificar DEBUG
print(f"DEBUG: {settings.DEBUG}")

# Verificar base de datos
print(f"DB Name: {settings.DATABASES['default']['NAME']}")

# Verificar AWS (si está configurado)
if hasattr(settings, 'AWS_ACCESS_KEY_ID'):
    print(f"AWS Bucket: {settings.AWS_STORAGE_BUCKET_NAME}")

Siguientes Pasos

Una vez configuradas las variables de entorno:

  1. Base de Datos: Configura PostgreSQL y ejecuta migraciones
  2. Despliegue: Aprende cómo hacer deploy en Heroku

Problemas Comunes

Las variables no se cargan

Solución: Verifica que el archivo .env esté en la raíz del proyecto y que python-dotenv esté instalado.

Error de conexión a AWS S3

Solución: Verifica tus credenciales y que el bucket exista en la región especificada. Usa USE_S3=False para desarrollo local.

Error de conexión a la API SAP

Solución: Verifica que la URL de la API sea accesible y que las credenciales sean correctas.

Referencia Completa

Para una lista completa de todas las variables de entorno disponibles, consulta la referencia de variables de entorno.


¿Configuración lista? Continúa con la configuración de la base de datos.