Jekyll2025-10-16T11:59:43+00:00https://aitorroma.com/feed.xmlAitor RomaPágina personal de Aitor RomaCómo Eliminar ‘index.php’ de las URLs en WordPress: Guía Completa2025-03-13T00:00:00+00:002025-03-13T00:00:00+00:00https://aitorroma.com/2025/03/13/eliminar-index-php-wordpress-urlsCómo Eliminar ‘index.php’ de las URLs en WordPress

El Problema con ‘index.php’ en las URLs

Cuando WordPress no puede identificar correctamente que estás usando Apache como servidor web, todas tus URLs incluirán “index.php”. Este problema es común especialmente cuando se ha modificado el nombre del servidor o su configuración, lo que impide que WordPress detecte automáticamente que está corriendo en un servidor Apache.

¿Por qué ocurre esto?

WordPress intenta detectar automáticamente el tipo de servidor web que estás utilizando para configurar las URLs de manera óptima. Sin embargo, en algunas situaciones como:

  • Modificaciones en el nombre del servidor
  • Configuraciones personalizadas de Apache
  • Entornos de servidor no estándar
  • Modificaciones en los headers del servidor

WordPress puede fallar en identificar correctamente que está corriendo en Apache, lo que resulta en la inclusión de “index.php” en todas las URLs.

Ejemplos de URLs problemáticas

Cuando esto sucede, verás URLs con este formato:

  • https://tudominio.com/?p=123
  • https://tudominio.com/index.php/2025/03/mi-articulo/
  • https://tudominio.com/index.php/categoria/articulo/
  • https://tudominio.com/index.php/archivos/123

La Solución: Forzar la Detección de Apache

Para resolver este problema de forma permanente, seguiremos estos pasos:

  1. Accede al servidor
    • Conéctate via SSH a tu servidor
    • Navega al directorio raíz de WordPress
  2. Localiza el archivo vars.php
    • Dirígete a la carpeta wp-includes
    • Busca el archivo vars.php
  3. Modifica el archivo
    • Abre vars.php en un editor
    • Añade esta línea al final del archivo:
      $is_apache = 1;
      
    • Esta línea fuerza a WordPress a reconocer Apache como servidor
  4. Protege el archivo contra modificaciones
    • Usa el comando chattr para hacer el archivo inmutable:
      sudo chattr +i wp-includes/vars.php
      
    • Esto evitará que el archivo sea modificado durante las actualizaciones
    • Para verificar el estado, usa:
      lsattr wp-includes/vars.php
      
  5. Actualiza la configuración
    • Ve a Ajustes > Enlaces permanentes
    • No necesitas cambiar nada, solo guarda
    • Esto regenerará la estructura de URLs

Ejemplo de URLs en WordPress

Consideraciones de seguridad

  • El uso de chattr requiere acceso root al servidor
  • Si necesitas actualizar manualmente el archivo en el futuro:
    sudo chattr -i wp-includes/vars.php  # Permite modificaciones
    # Realiza tus cambios
    sudo chattr +i wp-includes/vars.php  # Vuelve a proteger el archivo
    

Conclusión

Esta solución proporciona una forma permanente de mantener las URLs limpias en WordPress, sin preocuparse por las actualizaciones del sistema. El uso de chattr asegura que el archivo vars.php permanezca intacto, manteniendo tu configuración de URLs consistente en todo momento.

]]>
Kopia: La Herramienta Moderna para Copias de Seguridad2025-03-09T00:00:00+00:002025-03-09T00:00:00+00:00https://aitorroma.com/2025/03/09/kopia-backupKopia: La Herramienta Moderna para Copias de Seguridad

Kopia es una herramienta libre, moderna y rápida para hacer copias de seguridad. Al igual que otras herramientas como Borg o Restic, Kopia permite tomar snapshots de los datos del usuario y guardarlos en un repositorio.

Tipos de repositorio

