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:
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:
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¶
- Crea una cuenta en AWS
- Crea un bucket en S3
- Configura permisos IAM con acceso a S3
- Obtén tus credenciales (Access Key y Secret Key)
- 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:
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:
- Base de Datos: Configura PostgreSQL y ejecuta migraciones
- 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.