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 bashReferencia de variables
| Variable | Valor predeterminado | Descripción |
|---|---|---|
MODE | all (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_ALLOW | Cualquier IP (%) | Con MODE=db: IP del servidor web autorizado a conectarse al puerto 3306. |
WEB_PORT | 80 (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_VER | 8.3 | Versión de PHP. Valores admitidos: 8.2 y 8.3. |
WITH_PRINTING | yes | no omite CUPS, Chrome/Chromium y la impresión. |
ENV_ONLY | no | yes o 1 instala solo el entorno (dependencias y servicios), sin el código de HWD POS. |
APP_DIR | /var/www/HWDPOS | Carpeta de instalación del código. El instalador rechaza carpetas del sistema como /, /tmp o /var. |
DB_NAME | hwd_pos | Nombre de la base de datos. |
DB_USER | hwdpos_manager | Usuario 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_URL | https://3r.com.pa/hwdpos_inst | Direcció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 bashCuando 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.shAntes 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/ttyse puede abrir. Bajo cron, cloud-init ossh 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_HOSTyDB_ALLOW.