Espacio Público · Datos
  • Inicio
  • Explorar
    • Catálogo
    • Gráficos
    • Dashboard
    • Mapas
    • Reportes
    • Monitoreo
    • Workbench
    • Herramientas
  • Proyecto
  • Documentación
  • API
    • Endpoint base
    • OpenAPI
    • Estado
  1. Guías
  2. Entornos y despliegue
  • Plataforma de Datos · ep.illanes00.cl
  • Lanzamientos
    • Changelog
  • Infraestructura
    • Arquitectura general
    • Operación y despliegue
    • Seguridad y cumplimiento
  • API & Catálogo
    • Catálogo de la API REST
    • Catálogo de datos
    • Monitoreo de la API
    • Catálogo DIPRES (Raw)
  • Datos & ETL
    • Procesos ETL
    • Diseño de esquema y pipelines
    • Data Workbench
  • Planificación
    • Backlog Técnico y Roadmap
    • Backlog Quarto
  • Guías
    • Entornos y despliegue
    • INIT · Bootstrap del proyecto
    • AGENTS · Roles y responsabilidades

En esta página

  • Entornos y despliegue
    • Variables de entorno
    • Ramas Git
    • Flujo de despliegue (CI/CD)
    • Dos entornos separados

Otros formatos

  • MS Word
  • Github (GFM)
  • PDF
  1. Guías
  2. Entornos y despliegue

Entornos y despliegue

Variables de entorno

Archivo Uso Comentario
.env.development Desarrollo local Usar ENVIRONMENT=development, base local, API_CACHE_TTL_SECONDS=30.
.env.production Producción (VPS) ENVIRONMENT=production, credenciales reales, TTL ≥ 120.

Ejemplo .env.development:

ENVIRONMENT=development
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/epdatos
SECRET_KEY=dev-secret
APP_HOST=127.0.0.1
APP_PORT=8107
API_CACHE_TTL_SECONDS=30
SENTRY_DSN=
SENTRY_TRACES_SAMPLE_RATE=0.0
SENTRY_PROFILES_SAMPLE_RATE=0.0

Ejemplo .env.production (en el VPS):

ENVIRONMENT=production
DATABASE_URL=postgresql://illanes00-ep:<password>@127.0.0.1:5432/epdatos
SECRET_KEY=<openssl rand -hex 32>
APP_HOST=127.0.0.1
APP_PORT=8107
API_CACHE_TTL_SECONDS=120
SENTRY_DSN=https://<public>@oXXXX.ingest.sentry.io/<project>
SENTRY_TRACES_SAMPLE_RATE=0.1
SENTRY_PROFILES_SAMPLE_RATE=0.0

Ramas Git

  • main: producción.
  • staging: staging (mirror de main, pruebas antes de release).
  • feat/*: ramas feature → PR obligatoria hacia staging o main.

Flujo de despliegue (CI/CD)

  1. Merge en main desencadena workflow:

    • Lint (black, prettier, ruff, flake8, pre-commit).
    • Tests (unit, data, api, ui, e2e).
    • Smoke (curl /healthz, /api/<ver>/health, /api/<ver>/hello).
  2. Job de deploy (pendiente de credenciales) ejecuta en VPS:

    git pull origin main
    make migrate
    make seed_min
    sudo systemctl restart illanes00-ep
    scripts/post_deploy_checks.sh

Dos entornos separados

  • Dev local: iniciar Postgres (docker/host), usar .env.development, correr make dev.
  • Producción: servicio systemd (/etc/systemd/system/illanes00-ep.service) cargando .env (produc.).

Opcionalmente se pueden crear subdirectorios para overrides:

config/
├── development/.env.sample
└── production/.env.sample

Ambos entornos comparten el mismo repo; diferencia radica en .env y credenciales.

Volver arriba
Descargar HTML Descargar PDF
Backlog Quarto
INIT · Bootstrap del proyecto