Instalación histrix con Nginx
En este documento se detalla la instalación de Histrix con Nginx y MySQL usando Docker y Docker-Compose. Histrix es un sistema de gestión de empresas y negocios que permite la administración de clientes, proveedores, stock, vendedores, transportistas, entre otros.
Primeros pasos
Para instalar Histrix con Nginx y MySQL usando Docker y Docker-Compose, se deben seguir los siguientes pasos:
Instalación de Docker
Para instalar Docker puedes seguir los pasos de la documentación oficial. En este caso, se instalará Docker en Ubuntu 24.04 usando apt.
# Actualizar el índice de paquetes:sudo apt-get update
# Instalar paquetes para permitir a apt usar un repositorio sobre HTTPS:sudo apt-get install ca-certificates curl
# Agregar la clave GPG oficial de Docker:sudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.asc
# Agregar el repositorio de Docker a las fuentes de APT:echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Instalar Docker:sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Verificar la instalación:sudo docker --versionConfiguración de Docker
Para configurar Docker, se debe crear un archivo de configuración en la ruta /etc/docker/daemon.json con el siguiente contenido:
{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "5" }}Con esto, se limita el tamaño de los logs de Docker a 10MB y se mantienen solo 5 archivos de logs. Después de crear el archivo, se debe reiniciar el servicio de Docker:
sudo systemctl restart dockerConfigurar usuario del servicio
Como usario root, crear un usuario para el servicio de Histrix:
sudo adduser automatale damos permisos de sudo:
sudo usermod -aG sudo automataLe damos permisos de docker:
sudo usermod -aG docker automataInstalación de Histrix
Para inicar tiene que entrar como usuario automata:
su - automataDentro del home del usuario automata tienes que generar la siguiente estructura de carpetas:
mkdir -p ~/[Nombre del cliente]/{modules,database}Para continuar tienes que crear una api key de bitbucket con permisos de lectura y escritura de repositorios. En el siguiente enlace puedes crear una api key.
Teniendo la api key te mueves a la carpeta modules y clonas los modulos de histrix:
cd ~/[Nombre del cliente]/modulesgit clone --depth 4 https://[nombre-usuario]:[api-key]@bitbucket.org/mundo-it/erp-full.git erp-fullgit clone --depth 4 https://[nombre-usuario]:[api-key]@bitbucket.org/mundo-it/htxcore.git histrixEn la carpeta database tienes que clonar el repositorio de los xmls del cliente:
cd ~/[Nombre del cliente]/databasegit clone --depth 4 https://[nombre-usuario]:[api-key]@bitbucket.org/mundo-it/[nombre-repositorio-xml].gitConfiguración de Histrix
Histrix su configuracion va en la carpeta database con un archivo llamado config.xml que tiene la siguiente estructura:
<?xml version="1.0" encoding="UTF-8"?><sistema> <empresa> <img_fondo>histrix_back.jpg</img_fondo> <lang>es</lang> </empresa> <conexiones> <base id="[Nombre del ciente]" tipo="mysql" xmlPath="[Nombre de los xml del ciente]/"> <descripcion>[Nombre del ciente]</descripcion> <base>[nombre de la base de dato]</base> <driver>mysql</driver> <user>[Usuario de la base de dato]</user> <password>[Contraseña de la base de dato]</password> <host>[url del servidor base de dato]</host> <empresa> <nombre>[Nombre del ciente]</nombre> <direccion>[Direccion del ciente]</direccion> <cuit>[Cuit del cliente]</cuit> <telefonos/> <logo_pdf_1 posx="6" width="30">logo.jpg</logo_pdf_1> <logo_ini>logo.png</logo_ini> <modulos>|clientes|proveedores|stock|iva|contabilidad|packs|vendedores|transportistas</modulos> <img_fondo/> </empresa> </base> </conexiones></sistema>Docker-compose de Histrix
Para instalar Histrix con Nginx y MySQL usando Docker y Docker-Compose, se debe crear un archivo docker-compose.yml en la raiz del usuario automata con el siguiente contenido:
services: redis: image: redis:6.0.3-buster restart: unless-stopped container_name: redis expose: - "6379" command: "redis-server --appendonly yes" networks: - backend db: image: mysql:8.3.0 command: --default-authentication-plugin=mysql_native_password --sql-mode="NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" container_name: db volumes: - mysql-data:/var/lib/mysql restart: unless-stopped networks: - backend expose: - "3306" environment: MYSQL_ROOT_PASSWORD: [Contraseña de la base de dato] MYSQL_ROOT_HOST: '%' MYSQL_DATABASE: [nombre de la base de dato] TZ: America/Argentina/Buenos_Aires php: image: mundoit/histrix-runtime:nginx-06 restart: unless-stopped container_name: histrix volumes: - "/home/automata/[nombre-cliente]/database:/var/www/html/database" - "/home/automata/[nombre-cliente]/modules:/var/www/html/modules" ports: - "80:80" - "8888:8888" depends_on: - redis - db environment: - REDIS_SERVER_HOST=redis - GIT_EMAIL=[Correo electronico del usuario de bitbucket] - GIT_NAME=[Nombre del usuario de bitbucket] - GIT_PERSONAL_TOKEN=[Api key de bitbucket] - GIT_USERNAME=[Nombre de usuario de bitbucket] - GIT_REPO=bitbucket.org/mundo-it/histrix.git - GIT_BRANCH=nginx-fpm - PGID=[ID del grupo de automata] - PUID=[ID del usuario de automata] - WEBROOT=/var/www/html - RUN_SCRIPTS=1 - PHP_MEM_LIMIT=1024M - PHP_POST_MAX_SIZE=1024M - PHP_UPLOAD_MAX_FILESIZE=1024M - PHP_ERRORS_STDERR=1 - SKIP_COMPOSER=1 - REMOVE_FILES=0 - ERRORS=0 networks: - backend - frontend links: - dbvolumes: mysql-data: # Donde se guarda la base de datosnetworks: backend: frontend:Iniciar Histrix
Para iniciar Histrix con Nginx y MySQL usando Docker y Docker-Compose, se debe ejecutar el siguiente comando:
docker compose up -dCon esto, Histrix estará corriendo en el puerto 80 y 8888 de la máquina local.
Comandos útiles
Pull de cambios de Histrix
Para hacer un pull de los cambios de Histrix, se debe ejecutar el siguiente comando:
sudo docker exec -t -i histrix /usr/bin/pullPull de cambios de los modulos
Para hacer un pull de los cambios de los modulos de Histrix, se debe ejecutar el siguiente comando:
cd ~/[Nombre del cliente]/modules/erp-fullgit pullcd ~/[Nombre del cliente]/modules/histrixgit pullPull de cambios de los xmls
Para hacer un pull de los cambios de los xmls del cliente, se debe ejecutar el siguiente comando:
cd ~/[Nombre del cliente]/database/[nombre-repositorio-xml]git pullVer logs de Histrix
Para ver los logs de Histrix, se debe ejecutar el siguiente comando:
cd ~/[Nombre del cliente]/database/[nombre-repositorio-xml]/logs/[año]/[mes]
# Ver logs de select de Histrixtail -f sql_select.log
# Ver logs de insert/update de Histrixtail -f sql_update.log
# tendras mas archivos de logs aca