# ================================== # CRM Aduanasoft - Variables de Entorno # ================================== # ----- PostgreSQL App ----- POSTGRES_APP_PASSWORD=postgres # ----- PostgreSQL Keycloak ----- POSTGRES_KEYCLOAK_PASSWORD=postgres # ----- Keycloak Admin ----- KEYCLOAK_ADMIN=admin KEYCLOAK_ADMIN_PASSWORD=admin # ----- Keycloak Configuración ----- KEYCLOAK_REALM=master KEYCLOAK_CLIENT_ID=app-backend KEYCLOAK_CLIENT_SECRET=dev-secret KEYCLOAK_FRONTEND_CLIENT_ID=app-frontend # ----- Backend ----- APP_NAME=CRM Aduanasoft DEBUG=True ENVIRONMENT=development CORE_DB_HOST=postgres CORE_DB_PORT=5432 CORE_DB_NAME=crm_core CORE_DB_USER=postgres CORE_DB_PASSWORD=postgres # Lista de orígenes permitidos (CORS) # Ejemplo para Hub: http://localhost:5173,http://100.78.6.108:5174,http://100.78.6.108:8001 CORS_ORIGINS=http://localhost:5173,http://localhost:3000 # ----- Frontend ----- NODE_ENV=development VITE_API_URL=http://localhost:8000/api INTERNAL_API_URL=http://backend:8000/api # ⚠️ ADVERTENCIA PRODUCCIÓN — ORIGIN, VITE_HUB_URL y APP_PUBLIC_URL # ───────────────────────────────────────────────────────────────────── # Docker Compose carga ESTE archivo (.env raíz) automáticamente cuando # se ejecuta: docker compose -f docker-compose.prod.yml up # # Si estas variables tienen valores localhost aquí, PISARÁN los defaults # de docker-compose.prod.yml y causarán que el login falle en producción # (redirect_uri y KC URL apuntarán a localhost). # # Para dev local (docker-compose.yml): dejar localhost. # Para producción (docker-compose.prod.yml): asegurarse que el servidor # NO tenga este .env raíz con valores localhost, O usar: # docker compose --env-file .env.prod -f docker-compose.prod.yml up # # Variables críticas para producción: # ORIGIN=https://anexo76-dev.aduanasoft.com ← determina url.origin en SvelteKit # VITE_HUB_URL=https://workspace.aduanasoft.com # APP_PUBLIC_URL=https://anexo76-dev.aduanasoft.com ORIGIN=http://localhost:5173 VITE_HUB_URL=http://localhost:3001 APP_PUBLIC_URL=http://localhost:5173 VITE_KEYCLOAK_REALM=master VITE_KEYCLOAK_URL=http://localhost:8080/kcauth VITE_KEYCLOAK_CLIENT_ID=app-frontend #------ Celery / Valkey ---------- VALKEY_URL=redis://valkey:6379/0 PERMISSION_CACHE_ENABLED=true PERMISSION_CACHE_TTL_SECONDS=300 # ----- MinIO (S3-compatible) ----- MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=minioadmin MINIO_API_PORT=9100 MINIO_CONSOLE_PORT=9101 # ----- Imports CSV (layouts_csv): redis | minio ----- CSV_IMPORT_STORAGE=minio S3_ENDPOINT_URL=http://minio:9000 S3_ACCESS_KEY=minioadmin S3_SECRET_KEY=minioadmin S3_BUCKET=crm S3_REGION=us-east-1 S3_USE_SSL=false # Logos, certificados, help: mismo bucket. Si CSV_IMPORT_STORAGE=minio, también se usa MinIO aquí # (use_s3_object_storage = minio CSV o S3_FILE_STORAGE=true). S3_FILE_STORAGE=true S3_PRESIGNED_EXPIRES_SECONDS=3600 COVE_FIEL_HASH_KEY= COVE_FIEL_HASH_IV= COVE_API_URL=https://api.vu.aduanasoft.com COVE_API_VERIFY_SSL=False # ----- Sitar API ----- SITAR_API_URL=http://api.sitar.aduanasoft.com SITAR_API_USER=user_sitar_api SITAR_API_PASSWORD=password123 # ================================== # CONFIGURACIÓN DE SINCRONIZACIÓN # ================================== # Hub IP: 100.78.6.108 # URL del Hub para sincronización (Solo si es CLIENTE) # Ejemplo: http://100.78.6.108:8001/api/v1/core/help-center/sync/ CENTRAL_SERVER_URL= # UUID único de este cliente (Opcional, se genera uno si está vacío) # Token de seguridad compartido (Debe ser IDÉNTICO en Hub y Clientes) SYNC_SECRET_TOKEN=change-this-sync-token-in-production # Lista de spokes (Solo si es HUB y desea retransmitir a otros - Opcional) SPOKE_URLS="" # ================================== # PAC COMERCIO DIGITAL (timbrado CFDI) # ================================== # El modo de timbrado se decide POR FACTURA, en fin.invoices.stamping_mode. # Esta variable solo fija con qué valor nacen las facturas que no lo especifican. # pruebas -> pruebas.comercio-digital.mx | produccion -> ws.comercio-digital.mx # Una factura en "produccion" emite un CFDI con validez fiscal real ante el SAT. PAC_DEFAULT_MODE=pruebas # Credenciales del web service (headers usrws / pwdws). NO commitear valores reales: # van en .env, que está en .gitignore. PAC_USER= PAC_PASSWORD= # Opcional: correo al que el PAC notifica el comprobante (header email). PAC_NOTIFICATION_EMAIL= # Clave maestra que cifra las contraseñas de los CSD en la base de datos. OBLIGATORIA para # poder cargar certificados desde Configuración de Facturación. Generarla con: # python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" # Si se cambia, las contraseñas ya guardadas dejan de poder descifrarse y hay que recargar # los certificados. CSD_ENCRYPTION_KEY= # LEGADO: contraseña global del CSD. Sólo se usa como respaldo si una empresa no tiene la # suya guardada. Lo correcto es cargar el CSD por empresa desde la interfaz. CSD_PASSWORD=