Kopia ofrece diferentes tipos de repositorio para almacenar las copias de seguridad:

  • Directorio local
  • Servidor SFTP o WebDAV
  • Proveedores de almacenamiento en la nube
  • Servicios soportados por Rclone

La herramienta almacena los backups de manera eficiente utilizando técnicas de deduplicación y compresión opcionales. Además, ofrece seguridad mediante cifrado y proporciona una interfaz sencilla tanto en la línea de comandos como en una interfaz gráfica.

Cuando se necesita recuperar datos de una copia de seguridad, es posible montar el snapshot correspondiente y acceder al contenido utilizando las herramientas habituales.

Instalación de Kopia

Dado que Kopia es una aplicación reciente, no está incluida en los repositorios oficiales de Ubuntu. Sin embargo, la instalación es sencilla. Puedes descargar el paquete .deb desde el repositorio oficial de Kopia y luego instalarlo en tu sistema utilizando el siguiente comando:

wget https://github.com/kopia/kopia/releases/download/v0.13.0/kopia_0.13.0_linux_amd64.deb -O /tmp/kopia.deb
dpkg -i /tmp/kopia.deb

Configuración del repositorio

A continuación, veremos cómo configurar un repositorio utilizando Contabo Object Storage como ejemplo. Para ello, necesitarás:

  1. Una cuenta en Contabo Object Storage
  2. Un bucket con el nombre de tu host
  3. Credenciales de acceso (access key, secret key y endpoint)

Una vez que tengas estos datos, ejecuta:

kopia repository create s3 --bucket=<nombre del bucket> \
    --access-key=<access key> \
    --secret-access-key=<secret key> \
    --endpoint=eu2.contabostorage.com

Configuración de políticas de retención

Kopia permite ajustar las políticas de retención según tus necesidades:

kopia policy set --global --compression=zstd
kopia policy set --global --keep-annual 0
kopia policy set --global --keep-monthly 3
kopia policy set --global --keep-weekly 4
kopia policy set --global --keep-daily 7
kopia policy set --global --keep-latest 20

Script de respaldo

Aquí tienes un ejemplo de script de respaldo completo:

#!/bin/bash

export KOPIA_PASSWORD="<contraseña>"

ACCESS_KEY="<access key>"
SECRET_KEY="<secret key>"
ENDPOINT="eu2.contabostorage.com"
BUCKET_NAME="<nombre del bucket>"

# Conectar al repositorio S3
kopia repository connect s3 \
    --bucket="$BUCKET_NAME" \
    --access-key="$ACCESS_KEY" \
    --secret-access-key="$SECRET_KEY" \
    --endpoint="$ENDPOINT"

# Crear snapshot
kopia snapshot create /home/*/web/*/public_html \
    --description "Websites $HOSTNAME"

# Ejecutar mantenimiento
kopia maintenance run --full

# Desconectar del repositorio
kopia repository disconnect

Configuración del cron

Para automatizar los backups, añade el script al cron:

(crontab -l 2>/dev/null; echo "*/15 * * * * /etc/backup.sh") | crontab -

Uso básico de Kopia

Listado de snapshots

Para ver los snapshots almacenados:

kopia snapshot list

Acceso a los snapshots

Para montar y acceder a un snapshot:

kopia mount <snapshot-ID> <directorio-de-montaje>

Conclusiones

Kopia es una herramienta poderosa y eficiente para realizar copias de seguridad de manera segura. Con características como:

  • Soporte para múltiples tipos de repositorio
  • Políticas de retención flexibles
  • Deduplicación y compresión
  • Cifrado integrado
  • Interfaz CLI y GUI

Kopia te brinda la confianza y tranquilidad de que tus datos estarán protegidos y disponibles para su recuperación en caso de cualquier eventualidad.

¿Ya utilizas alguna herramienta de backup? ¿Qué te parece Kopia en comparación? ¡Comparte tu experiencia en los comentarios!

]]>
Aitor Roma
N8N con Dominio Personalizado usando Traefik2025-03-09T00:00:00+00:002025-03-09T00:00:00+00:00https://aitorroma.com/2025/03/09/n8n-traefikN8N con Dominio Personalizado usando Traefik

