Beszel en un VPS — es el despliegue y la configuración de una plataforma descentralizada para crear redes sociales y foros en su propio servidor virtual, lo que garantiza un control total sobre los datos, la privacidad y la funcionalidad sin depender de servicios de terceros.
En la era de las comunicaciones digitales, donde las cuestiones de privacidad, control de datos y censura se vuelven cada vez más apremiantes, crece la demanda de soluciones descentralizadas y autoalojadas. Beszel es precisamente una de esas plataformas. Proporciona herramientas para crear sus propias redes sociales, foros o microcomunidades independientes, donde usted gestiona completamente las reglas, los datos y la infraestructura. Alojar Beszel en un servidor privado virtual (VPS) de Valebyte.com permite lograr la máxima flexibilidad, rendimiento y seguridad, convirtiendo su VPS en un nodo completo de la red descentralizada.
Este artículo será una guía exhaustiva para la instalación, configuración y mantenimiento de Beszel en un VPS. Analizaremos en detalle qué es Beszel, qué recursos del sistema necesita, cómo realizar la instalación de Beszel utilizando Docker y Docker Compose, configurar el acceso seguro a través de un proxy inverso con HTTPS, y cómo garantizar el funcionamiento ininterrumpido de la plataforma mediante copias de seguridad y actualizaciones regulares. Se prestará especial atención a la elección de la configuración óptima del VPS para diferentes escenarios de carga, para que su proyecto en Beszel sea estable y de alto rendimiento.
El objetivo de esta guía es proporcionarle todos los conocimientos necesarios y los pasos prácticos para lanzar con éxito su propia instancia de Beszel en un servidor, ya sea para uso personal, una pequeña comunidad o un proyecto grande.
¿Qué es Beszel y para qué sirve en un VPS?
Beszel es una plataforma relativamente nueva, pero de rápido crecimiento, para crear redes sociales descentralizadas y federadas. A diferencia de los gigantes de las redes sociales centralizadas tradicionales, Beszel otorga a los usuarios y administradores un control total sobre sus datos y comunicaciones. La idea principal de Beszel es brindar a todos la oportunidad de ejecutar su propia "instancia" o "servidor", que puede interactuar con otras instancias de Beszel (federación), pero manteniendo su independencia.
Características y ventajas de Beszel autoalojado
Cuando elige Beszel autoalojado en un VPS, obtiene una serie de ventajas significativas:
- Control total sobre los datos: Todos los datos (publicaciones, perfiles, archivos multimedia) se almacenan en su VPS, no en servidores de terceros. Esto es fundamental para la privacidad y la seguridad.
- Ausencia de censura: Usted establece las reglas de moderación para su instancia. Esto le da libertad de expresión dentro de su comunidad.
- Flexibilidad y personalización: Beszel ofrece amplias posibilidades para personalizar la apariencia y la funcionalidad. Puede adaptar la plataforma a las necesidades únicas de su comunidad.
- Resistencia a fallos: La naturaleza descentralizada significa que la falla de una instancia no provoca la desconexión de toda la red Beszel.
- Eficiencia económica: A largo plazo, alojar Beszel en su propio VPS puede ser más rentable que usar plataformas centralizadas de pago, especialmente para comunidades en crecimiento activo.
Escenarios de uso de Beszel en un servidor
Beszel en un servidor abre muchas posibilidades para diversos usuarios y organizaciones:
- Comunidades y foros privados: Cree un espacio cerrado para familiares, amigos, colegas o personas afines, donde puedan comunicarse de forma segura, intercambiar información y archivos multimedia. A diferencia de los foros tradicionales como Flarum o Discourse, Beszel ofrece un enfoque más moderno y federado.
- Alternativa a las redes sociales centralizadas: Si no está satisfecho con las políticas de privacidad o moderación de las grandes redes sociales, Beszel puede convertirse en su alternativa personal o corporativa, permitiéndole controlar su identidad digital.
- Blogs y microcomunidades: Utilice Beszel como plataforma para publicar notas cortas, noticias, ideas, donde los usuarios puedan comentar e interactuar, formando comunidades pequeñas pero activas.
- Desarrollo y pruebas: Los desarrolladores pueden usar Beszel como un entorno de pruebas para experimentar con tecnologías descentralizadas, probar nuevas funciones o integraciones.
- Proyectos educativos: Cree una plataforma para el intercambio de conocimientos y experiencias dentro de una institución educativa o un grupo de estudiantes, proporcionando un entorno seguro y controlado.
Al elegir Beszel en un VPS, apuesta por la independencia, el control y la escalabilidad, lo que es especialmente relevante en el panorama digital actual. Esto le permite no solo ser parte de Internet, sino también darle forma activamente, creando sus propios rincones del mundo digital.
Requisitos del sistema para Beszel: ¿cómo elegir el VPS óptimo?
La elección de un VPS adecuado para Beszel en un servidor es un paso clave para garantizar un funcionamiento estable y de alto rendimiento de su plataforma. Aunque Beszel puede funcionar con recursos relativamente modestos para un pequeño número de usuarios, la escalabilidad requiere un enfoque cuidadoso en la configuración del VPS. Analizaremos los requisitos mínimos y recomendados, y daremos consejos sobre la elección del subsistema de disco y la red.
Recursos mínimos y recomendados del VPS
Los requisitos de recursos para la instalación de Beszel dependen significativamente de la carga esperada: el número de usuarios activos, la frecuencia de las publicaciones, el volumen de contenido multimedia y el grado de federación con otras instancias.
Para uso personal o una comunidad pequeña (hasta 10-20 usuarios activos):
- Procesador (vCPU): 1-2 núcleos. Beszel no es extremadamente intensivo en recursos para cargas pequeñas, pero varios núcleos garantizarán una mejor capacidad de respuesta.
- Memoria RAM: 2 GB. Esto es suficiente para el funcionamiento de Beszel, la base de datos (PostgreSQL) y los contenedores Docker.
- Espacio en disco: 25-50 GB NVMe SSD. Para almacenar el SO, Beszel, la base de datos y un pequeño volumen de datos de usuario. NVMe es fundamental para el rendimiento de la base de datos y el acceso rápido a los archivos.
- Ancho de banda de red: 100 Mbps. Para un tráfico pequeño, esto será más que suficiente.
Para una comunidad mediana (hasta 50-100 usuarios activos):
- Procesador (vCPU): 2-4 núcleos. Permitirá procesar eficazmente un mayor número de solicitudes y tareas en segundo plano.
- Memoria RAM: 4-8 GB. Proporcionará suficiente caché para la base de datos y permitirá que Beszel funcione sin ralentizaciones durante las cargas máximas.
- Espacio en disco: 50-100 GB NVMe SSD. Teniendo en cuenta el crecimiento del contenido de usuario y el almacenamiento potencial de archivos multimedia.
- Ancho de banda de red: 200-500 Mbps. Para un intercambio de datos y federación más activos.
Para una comunidad grande o un proyecto de alta carga (más de 100 usuarios activos):
- Procesador (vCPU): 4-8+ núcleos. Cuantos más núcleos, mejor será el procesamiento paralelo de las solicitudes.
- Memoria RAM: 8-16+ GB. Factor clave para el rendimiento de la base de datos y la escalabilidad.
- Espacio en disco: 100-200+ GB NVMe SSD. Posiblemente se requiera escalar el disco o usar almacenamiento de objetos para archivos multimedia.
- Ancho de banda de red: 1 Gbps. Un alto ancho de banda es necesario para una federación activa, un gran número de cargas y descargas.
Importancia del NVMe SSD y el ancho de banda de red
NVMe SSD: Esto no es solo una recomendación, sino un requisito prácticamente obligatorio para cualquier plataforma web moderna, incluido Beszel. La base de datos (PostgreSQL) utilizada por Beszel trabaja activamente con el disco. Un disco lento (por ejemplo, un HDD normal o incluso un SATA SSD) será un cuello de botella, lo que provocará retrasos en el funcionamiento de la interfaz, carga lenta de páginas y baja capacidad de respuesta. NVMe SSD proporciona velocidades de lectura/escritura significativamente más altas y una baja latencia, lo cual es fundamental para el rendimiento de la base de datos y la velocidad general de Beszel.
Ancho de banda de red: Para Beszel VPS, especialmente en el caso de federación con otras instancias y un intercambio activo de contenido multimedia, una alta velocidad de red juega un papel importante. Un bajo ancho de banda puede provocar una carga lenta de imágenes y videos, retrasos en la sincronización con otros servidores y un deterioro general de la experiencia del usuario. Valebyte.com ofrece VPS con canales de red de alta velocidad, lo que es una ventaja significativa para plataformas como Beszel.
Al elegir un VPS, siempre debe dejar un pequeño margen de recursos, especialmente en RAM y espacio en disco, para evitar problemas en caso de un crecimiento inesperado de la actividad. Valebyte.com ofrece tarifas flexibles que permiten escalar fácilmente los recursos a medida que crece su proyecto en Beszel.
¿Busca un servidor fiable para sus proyectos?
VPS desde 10 $/mes y servidores dedicados desde 9 $/mes con NVMe, protección DDoS y soporte 24/7.
Ver ofertas →Preparación del VPS para la instalación de Beszel
Antes de proceder con la instalación de Beszel, su VPS debe estar debidamente preparado. Esta etapa incluye la elección del sistema operativo, la configuración inicial de seguridad y la instalación de las dependencias necesarias, como Docker. Utilizaremos la distribución Ubuntu Server 22.04 LTS, como una de las más populares y mejor soportadas para tareas de servidor.
Elección del sistema operativo y configuración inicial
Para Beszel, se recomienda utilizar una distribución estable de Linux. Ubuntu Server LTS (Long Term Support) versiones 20.04 o 22.04 son una excelente opción debido a su fiabilidad, gran comunidad y paquetes actualizados.
1. Conexión al VPS: Inicie sesión en su VPS por SSH con la cuenta root o un usuario con privilegios sudo.
ssh root@su_dirección_ip
2. Actualización del sistema: Primero, actualice todos los paquetes instalados a las últimas versiones:
sudo apt update
sudo apt upgrade -y
3. Creación de un nuevo usuario con privilegios sudo (recomendado): Trabajar como root no es seguro. Cree un nuevo usuario y agréguelo al grupo sudo:
sudo adduser beszeluser
sudo usermod -aG sudo beszeluser
Ahora puede salir de root e iniciar sesión con el nuevo usuario:
exit
ssh beszeluser@su_dirección_ip
4. Configuración del firewall (UFW): El firewall es necesario para proteger su servidor del acceso no autorizado. Permita el tráfico SSH, HTTP y HTTPS:
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
Confirme la activación (y). Verifique el estado del firewall:
sudo ufw status
Debería ver que las reglas SSH, HTTP y HTTPS están permitidas.
Instalación de Docker y Docker Compose para Beszel Docker
Beszel es ideal para el despliegue utilizando Docker, lo que simplifica la gestión de dependencias y proporciona aislamiento. Para Beszel Docker, deberá instalar Docker Engine y Docker Compose.
1. Instalación de Docker Engine: Instale los paquetes necesarios para Docker:
sudo apt install ca-certificates curl gnupg lsb-release -y
Agregue la clave GPG oficial de Docker:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Agregue el repositorio de Docker:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Actualice la lista de paquetes e instale Docker Engine, Docker CLI y containerd:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
2. Agregar usuario al grupo docker:
Para usar Docker sin sudo, agregue su usuario al grupo docker:
sudo usermod -aG docker ${USER}
Salga y vuelva a iniciar sesión en SSH para que los cambios surtan efecto:
exit
ssh beszeluser@su_dirección_ip
3. Verificación de la instalación de Docker: Ejecute un contenedor de prueba:
docker run hello-world
Si ve el mensaje "Hello from Docker!", significa que Docker está instalado y funciona correctamente.
4. Instalación de Docker Compose (si no está instalado como plugin):
En las nuevas versiones de Docker, Compose generalmente se instala como el plugin docker-compose-plugin, que se invoca con el comando docker compose (sin guion). Si tiene una versión antigua o desea instalar un ejecutable docker-compose separado (con guion), haga lo siguiente:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Verifique la versión de Docker Compose:
docker-compose --version
o para el plugin:
docker compose version
Ahora su VPS está completamente listo para desplegar Beszel utilizando Docker Compose.
¿Buscas un servidor que simplemente funcione?
Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.
Instalación de Beszel en un VPS usando Docker y Docker Compose
La forma más sencilla y recomendada de instalar Beszel en un VPS es utilizando Docker y Docker Compose. Este enfoque proporciona aislamiento, facilidad de actualización y gestión de dependencias. Crearemos un archivo docker-compose.yml que definirá todos los servicios necesarios: el propio Beszel, la base de datos PostgreSQL y otros componentes auxiliares.
Creación de la estructura del proyecto y el archivo docker-compose.yml
Para empezar, crearemos un directorio para nuestro proyecto Beszel y nos moveremos a él:
mkdir ~/beszel
cd ~/beszel
Ahora crearemos el archivo docker-compose.yml. Este es el archivo principal que describirá todos los servicios, redes y volúmenes necesarios para que Beszel funcione. Ábralo para editar:
nano docker-compose.yml
Pegue el siguiente contenido. Este ejemplo incluye Beszel, PostgreSQL y Redis. No olvide reemplazar your_domain.com, YOUR_DB_PASSWORD, YOUR_SECRET_KEY_BASE, YOUR_SMTP_HOST y otras variables con sus valores actuales.
version: '3.8'
services:
# Servicio de base de datos PostgreSQL
db:
image: postgres:15-alpine
restart: always
environment:
POSTGRES_DB: beszel
POSTGRES_USER: beszel
POSTGRES_PASSWORD: YOUR_DB_PASSWORD # Asegúrese de reemplazar con una contraseña compleja
volumes:
- db_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U beszel -d beszel"]
interval: 10s
timeout: 5s
retries: 5
# Servicio Redis para caché y colas
redis:
image: redis:7-alpine
restart: always
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
# Servicio principal de Beszel
app:
build:
context: .
dockerfile: Dockerfile # Usamos un Dockerfile local para Beszel
restart: always
environment:
RAILS_ENV: production
DATABASE_URL: postgres://beszel:YOUR_DB_PASSWORD@db:5432/beszel
REDIS_URL: redis://redis:6379/0
# Clave secreta para Rails. Se genera con el comando `rails secret` dentro del contenedor o en la máquina local.
SECRET_KEY_BASE: YOUR_SECRET_KEY_BASE # Asegúrese de generar una clave única
# Dominio en el que Beszel estará disponible
BESZEL_DOMAIN: your_domain.com # Reemplace con su dominio
# Configuración para el envío de correo (necesario para registro, restablecimiento de contraseña y notificaciones)
SMTP_HOST: YOUR_SMTP_HOST
SMTP_PORT: YOUR_SMTP_PORT # Generalmente 587 o 465
SMTP_USERNAME: YOUR_SMTP_USERNAME
SMTP_PASSWORD: YOUR_SMTP_PASSWORD
SMTP_FROM_ADDRESS: no-reply@your_domain.com
# Opcional: otras configuraciones de Beszel
BESZEL_TITLE: "Mi Comunidad en Beszel"
BESZEL_DESCRIPTION: "¡Bienvenido a nuestra comunidad descentralizada!"
ports:
- "3000:3000" # Beszel por defecto funciona en el puerto 3000
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
volumes:
- ./public/uploads:/app/public/uploads # Para almacenar archivos subidos
- ./log:/app/log # Para almacenar registros
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"] # Se asume la existencia de un endpoint de healthcheck
interval: 30s
timeout: 10s
retries: 5
volumes:
db_data:
redis_data:
Guarde y cierre el archivo (Ctrl+O, Enter, Ctrl+X).
Creación del Dockerfile para Beszel
Dado que Beszel generalmente no proporciona una imagen lista en Docker Hub, necesitaremos crear un Dockerfile simple para construir la imagen a partir del código fuente. Esto nos permitirá usar la última versión de Beszel.
nano Dockerfile
Pegue el siguiente contenido:
# Usamos la imagen base de Ruby
FROM ruby:3.2.2-alpine
# Instalamos las dependencias del sistema
RUN apk add --no-cache \
build-base \
postgresql-dev \
git \
nodejs \
yarn \
tzdata
# Establecemos el directorio de trabajo
WORKDIR /app
# Clonamos el repositorio de Beszel
RUN git clone https://github.com/beszel/beszel.git .
# Instalamos las dependencias de RubyGems
COPY Gemfile Gemfile.lock ./
RUN bundle install --jobs $(nproc) --without development test
# Instalamos las dependencias de JavaScript
COPY package.json yarn.lock ./
RUN yarn install --immutable
# Precompilación de assets
RUN bundle exec rails assets:precompile
# Abrimos el puerto
EXPOSE 3000
# Comando para iniciar la aplicación
CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]
Guarde y cierre el archivo (Ctrl+O, Enter, Ctrl+X).
Configuración de variables de entorno y lanzamiento de Beszel
1. Generación de SECRET_KEY_BASE:
Para las aplicaciones Rails, una SECRET_KEY_BASE única es fundamental. Puede generarla ejecutando temporalmente la consola de Rails:
docker run --rm ruby:3.2.2-alpine bundle exec rails secret
Copie la clave obtenida y péguela en su docker-compose.yml en lugar de YOUR_SECRET_KEY_BASE.
Por ejemplo: SECRET_KEY_BASE: 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
2. Configuración de SMTP:
Beszel utiliza el correo electrónico para el registro, el restablecimiento de contraseña y las notificaciones. Especifique los datos de su servidor SMTP (por ejemplo, de SendGrid, Mailgun, Gmail o su proveedor de alojamiento) en docker-compose.yml. Si no configura SMTP, las funciones relacionadas con el correo no funcionarán.
3. Lanzamiento de Docker Compose:
Una vez que haya configurado docker-compose.yml, se haya asegurado de que todas las variables de entorno estén establecidas y haya creado el Dockerfile, puede iniciar Beszel:
docker compose up -d --build
Este comando construirá la imagen de Beszel (--build), luego iniciará todos los servicios en segundo plano (-d).
4. Inicialización de la base de datos:
Después del primer inicio de los contenedores, es necesario ejecutar las migraciones de la base de datos y llenarla con datos iniciales. Espere a que el contenedor app se inicie (puede verificarlo con el comando docker compose ps).
docker compose exec app bundle exec rails db:migrate
docker compose exec app bundle exec rails db:seed # Opcional, para datos iniciales
5. Creación de una cuenta de administrador: Para iniciar sesión en Beszel, necesita una cuenta de administrador. Puede crearla a través de la consola de Rails:
docker compose exec app bundle exec rails console
En la consola de Rails, ejecute:
User.create!(email: "admin@your_domain.com", password: "YOUR_ADMIN_PASSWORD", password_confirmation: "YOUR_ADMIN_PASSWORD", username: "admin", admin: true)
exit
Reemplace admin@your_domain.com y YOUR_ADMIN_PASSWORD con sus datos.
Ahora su Beszel autoalojado debería estar en funcionamiento y accesible a través de la dirección IP de su VPS en el puerto 3000 (por ejemplo, http://su_dirección_ip:3000). Sin embargo, para un funcionamiento completo y seguro, será necesario configurar un proxy inverso y HTTPS.
Configuración de Reverse Proxy (Nginx o Caddy) y HTTPS para Beszel
El acceso directo a Beszel a través del puerto 3000 no es seguro ni conveniente para un entorno de producción. Para ello, se utilizan proxies inversos, como Nginx o Caddy, que redirigirán las solicitudes de los puertos 80 (HTTP) y 443 (HTTPS) al puerto 3000 de su contenedor Beszel. Esto también permitirá configurar fácilmente HTTPS con Let's Encrypt.
Antes de comenzar, asegúrese de que su dominio (por ejemplo, your_domain.com) apunte a la dirección IP de su VPS a través de un registro A en el DNS.
Opción 1: Nginx con Certbot para HTTPS
Nginx es un proxy inverso potente y ampliamente utilizado. Certbot (de Let's Encrypt) automatiza el proceso de obtención y renovación de certificados SSL.
1. Instalación de Nginx:
sudo apt update
sudo apt install nginx -y
2. Configuración de Nginx para Beszel: Cree un nuevo archivo de configuración de Nginx para su dominio:
sudo nano /etc/nginx/sites-available/beszel.conf
Pegue el siguiente contenido, reemplazando your_domain.com con su dominio real:
server {
listen 80;
listen [::]:80;
server_name your_domain.com www.your_domain.com; # Reemplace con su dominio
location / {
proxy_pass http://localhost:3000; # Puerto en el que Beszel está funcionando
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}
Guarde y cierre el archivo.
3. Activación de la configuración de Nginx: Cree un enlace simbólico al archivo de configuración y verifique la sintaxis de Nginx:
sudo ln -s /etc/nginx/sites-available/beszel.conf /etc/nginx/sites-enabled/
sudo nginx -t
Si no hay errores, reinicie Nginx:
sudo systemctl restart nginx
4. Instalación de Certbot y obtención del certificado SSL:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com -d www.your_domain.com
Siga las instrucciones de Certbot: ingrese su correo electrónico, acepte los términos y elija si desea redirigir HTTP a HTTPS. Certbot modificará automáticamente la configuración de Nginx y configurará la renovación automática del certificado.
5. Verificación del firewall: Asegúrese de que los puertos 80 y 443 estén abiertos:
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP' # Si previamente solo permitía HTTP
Ahora su Beszel debería estar accesible en https://your_domain.com.
Opción 2: Caddy con HTTPS automático
Caddy es un servidor web moderno que se destaca por su facilidad de configuración y la obtención automática de certificados SSL de Let's Encrypt. Es una excelente opción para quienes desean minimizar la configuración.
1. Instalación de Caddy: Agregue el repositorio de Caddy:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy -y
2. Configuración de Caddy para Beszel:
Cree o edite el archivo Caddyfile:
sudo nano /etc/caddy/Caddyfile
Elimine o comente el contenido existente y pegue lo siguiente, reemplazando your_domain.com con su dominio:
your_domain.com {
reverse_proxy localhost:3000 # Puerto en el que Beszel está funcionando
}
Guarde y cierre el archivo.
3. Reinicio de Caddy:
sudo systemctl reload caddy
Caddy obtendrá automáticamente un certificado SSL para su dominio y configurará la redirección de HTTP a HTTPS. Esto es significativamente más sencillo que la configuración manual de Nginx y Certbot.
4. Verificación del firewall: Asegúrese de que los puertos 80 y 443 estén abiertos:
sudo ufw allow http
sudo ufw allow https
Ahora su Beszel en el servidor debería estar accesible en https://your_domain.com con HTTPS configurado automáticamente.
Mantenimiento de Beszel: copias de seguridad, actualizaciones y monitoreo
Mantener su instancia de Beszel en funcionamiento y segura requiere un mantenimiento regular, que incluye la creación de copias de seguridad, actualizaciones oportunas y monitoreo. Estos pasos son cruciales para proteger sus datos y garantizar el funcionamiento estable de la plataforma.
Estrategias de copia de seguridad de datos de Beszel
La pérdida de datos puede ser catastrófica. Por lo tanto, una estrategia de copia de seguridad fiable es obligatoria. Para Beszel, desplegado a través de Docker Compose, necesita respaldar dos tipos principales de datos: la base de datos PostgreSQL y las cargas de usuario (archivos multimedia).
1. Copia de seguridad de la base de datos PostgreSQL
La base de datos es el corazón de Beszel. Para crear un volcado de la base de datos desde dentro del contenedor Docker, use pg_dump:
# Cree un directorio para las copias de seguridad en el sistema host
mkdir -p ~/beszel_backups/db
# Realice la copia de seguridad de la base de datos
docker compose exec -T db pg_dump -U beszel -d beszel > ~/beszel_backups/db/beszel_db_$(date +%Y%m%d%H%M%S).sql
Este comando creará un archivo SQL con el volcado de la base de datos en el directorio ~/beszel_backups/db/. Se recomienda automatizar este proceso con una tarea Cron.
2. Copia de seguridad de las cargas de usuario (archivos multimedia)
Los usuarios pueden subir imágenes, videos y otros archivos. Estos datos se almacenan en el volumen que montó en el contenedor Beszel (./public/uploads en nuestro docker-compose.yml). Simplemente puede copiar este directorio:
# Cree un directorio para las copias de seguridad de archivos en el sistema host
mkdir -p ~/beszel_backups/uploads
# Copie el directorio con las cargas
cp -r ~/beszel/public/uploads ~/beszel_backups/uploads/uploads_$(date +%Y%m%d%H%M%S)
3. Copia de seguridad completa de los volúmenes de Docker
Para un enfoque más completo, puede hacer una copia de seguridad de todos los volúmenes de Docker que creó (db_data y redis_data). Esto se puede hacer usando un contenedor temporal:
# Copia de seguridad de db_data
docker run --rm --volumes-from beszel-db-1 -v ~/beszel_backups/db_volume:/backup alpine tar cvf /backup/db_data_$(date +%Y%m%d%H%M%S).tar /var/lib/postgresql/data
# Copia de seguridad de redis_data
docker run --rm --volumes-from beszel-redis-1 -v ~/beszel_backups/redis_volume:/backup alpine tar cvf /backup/redis_data_$(date +%Y%m%d%H%M%S).tar /data
Reemplace beszel-db-1 y beszel-redis-1 con los nombres reales de sus contenedores, que puede encontrar usando docker compose ps. Este método es más fiable para restaurar el estado de los volúmenes.
Recomendaciones para las copias de seguridad:
- Automatización: Configure tareas Cron para realizar copias de seguridad diarias o semanales.
- Almacenamiento externo: Almacene las copias de seguridad no solo en el mismo VPS, sino también en un servidor remoto (S3, Dropbox, otro VPS) para protegerse contra la pérdida de todo el servidor.
- Pruebas: Pruebe periódicamente el proceso de restauración a partir de las copias de seguridad para asegurarse de su funcionalidad.
Procedimientos de actualización de Beszel e imágenes de Docker
Las actualizaciones regulares son cruciales para la seguridad y la obtención de nuevas funciones.
1. Actualización de Beszel
Dado que clonamos Beszel del repositorio de Git, la actualización se reduce a obtener los últimos cambios y reconstruir la imagen:
cd ~/beszel
git pull # Obtenemos los últimos cambios del repositorio de Beszel
docker compose stop # Detenemos los contenedores actuales
docker compose build --no-cache # Reconstruimos la imagen de Beszel
docker compose up -d # Iniciamos los nuevos contenedores
docker compose exec app bundle exec rails db:migrate # Ejecutamos las migraciones de la base de datos, si las hay
docker compose exec app bundle exec rails assets:precompile # Recompilamos los assets
Siempre verifique la documentación oficial de Beszel para obtener instrucciones de actualización específicas antes de realizar estos pasos.
2. Actualización de imágenes de Docker (PostgreSQL, Redis, etc.)
Para actualizar las imágenes base (PostgreSQL, Redis) basta con ejecutar:
docker compose pull # Descarga las últimas versiones de las imágenes especificadas en docker-compose.yml
docker compose down # Detiene y elimina los contenedores actuales (los volúmenes de datos se conservan)
docker compose up -d # Inicia nuevos contenedores con las imágenes actualizadas
Antes de actualizar imágenes críticas, como la base de datos, siempre haga una copia de seguridad completa.
3. Actualización del sistema VPS
No olvide actualizar regularmente el sistema operativo de su VPS:
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo reboot # Puede ser necesario reiniciar después de actualizar el kernel o paquetes críticos
Monitoreo de rendimiento y registros
El monitoreo le ayudará a reaccionar rápidamente a los problemas y optimizar los recursos.
- Docker Logs: Revise los registros de los contenedores para identificar errores:
Dozzle puede ser una herramienta útil para la visualización centralizada de registros de contenedores Docker a través de una interfaz web.docker compose logs -f app docker compose logs -f db - Docker Stats: Monitoree el uso de recursos (CPU, RAM, E/S de disco) por los contenedores:
docker stats - Monitoreo del sistema: Utilice herramientas como
htop,glances,df -hpara monitorear el rendimiento general del VPS, el uso de CPU, RAM y espacio en disco. - Notificaciones: Configure notificaciones (por ejemplo, a través de Prometheus/Grafana o scripts simples) sobre el uso crítico de recursos o errores en los registros.
La ejecución regular de estos procedimientos garantizará la estabilidad y seguridad a largo plazo de su plataforma Beszel en un VPS.
¿Buscas un servidor que simplemente funcione?
Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.
Elección de un VPS para Beszel bajo carga real: configuraciones y tarifas
La elección de un VPS adecuado para Beszel en un VPS es una de las decisiones más importantes, que influye directamente en el rendimiento, la estabilidad y el costo de propiedad de su plataforma. Valebyte.com ofrece varias tarifas que se pueden adaptar de manera óptima a escenarios de uso específicos de Beszel.
Definición de la carga real y su impacto en la configuración
La carga real en Beszel se determina por varios factores clave:
- Número de usuarios activos: ¿Cuántos usuarios interactúan simultáneamente con la plataforma? Un usuario "activo" es aquel que navega por las páginas, publica, comenta.
- Volumen y tipo de contenido: El contenido predominantemente textual requiere menos recursos que el intercambio activo de imágenes, videos y otros archivos multimedia.
- Grado de federación: Si su instancia de Beszel se federa activamente con un gran número de otras instancias (como, por ejemplo, en el caso de Lemmy), esto aumenta el tráfico de red y la carga en la base de datos.
- Frecuencia de operaciones: ¿Con qué frecuencia los usuarios publican, leen, buscan contenido? Una alta frecuencia de operaciones requiere una CPU más potente y un subsistema de disco rápido.
Basándose en estos factores, se pueden identificar varias configuraciones típicas de VPS.
Tabla: Configuraciones de VPS recomendadas para Beszel de Valebyte.com
Esta tabla le ayudará a elegir la tarifa de VPS adecuada de Valebyte.com en función de la carga prevista en su instancia de Beszel. Todas las tarifas de Valebyte.com incluyen NVMe SSD y un canal de red de alta velocidad, lo cual es fundamental para el rendimiento de Beszel.
| Escenario de uso | Número de usuarios activos | vCPU | RAM | NVMe SSD | Costo aproximado/mes (Valebyte.com) | Recomendaciones |
|---|---|---|---|---|---|---|
| Personal/Prueba | 1-10 | 1-2 núcleos | 2 GB | 50 GB | Desde 5-7$ | Para aprender Beszel, un blog personal o un grupo muy pequeño. |
| Comunidad pequeña | 10-50 | 2 núcleos | 4 GB | 80-100 GB | Desde 10-15$ | Para pequeños grupos de trabajo, comunidades familiares, proyectos de hobby. |
| Comunidad mediana | 50-200 | 4 núcleos | 8 GB | 100-160 GB | Desde 20-30$ | Para foros temáticos activos, pequeñas empresas, plataformas educativas. |
| Comunidad grande/Producción | 200-500+ | 6-8+ núcleos | 16-32+ GB | 200-400+ GB | Desde 40-70$+ | Para grandes comunidades públicas, instancias activamente federadas, proyectos con gran volumen de medios. |
Nota: Los precios son orientativos y pueden variar según las promociones y planes de tarifas actuales de Valebyte.com.
Recomendaciones adicionales para elegir un VPS
- Empiece pequeño, escale a medida que crezca: Siempre puede empezar con una tarifa más modesta y luego actualizar fácilmente el VPS a una configuración más potente sin reinstalar, si su proyecto comienza a crecer activamente. Valebyte.com ofrece esta posibilidad.
- Prioridad al NVMe SSD: Independientemente del tamaño de la comunidad, siempre elija un VPS con NVMe SSD. Este es el factor más significativo para el rendimiento de la base de datos y la capacidad de respuesta general de Beszel.
- Evalúe el consumo de tráfico: Si espera un intercambio activo de archivos multimedia o una federación amplia, asegúrese de que su plan de tarifas incluya un volumen suficiente de tráfico mensual o que ofrezca tráfico ilimitado.
- Ubicación del servidor: Elija un centro de datos que esté geográficamente más cerca de su audiencia principal para minimizar las latencias.
- Soporte: Preste atención a la calidad del soporte técnico del proveedor. Valebyte.com ofrece soporte 24/7, lo que puede ser fundamental en caso de problemas.
Un enfoque cuidadoso en la elección de un VPS para Beszel en un servidor le permitirá crear una plataforma rápida, fiable y escalable, capaz de satisfacer las necesidades de su comunidad.
Conclusiones
El despliegue de Beszel en su propio VPS de Valebyte.com proporciona un control total sobre su plataforma social descentralizada, garantizando privacidad, flexibilidad y escalabilidad. Utilizando Docker Compose, podrá instalar y mantener Beszel fácilmente, así como garantizar la seguridad con Nginx o Caddy con HTTPS automático. Para un funcionamiento óptimo de Beszel bajo carga, se recomienda elegir un VPS con NVMe SSD y suficiente RAM, lo que permitirá que su plataforma funcione de forma rápida y estable para cualquier número de usuarios.
¿Listo para elegir un servidor?
VPS y servidores dedicados en más de 72 países con activación instantánea y acceso root completo.
Empezar ahora →