#!/bin/bash set -e # Asegurarse de que el usuario exista USER="opengnsys" # Provisionar base de datos si es necesario en caso de instalación. # Detectar si es una instalación nueva o una actualización if [ "$1" = "configure" ] && [ -z "$2" ]; then cd /opt/opengnsys/ogcore/api mariadb -e "GRANT ALL ON *.* to 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION;" echo "Primera instalación" # Provisionar base de datos si es necesario en caso de instalación. echo "Creando par de claves para JWT" php bin/console lexik:jwt:generate-keypair --overwrite echo "Creando base de datos y cargando datos iniciales" php bin/console doctrine:database:create --if-not-exists php bin/console doctrine:migrations:migrate --no-interaction # Cargar datos iniciales echo "Cargando datos iniciales" php bin/console opengnsys:load-default-user echo "Cargando usuarios y grupos por defecto" php bin/console app:load-default-user-groups echo "Cargando comandos por defecto" php bin/console app:load-default-commands echo "Cargando menú por defecto" php bin/console opengnsys:load-default-menu elif [ "$1" = "configure" ] && [ -n "$2" ]; then cd /opt/opengnsys/ogcore/api echo "Actualización desde la versión $2" # Ejecutar comandos específicos para la actualización php bin/console doctrine:migrations:migrate --no-interaction # Otros comandos específicos para la actualización fi # Cambiar la propiedad de los archivos al usuario especificado chown opengnsys:www-data /opt/opengnsys/ chown -R opengnsys:www-data /opt/opengnsys/ogcore # Install http server stuff ln -s /opt/opengnsys/ogcore/etc/nginx/sites-available/ogcore.conf /etc/nginx/sites-enabled/ogcore.conf ln -s /opt/opengnsys/ogcore/etc/php/8.3/fpm/pool.d/ogcore-fpm.conf /etc/php/8.3/fpm/pool.d/ogcore-fpm.conf # Reiniciar servicios si es necesario # systemctl restart nombre_del_servicio systemctl daemon-reload systemctl restart nginx systemctl restart php8.3-fpm exit 0