fix(installer): traducir instalador a español, corregir tildes y optimizar contraste de fondos
All checks were successful
Build, MSI & Deploy / Build Docker images (push) Successful in 4m47s
Build, MSI & Deploy / Build Edge Agent Binaries (push) Successful in 7s
Build, MSI & Deploy / Deploy to Dokploy (push) Successful in 1s
Build, MSI & Deploy / Build Edge Agent MSI (push) Successful in 34s
Build, MSI & Deploy / Send notification (push) Successful in 0s
All checks were successful
Build, MSI & Deploy / Build Docker images (push) Successful in 4m47s
Build, MSI & Deploy / Build Edge Agent Binaries (push) Successful in 7s
Build, MSI & Deploy / Deploy to Dokploy (push) Successful in 1s
Build, MSI & Deploy / Build Edge Agent MSI (push) Successful in 34s
Build, MSI & Deploy / Send notification (push) Successful in 0s
This commit is contained in:
@@ -31,9 +31,9 @@ jobs:
|
|||||||
- name: Build & Push SHA images
|
- name: Build & Push SHA images
|
||||||
run: |
|
run: |
|
||||||
# Build SHA tag
|
# Build SHA tag
|
||||||
docker compose build
|
docker compose -f docker-compose.build.yml build
|
||||||
# Push SHA tag
|
# Push SHA tag
|
||||||
docker compose push
|
docker compose -f docker-compose.build.yml push
|
||||||
env:
|
env:
|
||||||
IMAGE_TAG: ${{ env.IMAGE_TAG }}
|
IMAGE_TAG: ${{ env.IMAGE_TAG }}
|
||||||
VITE_API_URL: ${{ github.ref_name == 'main' && secrets.PROD_VITE_API_URL || secrets.DEV_VITE_API_URL }}
|
VITE_API_URL: ${{ github.ref_name == 'main' && secrets.PROD_VITE_API_URL || secrets.DEV_VITE_API_URL }}
|
||||||
@@ -48,9 +48,9 @@ jobs:
|
|||||||
- name: Build & Push Branch images
|
- name: Build & Push Branch images
|
||||||
run: |
|
run: |
|
||||||
# Build Branch tag (instant due to cache)
|
# Build Branch tag (instant due to cache)
|
||||||
docker compose build
|
docker compose -f docker-compose.build.yml build
|
||||||
# Push Branch tag
|
# Push Branch tag
|
||||||
docker compose push
|
docker compose -f docker-compose.build.yml push
|
||||||
env:
|
env:
|
||||||
IMAGE_TAG: ${{ github.ref_name == 'main' && 'latest' || 'develop' }}
|
IMAGE_TAG: ${{ github.ref_name == 'main' && 'latest' || 'develop' }}
|
||||||
VITE_API_URL: ${{ github.ref_name == 'main' && secrets.PROD_VITE_API_URL || secrets.DEV_VITE_API_URL }}
|
VITE_API_URL: ${{ github.ref_name == 'main' && secrets.PROD_VITE_API_URL || secrets.DEV_VITE_API_URL }}
|
||||||
@@ -203,7 +203,7 @@ jobs:
|
|||||||
& "$wixBin\candle.exe" -arch x64 -out "$buildDir\main.wixobj" "$buildDir\main.wxs"
|
& "$wixBin\candle.exe" -arch x64 -out "$buildDir\main.wixobj" "$buildDir\main.wxs"
|
||||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||||
|
|
||||||
& "$wixBin\light.exe" -ext WixUIExtension -ext WixUtilExtension "$buildDir\main.wixobj" -o "$buildDir\edge-agent.msi"
|
& "$wixBin\light.exe" -cultures:es-es -ext WixUIExtension -ext WixUtilExtension "$buildDir\main.wixobj" -o "$buildDir\edge-agent.msi"
|
||||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||||
|
|
||||||
Write-Host "MSI generado exitosamente en: $buildDir\edge-agent.msi"
|
Write-Host "MSI generado exitosamente en: $buildDir\edge-agent.msi"
|
||||||
@@ -299,7 +299,8 @@ jobs:
|
|||||||
*MSI Build (Prod):* ${MSI_RES}
|
*MSI Build (Prod):* ${MSI_RES}
|
||||||
*Deploy:* ${DEPLOY_RES}"
|
*Deploy:* ${DEPLOY_RES}"
|
||||||
|
|
||||||
curl -s -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \
|
echo "Enviando notificacion a Telegram..."
|
||||||
|
curl -i -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \
|
||||||
-d chat_id="${{ secrets.TELEGRAM_CHAT_ID }}" \
|
-d chat_id="${{ secrets.TELEGRAM_CHAT_ID }}" \
|
||||||
-d parse_mode="Markdown" \
|
-d parse_mode="Markdown" \
|
||||||
-d text="$MESSAGE"
|
-d text="$MESSAGE"
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
# =============================================================================
|
# =============================================================================
|
||||||
# OmniOil SCADA - Microservicios y Aplicaciones Frontend
|
# OmniOil SCADA - Microservicios y Aplicaciones Frontend (Sin compilación en Prod)
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
services:
|
services:
|
||||||
backend-api:
|
backend-api:
|
||||||
restart: always
|
restart: always
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile.unified
|
|
||||||
target: backend-api
|
|
||||||
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/backend-api:${IMAGE_TAG:-latest}
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/backend-api:${IMAGE_TAG:-latest}
|
||||||
environment:
|
environment:
|
||||||
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@timescaledb:5432/${DB_NAME}
|
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@timescaledb:5432/${DB_NAME}
|
||||||
@@ -59,10 +55,6 @@ services:
|
|||||||
|
|
||||||
events-relay:
|
events-relay:
|
||||||
restart: always
|
restart: always
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile.unified
|
|
||||||
target: events-relay
|
|
||||||
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/events-relay:${IMAGE_TAG:-latest}
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/events-relay:${IMAGE_TAG:-latest}
|
||||||
environment:
|
environment:
|
||||||
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@timescaledb:5432/${DB_NAME}
|
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@timescaledb:5432/${DB_NAME}
|
||||||
@@ -79,10 +71,6 @@ services:
|
|||||||
|
|
||||||
telemetry-ingestor:
|
telemetry-ingestor:
|
||||||
restart: always
|
restart: always
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile.unified
|
|
||||||
target: telemetry-ingestor
|
|
||||||
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/telemetry-ingestor:${IMAGE_TAG:-latest}
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/telemetry-ingestor:${IMAGE_TAG:-latest}
|
||||||
environment:
|
environment:
|
||||||
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@timescaledb:5432/${DB_NAME}
|
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@timescaledb:5432/${DB_NAME}
|
||||||
@@ -102,10 +90,6 @@ services:
|
|||||||
|
|
||||||
json-generator:
|
json-generator:
|
||||||
restart: always
|
restart: always
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile.unified
|
|
||||||
target: json-generator
|
|
||||||
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/json-generator:${IMAGE_TAG:-latest}
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/json-generator:${IMAGE_TAG:-latest}
|
||||||
environment:
|
environment:
|
||||||
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@timescaledb:5432/${DB_NAME}
|
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@timescaledb:5432/${DB_NAME}
|
||||||
@@ -126,12 +110,6 @@ services:
|
|||||||
- anh_network
|
- anh_network
|
||||||
|
|
||||||
landing:
|
landing:
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile.frontend
|
|
||||||
target: landing
|
|
||||||
args:
|
|
||||||
- NEXT_PUBLIC_TURNSTILE_SITE_KEY=${NEXT_PUBLIC_TURNSTILE_SITE_KEY:-${VITE_TURNSTILE_SITE_KEY}}
|
|
||||||
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/landing:${IMAGE_TAG:-latest}
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/landing:${IMAGE_TAG:-latest}
|
||||||
environment:
|
environment:
|
||||||
- LANDING_API_PROXY_TARGET=${LANDING_API_PROXY_TARGET:-http://backend-api:8000}
|
- LANDING_API_PROXY_TARGET=${LANDING_API_PROXY_TARGET:-http://backend-api:8000}
|
||||||
@@ -142,15 +120,6 @@ services:
|
|||||||
|
|
||||||
frontend-pwa:
|
frontend-pwa:
|
||||||
restart: always
|
restart: always
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile.frontend
|
|
||||||
target: frontend-pwa
|
|
||||||
args:
|
|
||||||
- VITE_API_BASE=/api
|
|
||||||
- VITE_ADMIN_APP_ORIGIN=${VITE_ADMIN_APP_ORIGIN}
|
|
||||||
- VITE_MOBILE_APP_ORIGIN=${VITE_MOBILE_APP_ORIGIN}
|
|
||||||
- VITE_API_URL=${VITE_API_URL}
|
|
||||||
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/frontend-pwa:${IMAGE_TAG:-latest}
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/frontend-pwa:${IMAGE_TAG:-latest}
|
||||||
depends_on:
|
depends_on:
|
||||||
- backend-api
|
- backend-api
|
||||||
@@ -159,17 +128,6 @@ services:
|
|||||||
|
|
||||||
frontend-admin:
|
frontend-admin:
|
||||||
restart: always
|
restart: always
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile.frontend
|
|
||||||
target: frontend-admin
|
|
||||||
args:
|
|
||||||
- VITE_API_BASE=/api
|
|
||||||
- VITE_ADMIN_APP_ORIGIN=${VITE_ADMIN_APP_ORIGIN}
|
|
||||||
- VITE_MOBILE_APP_ORIGIN=${VITE_MOBILE_APP_ORIGIN}
|
|
||||||
- VITE_API_URL=${VITE_API_URL}
|
|
||||||
- VITE_TURNSTILE_SITE_KEY=${VITE_TURNSTILE_SITE_KEY}
|
|
||||||
- VITE_LANDING_APP_ORIGIN=${VITE_LANDING_APP_ORIGIN:-https://omnioil.app/}
|
|
||||||
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/frontend-admin:${IMAGE_TAG:-latest}
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/frontend-admin:${IMAGE_TAG:-latest}
|
||||||
depends_on:
|
depends_on:
|
||||||
- backend-api
|
- backend-api
|
||||||
@@ -178,14 +136,6 @@ services:
|
|||||||
|
|
||||||
frontend-console:
|
frontend-console:
|
||||||
restart: always
|
restart: always
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile.frontend
|
|
||||||
target: frontend-console
|
|
||||||
args:
|
|
||||||
- VITE_API_BASE=/api
|
|
||||||
- VITE_CONSOLE_APP_ORIGIN=${VITE_CONSOLE_APP_ORIGIN:-https://console.omnioil.app}
|
|
||||||
- VITE_ACCESS_REQUEST_REVIEWER_EMAILS=${ACCESS_REQUEST_REVIEWER_EMAILS:-w.farfan@omnioil.app,h.ortegon@omnioil.app}
|
|
||||||
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/frontend-console:${IMAGE_TAG:-latest}
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/frontend-console:${IMAGE_TAG:-latest}
|
||||||
expose:
|
expose:
|
||||||
- "80"
|
- "80"
|
||||||
@@ -195,12 +145,6 @@ services:
|
|||||||
- anh_network
|
- anh_network
|
||||||
|
|
||||||
build-orchestrator:
|
build-orchestrator:
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile.unified
|
|
||||||
target: build-orchestrator
|
|
||||||
args:
|
|
||||||
- BUILD_VERSION=${AGENT_LATEST_VERSION:-0.3.0}
|
|
||||||
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/build-orchestrator:${IMAGE_TAG:-latest}
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/build-orchestrator:${IMAGE_TAG:-latest}
|
||||||
environment:
|
environment:
|
||||||
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@timescaledb:5432/${DB_NAME}
|
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@timescaledb:5432/${DB_NAME}
|
||||||
@@ -235,11 +179,6 @@ services:
|
|||||||
- anh_network
|
- anh_network
|
||||||
|
|
||||||
edge-agent-msi-builder:
|
edge-agent-msi-builder:
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: services/edge-agent/Dockerfile.builder
|
|
||||||
args:
|
|
||||||
- BUILD_VERSION=${AGENT_LATEST_VERSION:-0.3.0}
|
|
||||||
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/edge-agent-msi-builder:${IMAGE_TAG:-latest}
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/edge-agent-msi-builder:${IMAGE_TAG:-latest}
|
||||||
volumes:
|
volumes:
|
||||||
- ${INSTALLER_INCOMING:-installer_incoming}:/app/services/edge-agent/incoming
|
- ${INSTALLER_INCOMING:-installer_incoming}:/app/services/edge-agent/incoming
|
||||||
|
|||||||
95
docker-compose.build.yml
Normal file
95
docker-compose.build.yml
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
# =============================================================================
|
||||||
|
# OmniOil Workspace - Configuración de Construcción (Gitea Actions)
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
services:
|
||||||
|
backend-api:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.unified
|
||||||
|
target: backend-api
|
||||||
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/backend-api:${IMAGE_TAG:-latest}
|
||||||
|
|
||||||
|
events-relay:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.unified
|
||||||
|
target: events-relay
|
||||||
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/events-relay:${IMAGE_TAG:-latest}
|
||||||
|
|
||||||
|
telemetry-ingestor:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.unified
|
||||||
|
target: telemetry-ingestor
|
||||||
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/telemetry-ingestor:${IMAGE_TAG:-latest}
|
||||||
|
|
||||||
|
json-generator:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.unified
|
||||||
|
target: json-generator
|
||||||
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/json-generator:${IMAGE_TAG:-latest}
|
||||||
|
|
||||||
|
landing:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.frontend
|
||||||
|
target: landing
|
||||||
|
args:
|
||||||
|
- NEXT_PUBLIC_TURNSTILE_SITE_KEY=${NEXT_PUBLIC_TURNSTILE_SITE_KEY:-${VITE_TURNSTILE_SITE_KEY}}
|
||||||
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/landing:${IMAGE_TAG:-latest}
|
||||||
|
|
||||||
|
frontend-pwa:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.frontend
|
||||||
|
target: frontend-pwa
|
||||||
|
args:
|
||||||
|
- VITE_API_BASE=/api
|
||||||
|
- VITE_ADMIN_APP_ORIGIN=${VITE_ADMIN_APP_ORIGIN}
|
||||||
|
- VITE_MOBILE_APP_ORIGIN=${VITE_MOBILE_APP_ORIGIN}
|
||||||
|
- VITE_API_URL=${VITE_API_URL}
|
||||||
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/frontend-pwa:${IMAGE_TAG:-latest}
|
||||||
|
|
||||||
|
frontend-admin:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.frontend
|
||||||
|
target: frontend-admin
|
||||||
|
args:
|
||||||
|
- VITE_API_BASE=/api
|
||||||
|
- VITE_ADMIN_APP_ORIGIN=${VITE_ADMIN_APP_ORIGIN}
|
||||||
|
- VITE_MOBILE_APP_ORIGIN=${VITE_MOBILE_APP_ORIGIN}
|
||||||
|
- VITE_API_URL=${VITE_API_URL}
|
||||||
|
- VITE_TURNSTILE_SITE_KEY=${VITE_TURNSTILE_SITE_KEY}
|
||||||
|
- VITE_LANDING_APP_ORIGIN=${VITE_LANDING_APP_ORIGIN:-https://omnioil.app/}
|
||||||
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/frontend-admin:${IMAGE_TAG:-latest}
|
||||||
|
|
||||||
|
frontend-console:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.frontend
|
||||||
|
target: frontend-console
|
||||||
|
args:
|
||||||
|
- VITE_API_BASE=/api
|
||||||
|
- VITE_CONSOLE_APP_ORIGIN=${VITE_CONSOLE_APP_ORIGIN:-https://console.omnioil.app}
|
||||||
|
- VITE_ACCESS_REQUEST_REVIEWER_EMAILS=${ACCESS_REQUEST_REVIEWER_EMAILS:-w.farfan@omnioil.app,h.ortegon@omnioil.app}
|
||||||
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/frontend-console:${IMAGE_TAG:-latest}
|
||||||
|
|
||||||
|
build-orchestrator:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.unified
|
||||||
|
target: build-orchestrator
|
||||||
|
args:
|
||||||
|
- BUILD_VERSION=${AGENT_LATEST_VERSION:-0.3.0}
|
||||||
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/build-orchestrator:${IMAGE_TAG:-latest}
|
||||||
|
|
||||||
|
edge-agent-msi-builder:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: services/edge-agent/Dockerfile.builder
|
||||||
|
args:
|
||||||
|
- BUILD_VERSION=${AGENT_LATEST_VERSION:-0.3.0}
|
||||||
|
image: ${GITEA_REGISTRY:-gitea.kyrbot.com}/${GITEA_IMAGE_NAMESPACE:-kyrbot}/edge-agent-msi-builder:${IMAGE_TAG:-latest}
|
||||||
@@ -39,44 +39,22 @@ def generate_assets():
|
|||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# 1. Generar dialog.bmp (493x312) - Bienvenida/Finalizacion
|
# 1. Generar dialog.bmp (493x312) - Bienvenida/Finalizacion
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
img_dialog = Image.new("RGB", (493, 312), color_bg)
|
# El fondo general es blanco para que el texto de WiX sea legible.
|
||||||
|
# El panel de la izquierda es el panel corporativo oscuro con el logo.
|
||||||
|
img_dialog = Image.new("RGB", (493, 312), (255, 255, 255))
|
||||||
draw_dialog = ImageDraw.Draw(img_dialog)
|
draw_dialog = ImageDraw.Draw(img_dialog)
|
||||||
|
|
||||||
# Dibujar panel lateral con gradiente o color primario
|
# Dibujar panel lateral oscuro corporativo
|
||||||
draw_dialog.rectangle([0, 0, 164, 312], fill=(15, 20, 28)) # Un azul ligeramente mas claro
|
draw_dialog.rectangle([0, 0, 164, 312], fill=(9, 11, 15))
|
||||||
draw_dialog.rectangle([162, 0, 164, 312], fill=color_primary) # Linea naranja divisoria
|
# Linea naranja divisoria
|
||||||
|
draw_dialog.rectangle([162, 0, 164, 312], fill=color_primary)
|
||||||
|
|
||||||
# Colocar logo en el panel lateral
|
# Colocar logo en el panel lateral
|
||||||
if logo:
|
if logo:
|
||||||
# Redimensionar logo para el panel lateral (120x120)
|
|
||||||
logo_dialog = logo.resize((120, 120), Image.Resampling.LANCZOS)
|
logo_dialog = logo.resize((120, 120), Image.Resampling.LANCZOS)
|
||||||
# Pegar con canal alfa
|
# Pegar con canal alfa
|
||||||
img_dialog.paste(logo_dialog, (22, 96), logo_dialog)
|
img_dialog.paste(logo_dialog, (22, 96), logo_dialog)
|
||||||
|
|
||||||
# Textos principales (Usamos fuentes estandar para evitar fallos si no existe Geist)
|
|
||||||
try:
|
|
||||||
font_title = ImageFont.truetype("arial.ttf", 20)
|
|
||||||
font_subtitle = ImageFont.truetype("arial.ttf", 12)
|
|
||||||
font_body = ImageFont.truetype("arial.ttf", 10)
|
|
||||||
except IOError:
|
|
||||||
font_title = ImageFont.load_default()
|
|
||||||
font_subtitle = ImageFont.load_default()
|
|
||||||
font_body = ImageFont.load_default()
|
|
||||||
|
|
||||||
draw_dialog.text((185, 30), "OmniOil Analytics", fill=color_primary, font=font_title)
|
|
||||||
draw_dialog.text((185, 55), "Edge Agent Setup Wizard", fill=color_text, font=font_title)
|
|
||||||
|
|
||||||
body_text = (
|
|
||||||
"Este asistente instalara el componente de telemetria\n"
|
|
||||||
"Edge Agent en su equipo local.\n\n"
|
|
||||||
"El agente se ejecutara como un servicio de Windows en\n"
|
|
||||||
"segundo plano para recolectar y reportar datos industriales\n"
|
|
||||||
"bajo los lineamientos de la Resolucion ANH 0651/2025.\n\n"
|
|
||||||
"Desarrollado por KYRBOT INNOVATIONS S.A.S.\n"
|
|
||||||
"NIT 902002081-8"
|
|
||||||
)
|
|
||||||
draw_dialog.text((185, 110), body_text, fill=color_muted, font=font_body)
|
|
||||||
|
|
||||||
# Guardar como BMP de 24 bits
|
# Guardar como BMP de 24 bits
|
||||||
img_dialog.save(dialog_bmp_path, "BMP")
|
img_dialog.save(dialog_bmp_path, "BMP")
|
||||||
print(f"dialog.bmp generado exitosamente en {dialog_bmp_path}")
|
print(f"dialog.bmp generado exitosamente en {dialog_bmp_path}")
|
||||||
@@ -84,7 +62,8 @@ def generate_assets():
|
|||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# 2. Generar banner.bmp (493x58) - Banner superior interno
|
# 2. Generar banner.bmp (493x58) - Banner superior interno
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
img_banner = Image.new("RGB", (493, 58), color_bg)
|
# Fondo blanco para que los titulos de las paginas internas de WiX sean legibles.
|
||||||
|
img_banner = Image.new("RGB", (493, 58), (255, 255, 255))
|
||||||
draw_banner = ImageDraw.Draw(img_banner)
|
draw_banner = ImageDraw.Draw(img_banner)
|
||||||
|
|
||||||
# Linea naranja inferior
|
# Linea naranja inferior
|
||||||
@@ -95,16 +74,6 @@ def generate_assets():
|
|||||||
logo_banner = logo.resize((42, 42), Image.Resampling.LANCZOS)
|
logo_banner = logo.resize((42, 42), Image.Resampling.LANCZOS)
|
||||||
img_banner.paste(logo_banner, (435, 8), logo_banner)
|
img_banner.paste(logo_banner, (435, 8), logo_banner)
|
||||||
|
|
||||||
try:
|
|
||||||
font_banner_title = ImageFont.truetype("arial.ttf", 12)
|
|
||||||
font_banner_sub = ImageFont.truetype("arial.ttf", 9)
|
|
||||||
except IOError:
|
|
||||||
font_banner_title = ImageFont.load_default()
|
|
||||||
font_banner_sub = ImageFont.load_default()
|
|
||||||
|
|
||||||
draw_banner.text((15, 12), "OmniOil Edge Agent", fill=color_primary, font=font_banner_title)
|
|
||||||
draw_banner.text((15, 28), "Configuracion de Telemetria Industrial", fill=color_text, font=font_banner_sub)
|
|
||||||
|
|
||||||
# Guardar como BMP de 24 bits
|
# Guardar como BMP de 24 bits
|
||||||
img_banner.save(banner_bmp_path, "BMP")
|
img_banner.save(banner_bmp_path, "BMP")
|
||||||
print(f"banner.bmp generado exitosamente en {banner_bmp_path}")
|
print(f"banner.bmp generado exitosamente en {banner_bmp_path}")
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<Product Name='OmniOil Edge Agent'
|
<Product Name='OmniOil Edge Agent'
|
||||||
Id='*'
|
Id='*'
|
||||||
UpgradeCode='6F9619FF-8B49-4D6C-8D4C-9B6C24B55FCD'
|
UpgradeCode='6F9619FF-8B49-4D6C-8D4C-9B6C24B55FCD'
|
||||||
Language='1033'
|
Language='1034'
|
||||||
Codepage='1252'
|
Codepage='1252'
|
||||||
Version='0.3.0'
|
Version='0.3.0'
|
||||||
Manufacturer='OmniOil'>
|
Manufacturer='OmniOil'>
|
||||||
@@ -14,12 +14,12 @@
|
|||||||
Comments='Edge computing agent for OmniOil'
|
Comments='Edge computing agent for OmniOil'
|
||||||
Manufacturer='OmniOil'
|
Manufacturer='OmniOil'
|
||||||
InstallerVersion='200'
|
InstallerVersion='200'
|
||||||
Languages='1033'
|
Languages='1034'
|
||||||
Compressed='yes'
|
Compressed='yes'
|
||||||
SummaryCodepage='1252'
|
SummaryCodepage='1252'
|
||||||
Platform='x64' />
|
Platform='x64' />
|
||||||
|
|
||||||
<MajorUpgrade DowngradeErrorMessage="Una versión más reciente de [ProductName] ya está instalada." />
|
<MajorUpgrade DowngradeErrorMessage="Una version mas reciente de [ProductName] ya esta instalada." />
|
||||||
<Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" />
|
<Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" />
|
||||||
<Property Id='DiskPrompt' Value="OmniOil Edge Agent Installation [1]" />
|
<Property Id='DiskPrompt' Value="OmniOil Edge Agent Installation [1]" />
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user