Reviewed-on: #22jenkins_upload_packages
parent
010a7f917d
commit
4dbedd28d6
|
@ -25,3 +25,11 @@
|
||||||
/phpunit.xml
|
/phpunit.xml
|
||||||
.phpunit.result.cache
|
.phpunit.result.cache
|
||||||
###< phpunit/phpunit ###
|
###< phpunit/phpunit ###
|
||||||
|
|
||||||
|
### Debian packaging
|
||||||
|
debian/ogcore
|
||||||
|
debian/*.substvars
|
||||||
|
debian/*.log
|
||||||
|
debian/.debhelper/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
ogcore (1.0.5+develop20250310-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Modified changelog
|
||||||
|
* Some improvements. Fixed multi select actions
|
||||||
|
* refs #1644. Cancel deployImage action
|
||||||
|
* Updated test phunit.xml
|
||||||
|
* Updated test
|
||||||
|
* Merge branch 'main' into develop
|
||||||
|
* Fixed phpxml
|
||||||
|
* Fixed phpxml
|
||||||
|
* Changed test
|
||||||
|
* Changed repoClient funcionality. New filters added
|
||||||
|
|
||||||
|
-- Tu Nombre <tuemail@example.com> Mon, 10 Mar 2025 10:59:14 +0000
|
|
@ -0,0 +1 @@
|
||||||
|
12
|
|
@ -0,0 +1,16 @@
|
||||||
|
Source: ogcore
|
||||||
|
Section: web
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Nicolas Arenas <nicolas.arenas@qindel.com>
|
||||||
|
Build-Depends: debhelper (>= 12), composer, php-cli, php-mysql, nginx, php-fpm, libzip-dev, zip, unzip
|
||||||
|
Standards-Version: 4.5.0
|
||||||
|
|
||||||
|
Package: ogcore
|
||||||
|
Architecture: all
|
||||||
|
Depends: ${misc:Depends}, mariadb-server, systemd, nginx, libzip-dev, zip, unzip,
|
||||||
|
php8.3-opcache, php8.3-bcmath, php8.3-cli, php8.3-curl, php8.3-fpm,
|
||||||
|
php8.3-gd, php8.3-ldap, php8.3-mbstring, php8.3-mysql, php8.3-common,
|
||||||
|
php8.3-xml, php8.3-zip, mercure
|
||||||
|
Description: OpenGnsys Core
|
||||||
|
This is a longer description of the ogcore package.
|
||||||
|
OpenGnsys Core is a platform for system management.
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
INPUT_FILE="changelog"
|
||||||
|
OUTPUT_FILE="CHANGELOG.md"
|
||||||
|
|
||||||
|
echo "# Changelog" > "$OUTPUT_FILE"
|
||||||
|
echo -e "\n## [Unreleased]\n" >> "$OUTPUT_FILE"
|
||||||
|
|
||||||
|
# Procesar el changelog de Debian
|
||||||
|
awk '
|
||||||
|
/^ogcore/ {
|
||||||
|
version = $2
|
||||||
|
gsub(/[()]/, "", version) # Eliminar paréntesis de la versión
|
||||||
|
printf "\n## [%s] - %s\n\n", version, $NF
|
||||||
|
}
|
||||||
|
/^\s*\*/ {
|
||||||
|
gsub(/^\s*\*\s*/, "- ", $0) # Convertir a lista de viñetas
|
||||||
|
print $0 >> "'"$OUTPUT_FILE"'"
|
||||||
|
}
|
||||||
|
' "$INPUT_FILE"
|
|
@ -0,0 +1,43 @@
|
||||||
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Source: <url://example.com>
|
||||||
|
Upstream-Name: ogcore
|
||||||
|
Upstream-Contact: <preferred name and address to reach the upstream project>
|
||||||
|
|
||||||
|
Files:
|
||||||
|
*
|
||||||
|
Copyright:
|
||||||
|
<years> <put author's name and email here>
|
||||||
|
<years> <likewise for another author>
|
||||||
|
License: GPL-3.0+
|
||||||
|
|
||||||
|
Files:
|
||||||
|
debian/*
|
||||||
|
Copyright:
|
||||||
|
2025 root <root@build>
|
||||||
|
License: GPL-3.0+
|
||||||
|
|
||||||
|
License: GPL-3.0+
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
.
|
||||||
|
This package is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
Comment:
|
||||||
|
On Debian systems, the complete text of the GNU General
|
||||||
|
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
|
||||||
|
|
||||||
|
# Please also look if there are files or directories which have a
|
||||||
|
# different copyright/license attached and list them here.
|
||||||
|
# Please avoid picking licenses with terms that are more restrictive than the
|
||||||
|
# packaged work, as it may make Debian's contributions unacceptable upstream.
|
||||||
|
#
|
||||||
|
# If you need, there are some extra license texts available in two places:
|
||||||
|
# /usr/share/debhelper/dh_make/licenses/
|
||||||
|
# /usr/share/common-licenses/
|
|
@ -0,0 +1 @@
|
||||||
|
ogcore
|
|
@ -0,0 +1,2 @@
|
||||||
|
ogcore_1.0.5+develop20250310-1_all.deb web optional
|
||||||
|
ogcore_1.0.5+develop20250310-1_amd64.buildinfo web optional
|
|
@ -0,0 +1,18 @@
|
||||||
|
bin/* /opt/opengnsys/ogcore/api/bin/
|
||||||
|
config/* /opt/opengnsys/ogcore/api/config/
|
||||||
|
migrations/* /opt/opengnsys/ogcore/api/migrations/
|
||||||
|
public/* /opt/opengnsys/ogcore/api/public/
|
||||||
|
src/* /opt/opengnsys/ogcore/api/src/
|
||||||
|
swagger-assets/* /opt/opengnsys/ogcore/api/swagger-assets/
|
||||||
|
templates/* /opt/opengnsys/ogcore/api/templates/
|
||||||
|
translations/* /opt/opengnsys/ogcore/api/translations/
|
||||||
|
var/* /opt/opengnsys/ogcore/api/var/
|
||||||
|
vendor/* /opt/opengnsys/ogcore/api/vendor/
|
||||||
|
composer.json /opt/opengnsys/ogcore/api/
|
||||||
|
composer.lock /opt/opengnsys/ogcore/api/
|
||||||
|
symfony.lock /opt/opengnsys/ogcore/api/
|
||||||
|
.env.local.php /opt/opengnsys/ogcore/api/
|
||||||
|
env.json /opt/opengnsys/ogcore/api/
|
||||||
|
etc /opt/opengnsys/ogcore/
|
||||||
|
docker/certs/* /opt/opengnsys/ogcore/etc/nginx/certs/
|
||||||
|
|
|
@ -0,0 +1,112 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
USER="opengnsys"
|
||||||
|
|
||||||
|
# Detectar si es una instalación nueva o una actualización
|
||||||
|
if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
||||||
|
echo ">>> Instalación nueva detectada."
|
||||||
|
|
||||||
|
# Solicitar credenciales solo en instalación nueva
|
||||||
|
db_input high opengnsys/ogcore_adminUser || true
|
||||||
|
db_go
|
||||||
|
db_get opengnsys/ogcore_adminUser
|
||||||
|
ADMIN_USER="$RET"
|
||||||
|
|
||||||
|
db_input high opengnsys/ogcore_adminPass || true
|
||||||
|
db_go
|
||||||
|
db_get opengnsys/ogcore_adminPass
|
||||||
|
ADMIN_PASS="$RET"
|
||||||
|
|
||||||
|
cd /opt/opengnsys/ogcore/api
|
||||||
|
|
||||||
|
# Configuración inicial
|
||||||
|
echo ">>> Configurando base de datos y permisos"
|
||||||
|
mariadb -e "GRANT ALL ON *.* to 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION;"
|
||||||
|
|
||||||
|
echo ">>> Creando par de claves para JWT"
|
||||||
|
php bin/console lexik:jwt:generate-keypair --overwrite
|
||||||
|
|
||||||
|
echo ">>> Creando base de datos"
|
||||||
|
php bin/console doctrine:database:create --if-not-exists
|
||||||
|
php bin/console doctrine:migrations:migrate --no-interaction
|
||||||
|
|
||||||
|
echo ">>> Cargando datos iniciales"
|
||||||
|
php bin/console opengnsys:load-default-user
|
||||||
|
php bin/console app:load-default-user-groups
|
||||||
|
php bin/console app:load-default-commands
|
||||||
|
php bin/console opengnsys:load-default-menu
|
||||||
|
|
||||||
|
echo ">>> Configurando servidor web y servicios"
|
||||||
|
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
|
||||||
|
ln -s /opt/opengnsys/ogcore/etc/systemd/system/og-mercure.service /etc/systemd/system/og-mercure.service
|
||||||
|
|
||||||
|
echo ">>> Configurando permisos de archivos"
|
||||||
|
chown opengnsys:www-data /opt/opengnsys/
|
||||||
|
chown -R opengnsys:www-data /opt/opengnsys/ogcore
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable og-mercure
|
||||||
|
systemctl restart og-mercure
|
||||||
|
systemctl restart nginx
|
||||||
|
systemctl restart php8.3-fpm
|
||||||
|
# Solo gestionar credenciales en instalación nueva
|
||||||
|
if [ "$ADMIN_USER" == "ogadmin" ]; then
|
||||||
|
BEARER=$(curl -sk -X 'POST' 'https://localhost:8443/auth/login' \
|
||||||
|
-H 'accept: application/json' \
|
||||||
|
-H 'Content-Type: application/json' \
|
||||||
|
-d '{ "username": "ogadmin", "password": "12345678" }' | jq -r .token)
|
||||||
|
|
||||||
|
echo ">>> Cambiando contraseña de ogadmin"
|
||||||
|
|
||||||
|
OGADMIN_UUID=$(curl -skL "https://localhost:8443/users/?username=ogadmin" \
|
||||||
|
-H 'accept: application/json' \
|
||||||
|
-H "Authorization: Bearer $BEARER" | jq -r '.[0].uuid')
|
||||||
|
|
||||||
|
curl -skL -X PUT "https://localhost:8443/users/$OGADMIN_UUID/reset-password" \
|
||||||
|
-H 'accept: application/ld+json' \
|
||||||
|
-H 'Content-Type: application/ld+json' \
|
||||||
|
-H "Authorization: Bearer $BEARER" \
|
||||||
|
-d "{ \"currentPassword\": \"12345678\", \"newPassword\": \"$ADMIN_PASS\", \"repeatNewPassword\": \"$ADMIN_PASS\" }"
|
||||||
|
|
||||||
|
echo ">>> Contraseña de ogadmin cambiada."
|
||||||
|
else
|
||||||
|
echo ">>> Creando nuevo usuario administrador: $ADMIN_USER"
|
||||||
|
|
||||||
|
curl -skL --location 'https://localhost:8443/users' \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--header "Authorization: Bearer $BEARER" \
|
||||||
|
--data "{ \"username\": \"$ADMIN_USER\", \"password\": \"$ADMIN_PASS\", \"roles\": [\"ROLE_SUPER_ADMIN\"] }"
|
||||||
|
|
||||||
|
echo ">>> Usuario administrador $ADMIN_USER creado."
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
elif [ "$1" = "configure" ] && [ -n "$2" ]; then
|
||||||
|
echo ">>> Actualización detectada desde la versión $2"
|
||||||
|
|
||||||
|
cd /opt/opengnsys/ogcore/api
|
||||||
|
|
||||||
|
echo ">>> Aplicando migraciones de base de datos"
|
||||||
|
php bin/console doctrine:migrations:migrate --no-interaction
|
||||||
|
echo ">>> Configurando servidor web y servicios"
|
||||||
|
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
|
||||||
|
ln -s /opt/opengnsys/ogcore/etc/systemd/system/og-mercure.service /etc/systemd/system/og-mercure.service
|
||||||
|
echo ">>> Configurando permisos de archivos"
|
||||||
|
chown opengnsys:www-data /opt/opengnsys/
|
||||||
|
chown -R opengnsys:www-data /opt/opengnsys/ogcore
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable og-mercure
|
||||||
|
systemctl restart og-mercure
|
||||||
|
systemctl restart nginx
|
||||||
|
systemctl restart php8.3-fpm
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Recargar systemd y reiniciar servicios en ambos casos
|
||||||
|
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Automatically added by dh_installdebconf/13.14.1ubuntu5
|
||||||
|
if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
db_purge
|
||||||
|
fi
|
||||||
|
# End automatically added section
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Asegurarse de que el usuario exista
|
||||||
|
USER="opengnsys"
|
||||||
|
HOME_DIR="/opt/opengnsys"
|
||||||
|
if id "$USER" &>/dev/null; then
|
||||||
|
echo "El usuario $USER ya existe."
|
||||||
|
else
|
||||||
|
echo "Creando el usuario $USER con home en $HOME_DIR."
|
||||||
|
useradd -m -d "$HOME_DIR" -s /bin/bash "$USER"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
if [ "$1" = "remove" ] || [ "$1" = "upgrade" ]; then
|
||||||
|
# Eliminar enlaces simbólicos creados en postinst
|
||||||
|
rm -f /etc/nginx/sites-enabled/ogcore.conf
|
||||||
|
rm -f /etc/php/8.3/fpm/pool.d/ogcore-fpm.conf
|
||||||
|
# Deshabilitar el servicio antes de eliminarlo
|
||||||
|
systemctl disable og-mercure || true
|
||||||
|
systemctl stop og-mercure || true
|
||||||
|
systemctl restart nginx || true
|
||||||
|
systemctl restart php8.3-fpm || true
|
||||||
|
rm -f /etc/systemd/system/og-mercure.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,10 @@
|
||||||
|
Template: opengnsys/ogcore_adminUser
|
||||||
|
Type: string
|
||||||
|
Default: ogadmin
|
||||||
|
Description: Introduzca el nombre de usuario para la configuración
|
||||||
|
|
||||||
|
Template: opengnsys/ogcore_adminPass
|
||||||
|
Type: password
|
||||||
|
Default: 12345678
|
||||||
|
Description: Introduzca la contraseña
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@
|
||||||
|
|
||||||
|
# Ejecutar composer install durante la fase de construcción
|
||||||
|
override_dh_auto_build:
|
||||||
|
export COMPOSER_ALLOW_SUPERUSER=1
|
||||||
|
export APP_ENV=prod
|
||||||
|
dh_auto_build
|
||||||
|
composer dump-env prod
|
||||||
|
composer install --no-dev --no-interaction --no-progress --optimize-autoloader
|
|
@ -0,0 +1 @@
|
||||||
|
3.0 (native)
|
|
@ -0,0 +1,4 @@
|
||||||
|
SERVER_NAME=":3000"
|
||||||
|
MERCURE_PUBLISHER_JWT_KEY="!ChangeThisMercureHubJWTSecretKey!"
|
||||||
|
MERCURE_SUBSCRIBER_JWT_KEY="!ChangeThisMercureHubJWTSecretKey!"
|
||||||
|
MERCURE_EXTRA_DIRECTIVES="cors_origins *"
|
|
@ -0,0 +1,44 @@
|
||||||
|
# Learn how to configure the Mercure.rocks Hub on https://mercure.rocks/docs/hub/config
|
||||||
|
{
|
||||||
|
{$GLOBAL_OPTIONS}
|
||||||
|
}
|
||||||
|
|
||||||
|
{$CADDY_EXTRA_CONFIG}
|
||||||
|
|
||||||
|
{$SERVER_NAME:localhost} {
|
||||||
|
log {
|
||||||
|
format filter {
|
||||||
|
fields {
|
||||||
|
request>uri query {
|
||||||
|
replace authorization REDACTED
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
encode zstd gzip
|
||||||
|
|
||||||
|
mercure {
|
||||||
|
# Publisher JWT key
|
||||||
|
publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG}
|
||||||
|
# Subscriber JWT key
|
||||||
|
subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG}
|
||||||
|
# Permissive configuration for the development environment
|
||||||
|
cors_origins *
|
||||||
|
publish_origins *
|
||||||
|
demo
|
||||||
|
anonymous
|
||||||
|
subscriptions
|
||||||
|
# Extra directives
|
||||||
|
{$MERCURE_EXTRA_DIRECTIVES}
|
||||||
|
}
|
||||||
|
|
||||||
|
{$CADDY_SERVER_EXTRA_DIRECTIVES}
|
||||||
|
|
||||||
|
redir / /.well-known/mercure/ui/
|
||||||
|
|
||||||
|
respond /healthz 200
|
||||||
|
respond /robots.txt `User-agent: *
|
||||||
|
Disallow: /`
|
||||||
|
respond "Not Found" 404
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Mercure Hub
|
||||||
|
After=network.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=opengnsys
|
||||||
|
Group=opengnsys
|
||||||
|
WorkingDirectory=/opt/opengnsys/ogcore/
|
||||||
|
|
||||||
|
# Cargar variables de entorno desde archivo
|
||||||
|
EnvironmentFile=/opt/opengnsys/ogcore/etc/mercure/mercure-og.env
|
||||||
|
|
||||||
|
# Validar configuración antes de arrancar
|
||||||
|
ExecStartPre=/bin/sh -c '/usr/bin/mercure adapt -c /opt/opengnsys/ogcore/etc/mercure/mercure.orig.conf --envfile /opt/opengnsys/ogcore/etc/mercure/mercure-og.env > /opt/opengnsys/ogcore/etc/mercure/mercure.config'
|
||||||
|
ExecStartPre=/bin/sh -c '/usr/bin/mercure fmt --overwrite -c /opt/opengnsys/ogcore/etc/mercure/mercure.config'
|
||||||
|
|
||||||
|
# Iniciar y detener el servicio con la configuración generada
|
||||||
|
ExecStart=/usr/bin/mercure run -c /opt/opengnsys/ogcore/etc/mercure/mercure.config --envfile /opt/opengnsys/ogcore/etc/mercure/mercure-og.env
|
||||||
|
ExecStop=/usr/bin/mercure stop -c /opt/opengnsys/ogcore/etc/mercure/mercure.config
|
||||||
|
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5s
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in New Issue