Instalación de HestiaCP en un VPS: panel integral para alojamiento web, correo y DNS
TL;DR
En esta guía detallada, configuraremos HestiaCP paso a paso en su servidor virtual o dedicado, transformándolo en una plataforma potente y fácil de usar para la gestión de sitios web, correo electrónico, bases de datos y registros DNS. Aprenderá a preparar el servidor, instalar HestiaCP con las versiones de software actuales de 2026, configurar los servicios principales, garantizar la seguridad con TLS y configurar copias de seguridad.
- HestiaCP se instalará en Ubuntu 24.04 LTS o Debian 13.
- Se configurarán Nginx/Apache2, PHP, MySQL/PostgreSQL, Exim4, Dovecot, Bind9/PowerDNS.
- Emisión y renovación automática de certificados SSL/TLS de Let's Encrypt.
- Instrucciones detalladas para la preparación del servidor, incluyendo claves SSH, sudo y un firewall básico.
- Recomendaciones para la copia de seguridad y el mantenimiento del sistema para una estabilidad a largo plazo.
- Comandos y configuraciones actualizadas, verificadas en cada paso.
Qué configuramos y por qué
En esta guía, nos ocuparemos de la instalación y configuración integral de HestiaCP, un panel de control de alojamiento web de código abierto. HestiaCP es una solución ligera y potente para automatizar una multitud de tareas relacionadas con la gestión de servidores y el despliegue de aplicaciones web. Permite gestionar cómodamente sitios web (Nginx/Apache2 + PHP-FPM), bases de datos (MySQL/PostgreSQL), servidores de correo (Exim4/Dovecot), servidores DNS (Bind9/PowerDNS), cuentas FTP (Pure-FTPd) y certificados SSL (Let's Encrypt) a través de una interfaz web intuitiva.
Al final, obtendrá un VPS o servidor dedicado completamente configurado, listo para alojar varios sitios web, procesar correo electrónico para dominios y gestionar sus registros DNS. Es una solución ideal para desarrolladores que necesitan desplegar rápidamente un entorno de prueba o producción, para fundadores solitarios que gestionan múltiples proyectos, o para aquellos que desean tener control total sobre su infraestructura sin la necesidad de configurar manualmente cada componente.
HestiaCP es particularmente atractiva por su eficiencia y enfoque minimalista, ofreciendo un excelente rendimiento incluso en VPS modestos. Está construida sobre componentes estándar de Linux, lo que simplifica el mantenimiento y la expansión del sistema. El panel no está sobrecargado con funciones redundantes, centrándose en las tareas clave de alojamiento web y correo.
Existen diferentes enfoques para el despliegue de servicios web. Se pueden elegir servicios gestionados en la nube (por ejemplo, AWS Amplify, Google App Engine, Heroku), que ofrecen una alta abstracción de la infraestructura, escalado automático y administración mínima. Sin embargo, a menudo tienen un costo más alto, menor flexibilidad y pueden vincularlo a un proveedor específico. Otra opción es el uso de la contenerización (Docker, Kubernetes), que proporciona portabilidad y escalabilidad, pero requiere un conocimiento más profundo en DevOps.
¿Por qué self-hosted en un VPS con HestiaCP? Este enfoque ofrece un equilibrio óptimo entre control, costo y conveniencia. Obtiene acceso root completo al servidor, lo que le permite ajustar finamente cada aspecto del sistema según sus necesidades. El costo de un VPS es significativamente menor que el de la mayoría de los servicios gestionados en la nube, especialmente con una carga estable. HestiaCP se encarga de la rutina de configuración e integración de varios componentes, permitiéndole concentrarse en sus proyectos en lugar de en la administración. Es la elección ideal para quienes valoran la independencia, desean optimizar costos y, al mismo tiempo, tener una plataforma moderna, funcional y fácil de gestionar.
Qué configuración de VPS se necesita para esta tarea
La elección de un VPS o servidor dedicado adecuado es crucial para el funcionamiento estable y productivo de HestiaCP. Los requisitos pueden variar según la cantidad de sitios web alojados, el tráfico esperado y el uso de servidores de correo/DNS.
Requisitos mínimos para HestiaCP (a partir de 2026):
- Procesador (CPU): 1 núcleo. Procesadores modernos con una frecuencia de reloj de 2.0 GHz o superior. Para proyectos pequeños, esto es suficiente.
- Memoria RAM: 1 GB. HestiaCP es bastante ligera por sí misma, pero para el funcionamiento estable de todos los componentes (servidor web, PHP, base de datos, correo) 1 GB es el mínimo absoluto.
- Disco: 20 GB NVMe/SSD. Un disco rápido mejora significativamente el rendimiento del servidor web y las bases de datos. 20 GB serán suficientes para el sistema y algunos sitios web pequeños.
- Red: 100 Mbps. Para la mayoría de las tareas, esto es suficiente. La presencia de una dirección IPv4 es obligatoria, IPv6 es muy deseable.
- Sistema operativo: Ubuntu 24.04 LTS (recomendado) o Debian 13.
Plan de VPS recomendado para proyectos medianos (varios sitios, tráfico moderado):
Para un trabajo cómodo con varios sitios web, uso activo de correo y tráfico moderado, se recomienda elegir las siguientes características:
- Procesador (CPU): 2 núcleos. Proporcionará un mejor rendimiento en el procesamiento paralelo de solicitudes.
- Memoria RAM: 2-4 GB. Permitirá que varios procesos PHP, cachés de bases de datos y el servidor de correo funcionen cómodamente sin swapping.
- Disco: 50-100 GB NVMe/SSD. Proporcionará suficiente espacio para archivos de sitios web, bases de datos, buzones de correo y copias de seguridad. Los discos NVMe son significativamente más rápidos que los SSD y ofrecen una mejor capacidad de respuesta.
- Red: 1 Gbps. Para proyectos con crecimiento de tráfico esperado o para una sincronización de datos más rápida.
Puede encontrar un VPS con las características indicadas que se adapte al despliegue de HestiaCP y sus proyectos.
¿Cuándo se necesita un servidor dedicado y no un VPS?
Un servidor dedicado se vuelve necesario cuando su proyecto alcanza una escala en la que un VPS deja de ser suficiente, o cuando se requiere el máximo rendimiento y aislamiento. Esto puede ser:
- Aplicaciones web de alta carga: Miles de usuarios simultáneos, operaciones intensivas con bases de datos.
- Gran cantidad de sitios web: Si planea alojar cientos de sitios web o proporcionar alojamiento a otros usuarios.
- Servicios de streaming o servidores de juegos: Requieren un rendimiento de CPU estable y un alto ancho de banda de red.
- Requisitos específicos de seguridad o cumplimiento: Algunas normativas pueden requerir aislamiento físico.
- Necesidad de un volumen significativo de espacio en disco: Más de 1 TB o configuraciones RAID específicas.
En tales casos, vale la pena considerar un servidor dedicado adecuado que le proporcionará todos los recursos de una máquina física.
Ubicación del VPS: qué factores influyen
La elección de la ubicación del servidor influye en varios factores clave:
- Latencia: Cuanto más cerca esté el servidor de su audiencia objetivo, menor será la latencia y más rápida la carga de páginas para los usuarios. Esto es especialmente crítico para aplicaciones interactivas y servidores de juegos.
- Cumplimiento legal: El almacenamiento de datos en un país específico puede ser obligatorio según las leyes locales (por ejemplo, GDPR en Europa).
- Precios: El costo de un VPS puede variar ligeramente según la región del centro de datos.
- Disponibilidad de servicios: Algunos servicios pueden estar restringidos o no disponibles en ciertas regiones.
Siempre intente elegir una ubicación lo más cercana posible a la audiencia principal de su proyecto.
Preparación del servidor
Después de obtener acceso a un VPS o servidor dedicado nuevo, es necesario realizar una serie de configuraciones básicas para garantizar la seguridad y la comodidad de trabajo. Suponemos que ha obtenido acceso por SSH como usuario root.
1. Actualización del sistema
En primer lugar, actualice todos los paquetes instalados a las versiones más recientes. Esto garantizará la estabilidad y seguridad del sistema.
sudo apt update # Actualización de la lista de paquetes
sudo apt upgrade -y # Actualización de los paquetes instalados a las últimas versiones
sudo apt autoremove -y # Eliminación de paquetes innecesarios que quedaron después de la actualización
2. Creación de un nuevo usuario con permisos sudo
Trabajar como usuario root no es seguro. Cree un nuevo usuario y concédale permisos sudo.
# Creación de un nuevo usuario (reemplace 'youruser' con el nombre deseado)
adduser youruser
# Adición del usuario al grupo sudo (para Ubuntu/Debian)
usermod -aG sudo youruser
Ahora, salga de la sesión root e inicie sesión con el nuevo usuario:
exit
ssh youruser@your_server_ip
3. Configuración de la autenticación por claves SSH
La autenticación por claves SSH es mucho más segura que por contraseña. Si aún no tiene una clave SSH, genérela en su máquina local:
# En su máquina LOCAL
ssh-keygen -t ed25519 -C "[email protected]"
Luego, copie la clave pública al servidor:
# En su máquina LOCAL (reemplace 'youruser' y 'your_server_ip')
ssh-copy-id youruser@your_server_ip
Si ssh-copy-id no está disponible, hágalo manualmente:
# En su máquina LOCAL
cat ~/.ssh/id_ed25519.pub
# Copie la salida, luego en el SERVIDOR ejecute:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
# Pegue la clave pública copiada en este archivo
chmod 600 ~/.ssh/authorized_keys
4. Desactivación de la autenticación por contraseña para SSH (Opcional, pero recomendado)
Después de configurar correctamente las claves SSH, desactive el inicio de sesión por contraseña para SSH. Esto aumentará significativamente la seguridad.
# En el SERVIDOR, con su nuevo usuario sudo
sudo nano /etc/ssh/sshd_config
Encuentre las siguientes líneas y modifíquelas (o agréguelas si no existen):
# ...
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
PermitRootLogin no # Si desea prohibir el inicio de sesión para root incluso con clave
# ...
Guarde el archivo y reinicie el servicio SSH:
sudo systemctl restart sshd
IMPORTANTE: ¡Antes de deshabilitar la autenticación por contraseña, asegúrese de poder iniciar sesión con una clave SSH! Abra una nueva sesión SSH e intente iniciar sesión sin cerrar la actual. Si el inicio de sesión falla, revierta los cambios.
5. Instalación y configuración de Fail2Ban
Fail2Ban ayuda a proteger el servidor contra ataques de fuerza bruta, bloqueando las direcciones IP desde las cuales se producen numerosos intentos fallidos de inicio de sesión.
sudo apt install fail2ban -y
# Creación de una copia del archivo de configuración para modificar
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# Edición de jail.local (ejemplo de configuraciones básicas)
sudo nano /etc/fail2ban/jail.local
En el archivo jail.local, asegúrese de que las siguientes líneas estén configuradas:
# ...
[DEFAULT]
bantime = 10m # Tiempo de bloqueo (10 minutos)
findtime = 10m # Tiempo en el que deben ocurrir los intentos (10 minutos)
maxretry = 5 # Número máximo de intentos antes del bloqueo
# Enable SSH protection
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
# ...
Guarde el archivo y reinicie Fail2Ban:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo systemctl status fail2ban # Verificación del estado
6. Configuración del firewall (UFW)
UFW (Uncomplicated Firewall) es una interfaz fácil de usar para iptables. Lo configuraremos para permitir solo los puertos necesarios.
sudo apt install ufw -y
# Permitir SSH (puerto 22, si no lo ha cambiado)
sudo ufw allow ssh
# Permitir HTTP (puerto 80)
sudo ufw allow http
# Permitir HTTPS (puerto 443)
sudo ufw allow https
# Habilitar UFW
sudo ufw enable
# Ingrese 'y' y presione Enter
# Verificar el estado del firewall
sudo ufw status verbose
Con esto, la preparación básica del servidor está completa. Ahora puede proceder con la instalación de HestiaCP.
Instalación de software — paso a paso
La instalación de HestiaCP es relativamente sencilla, ya que proporciona un script de instalación conveniente. Utilizaremos la versión actual de HestiaCP, que será compatible en 2026, y la instalaremos en Ubuntu 24.04 LTS.
1. Descarga del script de instalación de HestiaCP
Primero, descargue el script de instalación del repositorio oficial de HestiaCP en GitHub. Asegúrese de usar curl para la descarga.
# Nos movemos al directorio temporal
cd /tmp
# Descargamos el script de instalación de HestiaCP versión 1.9.10 (actual a finales de 2025/principios de 2026)
# Siempre verifique la versión actual en el sitio web oficial de HestiaCP.
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/1.9.10/install/hst-install.sh
2. Ejecución del script de instalación
Después de descargar el script, hágalo ejecutable y ejecútelo. El script lo guiará a través del proceso de instalación, pidiéndole que seleccione componentes e ingrese credenciales.
# Hacemos el script ejecutable
chmod +x hst-install.sh
# Ejecutamos el script de instalación con permisos de superusuario
sudo ./hst-install.sh
Durante la instalación, el script hará varias preguntas:
- Would you like to continue? [y/n]: Ingrese
yy presione Enter. - Please enter admin email address: Ingrese su dirección de correo electrónico, que se utilizará para la cuenta de administrador de HestiaCP. Por ejemplo,
[email protected]. - Please enter hostname: Ingrese el nombre de dominio completo de su servidor (FQDN). Por ejemplo,
panel.yourdomain.com. Asegúrese de que este dominio apunte a la dirección IP de su servidor.
La instalación tomará algún tiempo (10-30 minutos) dependiendo del rendimiento de su servidor y la velocidad de su conexión a Internet. El script instalará y configurará automáticamente:
- Servidor web (Nginx + Apache2 o Nginx + Nginx)
- PHP-FPM (varias versiones, por ejemplo, 8.1, 8.2, 8.3)
- Sistema de gestión de bases de datos (MySQL/MariaDB o PostgreSQL)
- Servidor de correo (Exim4, Dovecot, SpamAssassin, ClamAV)
- Servidor DNS (Bind9 o PowerDNS)
- Servidor FTP (Pure-FTPd)
- Let's Encrypt para certificados SSL automáticos
- Firewall (UFW)
- Fail2Ban
3. Puertos utilizados por HestiaCP
HestiaCP utiliza varios puertos para sus servicios. Asegúrese de que estén permitidos en su firewall UFW:
# Si instaló UFW antes de HestiaCP, HestiaCP puede agregar sus propias reglas.
# Compruébelas. Si no, agréguelas manualmente.
# Panel de HestiaCP (por defecto 8083)
sudo ufw allow 8083/tcp
# SSH (normalmente 22, ya permitido)
sudo ufw allow 22/tcp
# HTTP (sitios web, 80, ya permitido)
sudo ufw allow 80/tcp
# HTTPS (sitios web, 443, ya permitido)
sudo ufw allow 443/tcp
# FTP (21)
sudo ufw allow 21/tcp
# SFTP (22, a través de SSH, ya permitido)
# DNS (53)
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
# SMTP (25, 465, 587)
sudo ufw allow 25/tcp
sudo ufw allow 465/tcp
sudo ufw allow 587/tcp
# IMAP/POP3 (110, 143, 993, 995)
sudo ufw allow 110/tcp
sudo ufw allow 143/tcp
sudo ufw allow 993/tcp
sudo ufw allow 995/tcp
# Recarga de UFW para aplicar los cambios
sudo ufw reload
4. Obtención de datos de inicio de sesión
Después de una instalación exitosa, el script mostrará las credenciales de inicio de sesión para el panel de HestiaCP:
-------------------------------------------------------------------------------
Congratulations! You have successfully installed Hestia Control Panel.
Go to https://your_server_ip:8083 to get started!
Username: admin
Password: YOUR_GENERATED_PASSWORD
-------------------------------------------------------------------------------
¡Asegúrese de guardar esta contraseña! La necesitará para el primer inicio de sesión. Si la pierde, puede restablecer la contraseña para el usuario admin más tarde.
5. Primer inicio de sesión en HestiaCP
Abra un navegador web y vaya a https://your_server_ip:8083 o https://panel.yourdomain.com:8083 (si especificó un FQDN y el DNS ya se ha actualizado). Es posible que vea una advertencia de conexión no segura, ya que se utiliza un certificado SSL autofirmado por defecto. Ignórela y continúe. Ingrese admin como nombre de usuario y la contraseña generada. Después de iniciar sesión, accederá al panel de control de HestiaCP.
En este punto, HestiaCP ha sido instalado con éxito y está listo para una configuración posterior.
Configuración
Después de instalar HestiaCP, es necesario realizar una configuración básica para sus sitios web, correo y DNS. Todo esto se hace a través de la interfaz web de HestiaCP, pero también cubriremos algunos aspectos importantes y verificaciones manuales.
1. Adición de dominio y sitio web
1. Inicie sesión en el panel de HestiaCP como admin.
2. Vaya a la sección WEB.
3. Haga clic en el botón + Add Web Domain.
4. Ingrese el nombre de su dominio (por ejemplo, example.com).
5. Asegúrese de que las casillas Enable SSL for this domain y Use Let's Encrypt to obtain SSL certificate estén marcadas. Esto configurará HTTPS automáticamente.
6. Seleccione las plantillas deseadas (Nginx, Apache, PHP). Para la mayoría de las aplicaciones PHP, la configuración estándar es adecuada.
7. Haga clic en Save.
HestiaCP creará automáticamente todos los archivos de configuración necesarios para Nginx y Apache, configurará PHP-FPM y solicitará un certificado SSL a Let's Encrypt. Esto puede tardar unos minutos.
Ejemplo de configuración de Nginx (después de crear el dominio a través del panel):
Puede ver la configuración de Nginx generada en HestiaCP o en el servidor en la ruta:
# /home/admin/conf/web/nginx.conf
server {
listen XXX.XXX.XXX.XXX:80;
listen XXX.XXX.XXX.XXX:443 ssl http2;
server_name example.com www.example.com;
root /home/admin/web/example.com/public_html;
index index.php index.html index.htm;
# SSL Configuration (generated by Let's Encrypt)
ssl_certificate /home/admin/conf/web/ssl.example.com.pem;
ssl_certificate_key /home/admin/conf/web/ssl.example.com.key;
# ... otras configuraciones SSL ...
# PHP-FPM Configuration
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php8.3-fpm.sock; # La versión de PHP puede variar
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
# ... otras configuraciones (gzip, security headers, etc.) ...
}
2. Configuración de DNS
Para que su sitio web esté disponible, es necesario configurar los registros DNS del dominio. Puede utilizar el servidor DNS de HestiaCP (Bind9/PowerDNS) o un proveedor de DNS externo.
Uso del servidor DNS de HestiaCP:
1. En el panel de HestiaCP, vaya a la sección DNS.
2. Haga clic en + Add DNS Domain.
3. Ingrese su dominio (example.com) y la dirección IP de su servidor.
4. HestiaCP creará automáticamente los registros estándar A, NS, MX, TXT.
5. IMPORTANTE: Debe cambiar los servidores NS de su dominio en su registrador de dominios (por ejemplo, GoDaddy, Namecheap) a ns1.example.com y ns2.example.com (o los que se indiquen en HestiaCP). Para ello, en el propio servidor HestiaCP, debe crear registros A para ns1.example.com y ns2.example.com, apuntando a la IP de su servidor. Si tiene una sola IP, ambos servidores NS apuntarán a ella.
# Ejemplo de registros DNS en HestiaCP para example.com
# Registro A para example.com
example.com. A XXX.XXX.XXX.XXX
# Registro A para www.example.com
www.example.com. A XXX.XXX.XXX.XXX
# Registros NS para example.com (apuntan a su servidor)
example.com. NS ns1.example.com.
example.com. NS ns2.example.com.
# Registros A para servidores NS (Glue Records, si los servidores NS están en el mismo dominio)
ns1.example.com. A XXX.XXX.XXX.XXX
ns2.example.com. A XXX.XXX.XXX.XXX
# Registro MX para correo
example.com. MX 10 example.com.
Uso de un proveedor de DNS externo:
Si utiliza Cloudflare, Google DNS u otro proveedor, simplemente agregue un registro A para su dominio (example.com y www.example.com) que apunte a la dirección IP de su servidor HestiaCP.
3. Configuración de buzón de correo
1. En el panel de HestiaCP, vaya a la sección MAIL.
2. Seleccione el dominio para el que desea crear un buzón de correo (por ejemplo, example.com).
3. Haga clic en + Add Mail Account.
4. Ingrese un nombre de usuario (por ejemplo, info) y cree una contraseña segura. La dirección completa será [email protected].
5. Haga clic en Save.
HestiaCP configurará automáticamente Exim4 (SMTP) y Dovecot (IMAP/POP3) para este buzón de correo. Podrá configurar un cliente de correo (Outlook, Thunderbird) o usar el correo web (Roundcube, si está instalado) para acceder al buzón. Puertos para correo: IMAP (143/993), POP3 (110/995), SMTP (25/465/587).
4. Configuración de base de datos
1. En el panel de HestiaCP, vaya a la sección DB.
2. Haga clic en + Add Database.
3. Seleccione el tipo de base de datos (MySQL o PostgreSQL).
4. Ingrese el nombre de la base de datos (por ejemplo, wp_database), el nombre de usuario (wp_user) y una contraseña segura.
5. Haga clic en Save.
HestiaCP creará la base de datos y el usuario. Podrá utilizar estos datos en los archivos de configuración de sus aplicaciones web (por ejemplo, wp-config.php para WordPress).
5. Verificación de funcionamiento
Después de todas las configuraciones, es importante asegurarse de que todo funciona correctamente.
- Verificación del sitio web: Abra su dominio (
https://example.com) en el navegador. Debería ver la página de marcador de posición estándar de HestiaCP o su sitio web si ya ha subido los archivos. Verifique la presencia del certificado SSL (el candado en la barra de direcciones). - Verificación de DNS: Utilice herramientas en línea, como DNS Checker, para asegurarse de que sus registros A y servidores NS se hayan propagado correctamente por todo el mundo.
# En su máquina local dig example.com A dig ns1.example.com A dig example.com NS - Verificación de correo: Envíe un correo electrónico de prueba desde su nuevo buzón a una dirección externa y viceversa. Verifique los registros del servidor de correo si hay problemas:
sudo tail -f /var/log/exim4/mainlog sudo tail -f /var/log/mail.log - Verificación de puertos: Asegúrese de que los puertos necesarios estén abiertos y accesibles desde el exterior.
# Desde la máquina local curl -v telnet://your_server_ip:8083 # HestiaCP panel curl -v telnet://your_server_ip:443 # HTTPS curl -v telnet://your_server_ip:25 # SMTP
6. Gestión de secretos y variables de entorno
Para las aplicaciones web, especialmente aquellas que utilizan bases de datos o API externas, es importante almacenar correctamente los datos secretos (contraseñas, claves de API). HestiaCP no tiene un sistema de gestión de secretos integrado para aplicaciones, pero puede utilizar enfoques estándar:
- Archivos .env: Para aplicaciones PHP (Laravel, Symfony), utilice un archivo
.enven la raíz del proyecto. Debe ser excluido del sistema de control de versiones y no debe ser accesible desde el exterior (Nginx/Apache deben estar configurados para esto).# Ejemplo de archivo .env DB_DATABASE=wp_database DB_USERNAME=wp_user DB_PASSWORD=YOUR_DB_PASSWORD APP_KEY=YOUR_APP_KEY - Variables de entorno: Puede establecer variables de entorno para los procesos PHP-FPM a través de HestiaCP. En la sección WEB, seleccione el dominio y luego "Edit". En la sección "Advanced Options" encontrará "Custom Nginx Configuration" y "Custom PHP-FPM Configuration". Para PHP-FPM, puede agregar líneas como:
# En Custom PHP-FPM Configuration env[DB_PASSWORD] = "YOUR_DB_PASSWORD"Esto hará que la variable esté disponible a través de
getenv('DB_PASSWORD')o$_ENV['DB_PASSWORD']en PHP. Tenga cuidado de no revelar estas variables en los registros o informes de errores.
Nunca almacene contraseñas y claves de API directamente en el código de la aplicación o en archivos de configuración accesibles públicamente.
Copias de seguridad y mantenimiento
Las copias de seguridad fiables y el mantenimiento regular son clave para la estabilidad de su servidor y la seguridad de sus datos. HestiaCP tiene funciones de copia de seguridad integradas, pero también es útil entender cómo configurar sus propios mecanismos.
1. Qué respaldar
- Datos de sitios web: Todos los archivos en los directorios
/home/admin/web/yourdomain.com/public_html/. - Bases de datos: Todas las bases de datos MySQL/PostgreSQL.
- Buzones de correo: Contenido de los buzones de correo (normalmente en
/home/admin/mail/yourdomain.com/). - Archivos de configuración de HestiaCP: Configuraciones importantes de HestiaCP, que se almacenan en
/usr/local/hestia/conf/y/home/admin/conf/. - Certificados SSL: En HestiaCP, suelen almacenarse en
/home/admin/conf/web/ssl.yourdomain.com..
HestiaCP crea copias de seguridad por defecto para cada usuario, incluyendo todos sus dominios web, bases de datos y cuentas de correo. Estas copias de seguridad se guardan en el directorio /home/backup/.
2. Configuración de la copia de seguridad automática en HestiaCP
1. Inicie sesión en el panel de HestiaCP como admin.
2. Vaya a la sección Server Settings (el icono de engranaje en la esquina superior derecha).
3. Seleccione la pestaña Configure.
4. En la sección Backup, puede configurar el horario, el número de copias de seguridad a almacenar y las exclusiones. Por defecto, HestiaCP crea copias de seguridad diariamente.
5. Haga clic en Save después de cambiar la configuración.
3. Script simple de copia de seguridad automática (opcional, para sincronización externa)
Aunque HestiaCP realiza copias de seguridad, es muy recomendable almacenarlas en un almacenamiento externo. Para ello, puede utilizar rsync, restic o borgbackup. Aquí tiene un ejemplo de script para sincronizar las copias de seguridad de HestiaCP con un almacenamiento de objetos remoto compatible con S3 o con otro VPS utilizando s3cmd (para S3) o rsync (para otro VPS).
Ejemplo con rsync a otro VPS:
#!/bin/bash
# Каталог с бэкапами HestiaCP
BACKUP_DIR="/home/backup/"
# Удаленный сервер и путь
REMOTE_USER="backup_user"
REMOTE_HOST="your_backup_server_ip"
REMOTE_PATH="/mnt/external_backups/hestiacp/"
# Команда rsync
# -avz: Archive mode, verbose, compress
# --delete: Удалять файлы на получателе, которых нет в источнике
# --exclude: Исключить временные файлы или кэши, если они есть в BACKUP_DIR
# --stats: Показать статистику передачи
rsync -avz --delete --stats "$BACKUP_DIR" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH"
if [ $? -eq 0 ]; then
echo "$(date): Las copias de seguridad de HestiaCP se sincronizaron correctamente con $REMOTE_HOST"
else
echo "$(date): ERROR: La sincronización de la copia de seguridad de HestiaCP falló en $REMOTE_HOST"
fi
Guarde este script (por ejemplo, /usr/local/bin/sync_hestia_backups.sh), hágalo ejecutable (sudo chmod +x /usr/local/bin/sync_hestia_backups.sh) y configure su ejecución a través de cron:
sudo crontab -e
Añada una línea para la ejecución diaria, por ejemplo, a las 3:00 de la madrugada:
0 3 * * * /usr/local/bin/sync_hestia_backups.sh >> /var/log/hestia_backup_sync.log 2>&1
Asegúrese de que el usuario backup_user en your_backup_server_ip tiene una clave SSH configurada para acceso sin contraseña desde su servidor HestiaCP.
4. Dónde almacenar las copias de seguridad
Es crucial almacenar las copias de seguridad fuera del servidor principal. Opciones:
- Almacenamiento de objetos externo compatible con S3: AWS S3, DigitalOcean Spaces, Backblaze B2, MinIO. Es una solución fiable y escalable.
- VPS separado: Puede adquirir un VPS pequeño y económico exclusivamente para almacenar copias de seguridad.
- NAS/servidor local: Si dispone de su propia infraestructura.
Nunca confíe únicamente en las copias de seguridad almacenadas en el mismo servidor que los datos originales. En caso de fallo del disco o compromiso del servidor, perderá todo.
5. Actualizaciones: Rolling vs Ventana de mantenimiento
Mantener el sistema actualizado es crítico para la seguridad y el rendimiento.
- Actualizaciones del SO y paquetes (Rolling Updates): Para los paquetes del sistema (Ubuntu/Debian) se recomienda configurar actualizaciones de seguridad automáticas.
sudo apt install unattended-upgrades -y sudo dpkg-reconfigure --priority=low unattended-upgradesEsto permitirá instalar actualizaciones de seguridad en segundo plano. Las actualizaciones completas
apt upgradees mejor ejecutarlas manualmente o planificarlas dentro de una "Ventana de mantenimiento". - Actualizaciones de HestiaCP: HestiaCP se actualiza normalmente a través de su propio script o mediante
apt, si ha añadido su repositorio. Lea siempre el changelog antes de actualizar.# Ejemplo de actualización de HestiaCP (siempre verifique la documentación oficial) sudo apt update sudo apt upgrade hestia -y - Actualizaciones de software dentro de HestiaCP (PHP, Nginx, MySQL): HestiaCP gestiona las versiones de PHP y otros componentes. Para actualizar a una nueva versión mayor de PHP, generalmente se requiere seleccionarla en la configuración del dominio o reinstalar el componente a través del script de HestiaCP.
- Ventana de mantenimiento: Para las actualizaciones mayores de HestiaCP, PHP o el kernel de Linux, planifique siempre una ventana de mantenimiento. Notifique a los usuarios, realice una copia de seguridad completa antes de comenzar y esté preparado para un posible tiempo de inactividad.
Revise regularmente los registros del sistema (/var/log/syslog, /var/log/mail.log, registros del servidor web) en busca de errores y advertencias. Esto ayudará a identificar problemas antes de que se vuelvan críticos.