Files
plantillas-proyectos/.env.example
Kevin_Ramirez 880999b03a
Some checks failed
Build Producción & Push a Harbor / test (push) Failing after 2s
Build Producción & Push a Harbor / build (push) Has been skipped
feat: plantilla base workspace SaaS
Convierte el repositorio de Anexo76 en una plantilla limpia y reutilizable
para nuevos proyectos del ecosistema Workspace de Aduanasoft.

Cambios principales:
- Elimina módulos específicos de Anexo76: a76, a24, sitar, public
- Agrega módulo example/ con patrón CRUD de referencia (models/dto/service/routes)
- Limpia migraciones Alembic: solo quedan las 6 de core (users, tenants, permissions)
- Reemplaza todas las rutas del dashboard con stubs genéricos
- Elimina lógica de negocio aduanera: shortcuts, CSV imports, permisos, catálogos
- Simplifica variables de entorno: una sola WORKSPACE_URL deriva Hub y Keycloak
- Agrega scripts/auth-mode.sh para alternar entre auth local y workspace
- Configura docker-compose con nombres genéricos (app-*)
- Corrige flujo SSO: elimina system-gate SCAF/SCAII que bloqueaba el login
- Modo DEV_LOCAL_AUTH para desarrollo sin Keycloak ni Hub

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 10:55:17 -05:00

114 lines
3.7 KiB
Plaintext

# ==================================
# ANEXO76 - 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 -----
DEBUG=True
ENVIRONMENT=development
CORE_DB_HOST=postgres-a76
CORE_DB_PORT=5432
CORE_DB_NAME=anexo76_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=anexo76
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=""