Herramientas Informaticas

Mes: abril 2026

🔥 Cómo configurar ONLYOFFICE en Docker con SSL y Nextcloud Snap (guía práctica sin errores) 🔥

Entrada fija

Después de varios intentos y errores típicos (puertos, certificados, Docker, etc.), finalmente logré dejar funcionando ONLYOFFICE Document Server en Docker con acceso HTTPS y listo para integrarse con Nextcloud instalado vía Snap. Aquí te dejo el proceso completo con datos genéricos 👇


🚧 Problemas comunes

  • Error de conexión (connection refused o connection reset)
  • Certificados SSL no detectados
  • Confusión entre Apache, Nginx y Docker
  • Intentar usar HTTPS dentro del contenedor (mala idea 😅)

🧠 Lo importante que debes entender

  • ONLYOFFICE usa Nginx interno, no Apache
  • Docker debe correr en HTTP interno
  • El SSL se maneja mejor fuera del contenedor
  • Nextcloud Snap ya trae su propio Apache (aislado)

👉 La solución correcta: usar Apache HTTP Server del sistema como proxy inverso


⚙️ Configuración final

🐳 1. Ejecutar ONLYOFFICE en HTTP

docker run -d -p 8080:80 onlyoffice/documentserver

🔐 2. Generar certificado SSL con Certbot

sudo snap stop nextcloud
sudo certbot certonly --standalone -d tudominio.com
sudo snap start nextcloud

👉 Los certificados quedarán en algo como:

/etc/letsencrypt/live/tudominio.com-0001/

🌐 3. Configurar Apache como proxy SSL

Archivo:

/etc/apache2/sites-available/onlyoffice.conf

Contenido:

<VirtualHost *:4443>
    ServerName tudominio.com

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/tudominio.com-0001/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/tudominio.com-0001/privkey.pem

    ProxyPreserveHost On
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    RequestHeader set X-Forwarded-Proto "https"
</VirtualHost>

🔌 4. Habilitar el puerto en Apache

Editar:

/etc/apache2/ports.conf

Agregar:

Listen 4443

⚡ 5. Activar módulos necesarios

sudo a2enmod ssl proxy proxy_http headers

🚀 6. Activar sitio y reiniciar

sudo a2ensite onlyoffice.conf
sudo apachectl configtest
sudo systemctl restart apache2

🔥 7. Abrir firewall

sudo ufw allow 4443

✅ Resultado

Acceso funcionando en:

👉 https://tudominio.com:4443

✔ SSL válido
✔ Proxy funcionando
✔ Docker respondiendo correctamente
✔ Listo para integrarse con Nextcloud


🧪 Pruebas clave

curl http://localhost:8080/healthcheck   # → true
curl -k https://localhost:4443           # → 302 (correcto)

🧠 Conclusión

  • ❌ No uses SSL dentro de Docker
  • ✅ Usa proxy inverso en el host
  • ✅ Mantén servicios separados
  • ✅ Evita conflictos con Snap

🚀 Siguiente paso

Integrar ONLYOFFICE con Nextcloud usando JWT correctamente 🔐


Si estás montando tu propio entorno, esta arquitectura te va a ahorrar horas de debugging 💻🔥

Apóyame

Si esta guía te fue útil y quieres apoyar más contenido como este:

👉 https://www.patreon.com/u74078772?

Cómo instalar OnlyOffice en Nextcloud (instalado con Snap) – Guía completa

Entrada fija

Si ya tienes Nextcloud instalado con Snap, el siguiente paso lógico es convertirlo en una suite completa tipo Google Workspace. Para eso, puedes integrar OnlyOffice, una poderosa herramienta que permite editar documentos Word, Excel y PowerPoint directamente desde tu nube.


¿Qué es OnlyOffice?

OnlyOffice es una suite ofimática online que se integra perfectamente con Nextcloud, permitiendo editar documentos en tiempo real, colaborar con otros usuarios y mantener compatibilidad con formatos de Microsoft Office.

  • 📝 Editor de documentos (Word)
  • 📊 Hojas de cálculo (Excel)
  • 📽️ Presentaciones (PowerPoint)
  • 👥 Edición colaborativa en tiempo real

Requisitos

  • Nextcloud instalado vía Snap
  • Servidor Ubuntu (recomendado 2GB RAM mínimo)
  • Acceso SSH con sudo

Instalar OnlyOffice Document Server con Docker

1. Instalar Docker


sudo apt update
sudo apt install docker.io -y
sudo systemctl enable --now docker
  

2. Ejecutar OnlyOffice


sudo docker run -i -t -d -p 8080:80 \
--restart=always \
onlyoffice/documentserver
  

Esto levantará OnlyOffice en:

http://TU_IP:8080

Instalar la aplicación en Nextcloud

  1. Entra a tu panel de Nextcloud
  2. Ve a Apps (Aplicaciones)
  3. Busca: ONLYOFFICE
  4. Instala ONLYOFFICE Docs