En esta guía veremos cómo instalar N8N usando nuestro propio dominio personalizado de forma super sencilla con certificado SSL de LetsEncrypt usando Traefik como proxy inverso.

La instalación es muy sencilla porque la he simplificado al máximo. Vamos a ver paso a paso cómo hacerlo.

Instalación de Docker

Para comenzar, necesitamos un servidor VPS. Personalmente, recomiendo Contabo por su excelente relación calidad-precio.

Una vez tengamos nuestro servidor con Ubuntu 20.04 o superior, instalamos Docker:

/bin/bash -c "$(curl -fsSL https://get.docker.com)"
systemctl enable docker
systemctl start docker

Instalación de Traefik

Usaremos un repositorio que ya he preparado para la ocasión:

cd /opt
git clone https://github.com/aitorroma/docker-traefik traefik
cd traefik
chmod 600 acme.json
nano .env

Configuración del archivo .env

Debemos ajustar dos variables importantes en el fichero .env:

  1. ACME_EMAIL: Dirección de correo electrónico para el registro ACME.
    • Valor predeterminado: ‘[email protected]
    • Debes usar tu correo electrónico personal
  2. DOCKER_DOMAIN: Dominio base para las reglas de la interfaz.
    • Valor predeterminado: ‘my.domain.tld’
    • Debes usar tu dominio raíz para los subdominios

Levantar Traefik

cd /opt/traefik 
docker compose up -d

Este comando iniciará un contenedor escuchando en los puertos 80 y 443, listo para funcionar como proxy inverso.

Instalación de N8N usando Traefik

Una vez desplegado Traefik, seguimos estos pasos:

cd /opt
git clone https://github.com/aitorroma/n8n-traefik.git n8n 
cd n8n
nano .env

Configuración de N8N

Ajustamos las variables en el fichero .env:

N8N_HOST=n8n.hiveagile.club

## N8N Version
VERSION=latest

## N8N Config
VUE_APP_URL_BASE_API=https://${N8N_HOST}
N8N_PROTOCOL=https
WEBHOOK_URL=https://${N8N_HOST}

EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=336
GENERIC_TIMEZONE=Europe/Madrid
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true

#### SMTP CONFIG #####
N8N_EMAIL_MODE=smtp
N8N_SMTP_HOST=smtp.eu.mailgun.org
N8N_SMTP_PORT=465
N8N_SMTP_USER=[email protected]
N8N_SMTP_PASS=lapassword
N8N_SMTP_SSL=true
N8N_SMTP_SENDER=[email protected]

Importante: En N8N_HOST debes especificar la URL que usarás para acceder a tu instancia de N8N. Asegúrate de que el registro DNS A apunte a tu servidor.

Las demás variables pueden dejarse como están, excepto la sección SMTP CONFIG que debes configurar para recibir correos electrónicos.

Iniciar N8N

cd /opt/n8n 
docker-compose up -d
chmod 777 ./docker-volumes/n8n -Rf
docker compose restart

Este comando levantará la instancia de N8N en el subdominio especificado, con soporte SSL incluido.

Actualizaciones Automáticas

Puedes usar Watchtower para actualizar N8N y todos los contenedores marcados con la etiqueta latest:

docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower -i 30

¿Necesitas más ayuda?

Estás invitado a mi canal de Telegram, donde publico más soluciones como esta:

Únete a mi canal de Telegram

Conclusión

Con estos pasos, tendrás una instancia de N8N funcionando con tu propio dominio, certificado SSL y actualizaciones automáticas. Esta configuración es ideal para entornos de producción y te permitirá ejecutar tus flujos de trabajo de automatización de forma segura y profesional.

¿Te ha resultado útil esta guía? ¿Tienes alguna duda sobre la instalación? ¡Déjame un comentario y te ayudaré!

]]>
Aitor Roma