Docs
GuíasConfiguración

Variables del instalador

Variables de entorno que controlan bootstrap.sh y los instaladores install-ubuntu.sh / install-almalinux.sh.

Todos los comandos de instalación aceptan variables colocadas antes del comando. Sin terminal (cron, cloud-init, ssh servidor 'orden') el instalador no pregunta nada, así que las variables son la única forma de cambiar los valores predeterminados.

curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo VARIABLE=valor bash

Referencia de variables

VariableValor predeterminadoDescripción
MODEall (se pregunta si hay terminal)all: servidor web + base de datos en este servidor. web: solo servidor web + PHP, con la base en otro servidor (requiere DB_HOST). db: solo MariaDB abierto a la red, sin servidor web ni código.
DB_HOST—Con MODE=web: IP del servidor de base de datos.
DB_ALLOWCualquier IP (%)Con MODE=db: IP del servidor web autorizado a conectarse al puerto 3306.
WEB_PORT80 (se pregunta si hay terminal)Puerto del sitio. Se rechazan los puertos 22, 3306 y 8108.
DOMAIN_Valor de server_name del servidor web. Ejemplo: pos.tienda.com.
PHP_VER8.3Versión de PHP. Valores admitidos: 8.2 y 8.3.
WITH_PRINTINGyesno omite CUPS, Chrome/Chromium y la impresión.
ENV_ONLYnoyes o 1 instala solo el entorno (dependencias y servicios), sin el código de HWD POS.
APP_DIR/var/www/HWDPOSCarpeta de instalación del código. El instalador rechaza carpetas del sistema como /, /tmp o /var.
DB_NAMEhwd_posNombre de la base de datos.
DB_USERhwdpos_managerUsuario de la base de datos.
DB_PASS—Contraseña del usuario de la base. Sin valor, se reutiliza la que ya usa el servidor (storage/config.php o el archivo de credenciales) y solo si no hay ninguna se genera otra. En ambos casos se aplica al usuario, así que el archivo y la base siempre coinciden.
SET_TIMEZONE—yes pone la zona horaria del servidor en America/Panama; no la deja. Sin valor se pregunta (por omisión, sí); sin terminal no se toca y se avisa.
HWPOS_ZIP—Ruta local o URL del paquete .zip de HWD POS que usa bootstrap.sh. El .zip debe tener HWDPOS/ como carpeta raíz.
HWPOS_REPLACE—1 permite que HWPOS_ZIP reemplace un sistema ya instalado. La carpeta anterior se conserva como HWDPOS.anterior-FECHA.
HWPOS_BASE_URLhttps://3r.com.pa/hwdpos_instDirección desde la que se descargan bootstrap.sh, los instaladores, install-workers.sh, hwdpanel.sh, check.sh y scripts.zip.
INSTALLER_URL—URL directa del instalador de la familia (install-ubuntu.sh o install-almalinux.sh), si no está disponible en HWPOS_BASE_URL.

check.sh también acepta PHP_VER, APP_DIR, DB_NAME, DB_USER, DOMAIN, MODE y CHECK_ONLY. Consulte Diagnóstico con check.sh.

Ejemplos

# Puerto distinto, sin que pregunte
curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo WEB_PORT=8080 bash

# Sin impresión (servidor que no imprime)
curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo WITH_PRINTING=no bash

# Con un nombre de dominio propio
curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo DOMAIN=pos.miferreteria.com bash

# Solo el entorno (dependencias y servicios), sin el código del sistema
curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo ENV_ONLY=1 bash

# Desde un paquete concreto que ya está en el servidor
curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo HWPOS_ZIP=/root/HWDPOS-v1.5.0.zip bash

# Desatendido, cambiando además la zona horaria
curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo HWPOS_ZIP=/root/HWDPOS-v1.5.0.zip SET_TIMEZONE=yes bash

Cuando el código ya está en el servidor y existe deploy/ (lo crea la primera instalación), puede llamar directamente al instalador de la familia:

sudo DOMAIN=pos.tienda.com PHP_VER=8.3 WITH_PRINTING=no bash /var/www/HWDPOS/deploy/install-ubuntu.sh

Antes de la primera instalación, use bootstrap.sh con HWPOS_ZIP, porque el .zip oficial no incluye la carpeta deploy/.

Notas de comportamiento

  • Reejecutar es seguro. No borra datos ni cambia una contraseña de la base que ya funciona. Consulte Actualizar y reinstalar.
  • Código de salida. Cualquier fallo o cancelación termina con un código distinto de 0, así que una automatización no puede tomar por buena una instalación que no se hizo.
  • Detección del terminal. Las preguntas solo se hacen si /dev/tty se puede abrir. Bajo cron, cloud-init o ssh host 'orden' puede existir pero no abrirse; en ese caso se usan los valores por omisión y las variables.
  • Instalaciones separadas. Consulte Base de datos en un servidor aparte para MODE, DB_HOST y DB_ALLOW.

En esta página