Configurar conexión con OnlyOffice

Ve a:

Configuración → Administración → ONLYOFFICE

En “Document Editing Service”, coloca:

http://TU_IP:8080

Configurar seguridad con JWT (recomendado)

Para mayor seguridad, puedes activar autenticación JWT.


sudo docker stop $(sudo docker ps -q)

sudo docker run -i -t -d -p 8080:80 \
-e JWT_ENABLED=true \
-e JWT_SECRET=mi_clave_super_segura \
--restart=always \
onlyoffice/documentserver
  

Luego en Nextcloud:

  • Activa JWT
  • Introduce la misma clave

Solución de problemas (Nextcloud Snap)

Si Nextcloud no se conecta correctamente:


sudo snap set nextcloud ports.http=80
sudo snap set nextcloud ports.https=443
sudo ufw allow 8080
  

Recomendaciones

  • 🔒 Usa HTTPS (Let’s Encrypt)
  • ⚡ Usa mínimo 2GB de RAM
  • 🌐 Configura dominio si lo usarás fuera de red local
  • 📦 Usa Docker para mayor estabilidad

Conclusión

Integrar OnlyOffice con Nextcloud transforma tu servidor en una plataforma completa de productividad, similar a Google Drive o Microsoft 365, pero con control total sobre tus datos.


Apóyame

Si esta guía te fue útil y quieres apoyar más contenido como este:

👉 https://www.patreon.com/u74078772?

Cómo instalar Nextcloud en Ubuntu Server 24.04 (Guía completa + Script automático)

Entrada fija

Si quieres tener tu propia nube privada tipo Google Drive o Dropbox, Nextcloud es una de las mejores opciones. En esta guía te mostraré cómo instalarlo en Ubuntu Server 24.04 de forma sencilla, incluyendo un script automático que hace casi todo por ti.


¿Qué es Nextcloud?

Nextcloud es una plataforma de almacenamiento en la nube de código abierto que te permite guardar archivos, sincronizarlos entre dispositivos, compartirlos y mucho más, todo en tu propio servidor.

  • 📁 Almacenamiento privado
  • 🔄 Sincronización de archivos
  • 🔐 Control total de tus datos
  • 👥 Compartir archivos fácilmente

Requisitos

  • Servidor con Ubuntu Server 24.04
  • Acceso SSH con permisos sudo
  • Conexión a internet

Instalación automática (Script)

Para facilitar todo el proceso, puedes usar el siguiente script que instala Apache, PHP, MariaDB y Nextcloud automáticamente.


#!/bin/bash

# ==========================================
# Instalador automático de Nextcloud
# Ubuntu Server 24.04
# Adaptado por julio101290
# ==========================================

set -e

DB_NAME="nextcloud"
DB_USER="ncuser"
DB_PASS="ncpassword123"
NC_DIR="/var/www/nextcloud"

echo "🔄 Actualizando sistema..."
sudo apt update && sudo apt upgrade -y

echo "🌐 Instalando Apache..."
sudo apt install apache2 -y

echo "🐘 Instalando PHP y extensiones..."
sudo apt install -y php php-cli php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-intl php-imagick php-gmp libapache2-mod-php

echo "🗄️ Instalando MariaDB..."
sudo apt install mariadb-server -y

echo "🔐 Configurando base de datos..."
sudo mysql -e "CREATE DATABASE ${DB_NAME};"
sudo mysql -e "CREATE USER '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASS}';"
sudo mysql -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';"
sudo mysql -e "FLUSH PRIVILEGES;"

echo "⬇️ Descargando Nextcloud..."
cd /var/www/
sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo apt install unzip -y
sudo unzip latest.zip
sudo chown -R www-data:www-data nextcloud
sudo chmod -R 755 nextcloud

echo "⚙️ Configurando Apache..."
sudo bash -c 'cat > /etc/apache2/sites-available/nextcloud.conf <<EOF
&lt;VirtualHost *:80&gt;
    ServerName localhost
    DocumentRoot /var/www/nextcloud

    &lt;Directory /var/www/nextcloud/&gt;
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
    &lt;/Directory&gt;

    ErrorLog \${APACHE_LOG_DIR}/nextcloud_error.log
    CustomLog \${APACHE_LOG_DIR}/nextcloud_access.log combined
&lt;/VirtualHost&gt;
EOF'

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime
sudo systemctl restart apache2

echo "🧹 Limpiando..."
sudo rm latest.zip

IP=$(hostname -I | awk '{print $1}')

echo "========================================="
echo "✅ INSTALACIÓN COMPLETA"
echo "========================================="
echo "🌐 Accede en tu navegador:"
echo "http://$IP"
echo ""
echo "📌 Base de datos:"
echo "DB: $DB_NAME"
echo "Usuario: $DB_USER"
echo "Password: $DB_PASS"
echo "Host: localhost"
echo ""
echo "⚠️ IMPORTANTE: Completa la instalación en el navegador"
echo "========================================="
  

Cómo ejecutar el script

  1. Crear el archivo: nano install_nextcloud.sh
  2. Pegar el script y guardar
  3. Dar permisos: chmod +x install_nextcloud.sh
  4. Ejecutar: ./install_nextcloud.sh

Acceso a Nextcloud

Una vez terminado, abre tu navegador y entra a:

http://TU_IP

Desde ahí podrás crear el usuario administrador y conectar la base de datos.


Recomendaciones de seguridad

  • 🔐 Cambiar la contraseña de la base de datos
  • 🔒 Activar HTTPS con Let’s Encrypt
  • 🧱 Configurar firewall (UFW)
  • 💾 Hacer backups regularmente

Conclusión

Con este método puedes tener tu propia nube privada funcionando en pocos minutos. Es ideal para uso personal o incluso para pequeñas empresas que quieran tener control total sobre sus datos.


Apóyame

Si esta guía te fue útil y quieres apoyar más contenido como este, puedes hacerlo aquí:

👉 https://www.patreon.com/u74078772?

Validación en UDO de SAP Business One HANA: Solución definitiva

Entrada fija

Si estás desarrollando en SAP Business One sobre HANA y necesitas validar datos en una tabla de usuario tipo documento (UDO), es probable que hayas enfrentado el problema de que tu código en SBO_SP_TransactionNotification no se ejecuta. Aquí te explico por qué y cómo solucionarlo.

El problema

En SAP HANA, cuando una tabla de usuario (UDT) se registra formalmente como Objeto Definido por el Usuario (UDO) de tipo documento, el parámetro :object_type que recibe el procedimiento almacenado no es el nombre de la tabla física (como '@MTTOCONFIG'), sino el nombre del objeto registrado (el campo Name en la tabla OUDO).

Por eso, aunque tu validación funcionaba para algunas tablas (como USUARIOALMACEN), para otras simplemente no se ejecutaba.

Ejemplo real:
Tabla física: @MTTOCONFIG
Nombre del UDO registrado: ConfigMtto
✅ La condición correcta es: UPPER(:object_type) = 'CONFIGMTTO'

Solución: Código final que funciona

IF UPPER(:object_type) = 'CONFIGMTTO' 
   AND (:transaction_type = 'A' OR :transaction_type = 'U') THEN

    DECLARE v_U_Tipo VARCHAR(100);
    DECLARE v_U_Code VARCHAR(100);

    -- Obtener valores de la cabecera (la tabla @MTTOCONFIG)
    SELECT "U_Tipo", "U_Code"
      INTO v_U_Tipo, v_U_Code
      FROM "@MTTOCONFIG"
     WHERE "DocEntry" = :list_of_cols_val_tab_del;

    -- Validación según el tipo
    IF UPPER(v_U_Tipo) = 'TIPOMQ' THEN
        IF NOT EXISTS (SELECT 1 FROM "@TYPEMTTO" WHERE "Code" = v_U_Code) THEN
            error := 1;
            error_message := N'El código ' || IFNULL(v_U_Code, 'NULL') || N' no existe en @TYPEMTTO (TipoMQ).';
        END IF;
    ELSEIF UPPER(v_U_Tipo) = 'EQUIPO' THEN
        IF NOT EXISTS (SELECT 1 FROM OITM WHERE "ItemCode" = v_U_Code) THEN
            error := 1;
            error_message := N'El código ' || IFNULL(v_U_Code, 'NULL') || N' no existe en OITM (Equipo).';
        END IF;
    END IF;

END IF;

Puntos clave

  • Usa el nombre del UDO, no el de la tabla física. Para conocerlo, consulta: SELECT "Name" FROM "OUDO" WHERE "TableName" = '@TU_TABLA';
  • La clave primaria en documentos es DocEntry, y llega directamente en :list_of_cols_val_tab_del.
  • Usa UPPER() para evitar problemas de mayúsculas/minúsculas tanto en object_type como en los valores de U_Tipo.
  • Siempre asigna error := 1 y un error_message claro para que SAP muestre el mensaje y cancele la transacción.

¿Por qué funciona con USUARIOALMACEN y no con MTTOCONFIG?

Porque USUARIOALMACEN también es un UDO registrado, y su nombre coincide con el de la tabla. En cambio, ConfigMtto fue registrado con un nombre diferente al de la tabla física. Siempre verifica el campo Name en OUDO.

✅ Resultado: Con esta modificación, la validación se ejecuta correctamente y se impide guardar datos incorrectos (por ejemplo, un U_Code que no existe en @TYPEMTTO).


¿Te fue útil esta solución? Apoya mi trabajo en Patreon y accede a más contenido exclusivo sobre SAP Business One, HANA y automatizaciones.❤️ Apóyame en Patreon

Creado con WordPress & Tema de Anders Norén