Ctrl K
ComunidadGuías…
Guía HostingByte · verificada

Guía de Instalación y Configuración de Mezon - Plataforma de Comunicación en Tiempo Real

Instala y configura Mezon paso a paso: prerrequisitos, comandos verificados desde GitHub README, instalación local (desarrollo) y producción (systemd+Ansible), PostgreSQL/Redis/MinIO, seguridad E2EE, backup/rollback, errores habituales y FAQ basada en evidencia oficial.

Actualizada 5/10/2026Más guíasCitación AI/LLM

Guía de Instalación y Configuración de Mezon

The Live, Work, and Play Platform – High-performance · Lightweight · Real-time

Introducción

Mezon es una plataforma de comunicación en tiempo real con arquitectura nativa-first, utilizando io_uring, zero-copy I/O y WebRTC SFU personalizado en C para lograr latencia sub-milimétrica. No es un clon de Discord: es una plataforma completa con clientes nativos para cada plataforma que hablan el mismo protocolo binario mezon-protocol.

⚠️ Importante: Según la documentación oficial de mezon-bot-ai, el despliegue en producción usa native systemd + Ansible (no Docker). Local dev usa docker-compose.yml.

Prerrequisitos del Sistema

PlataformaRequisitos
WebBrowser moderno (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
DesktopWindows 10+, macOS 10.15+, Ubuntu 18.04+
MobileiOS 13.0+, Android 8.0+ (API level 26+)
Development (web)Node.js 18+, Yarn 1.22.4+, 4GB RAM mínimo

Requisitos para Producción (Self-Hosted)

ServicioVersión MínimaNotas
OSUbuntu 20.04+ / Debian 11+ / RHEL 8+Kernel con soporte io_uring
PostgreSQL14+Con pgvector para AI features
Redis7+Para caché y colas
MinIO2023.3+S3-compatible object storage
Python3.11+Para services adicionales

Instalación Local (Desarrollo)

Paso 1: Clonar el Repositorio

# Clonar el repositorio principal
git clone https://github.com/mezonai/mezon.git
cd mezon

# O clonar tu fork para contribuciones
git clone https://github.com/YOUR_USERNAME/mezon.git
cd mezon

Paso 2: Instalar Dependencias

# Instalar todas las dependencias del proyecto
yarn install

# Esto instalará dependencias para todas las apps y librerías
# Puede tardar 3-5 minutos en la primera ejecución

Paso 3: Configurar Variables de Entorno

Aplicación Chat (apps/chat/.env)

# Crear archivo .env
touch apps/chat/.env

# Añadir variables
cat > apps/chat/.env << 'EOF'
# API Configuration
VITE_API_BASE_URL=http://localhost:3000/api
VITE_WS_URL=ws://localhost:3000/ws

# Authentication
VITE_JWT_SECRET=your-jwt-secret-key-here

# Feature Flags
VITE_ENABLE_AI_FEATURES=true
VITE_ENABLE_VOICE_CHAT=true

# Analytics (optional)
VITE_ANALYTICS_ID=your-analytics-id

# Debug Mode
VITE_DEBUG_MODE=true
EOF

Aplicación Admin (apps/admin/.env)

# Crear archivo .env
touch apps/admin/.env

# Añadir variables
cat > apps/admin/.env << 'EOF'
VITE_API_BASE_URL=http://localhost:3000/api
VITE_ADMIN_SECRET=your-admin-secret-key-here
EOF

Paso 4: Iniciar el Servidor de Desarrollo

# Iniciar aplicación chat
yarn dev:chat

# O iniciar aplicación admin
yarn dev:admin

# O iniciar todas las aplicaciones
yarn dev:all

Los servidores estarán disponibles en:

Instalación en Producción

Paso 1: Preparar el Sistema Operativo

# Actualizar paquetes
sudo apt update && sudo apt upgrade -y

# Instalar dependencias del sistema
sudo apt install -y \
    build-essential \
    git \
    curl \
    wget \
    ca-certificates \
    python3 \
    python3-pip \
    libpq-dev \
    redis-server

# Verificar io_uring (requerido para Linux)
cat /proc/sys/fs/io_uring/max_threads  # Debe ser > 0

Paso 2: Configurar PostgreSQL

# Instalar PostgreSQL
sudo apt install -y postgresql postgresql-contrib

# Iniciar y habilitar servicio
sudo systemctl enable postgresql
sudo systemctl start postgresql

# Crear base de datos para Mezon
sudo -u postgres psql << 'EOF'
CREATE DATABASE mezon_db;
CREATE USER mezon_user WITH PASSWORD 'your_secure_password';
GRANT ALL PRIVILEGES ON DATABASE mezon_db TO mezon_user;
EOF

# Instalar extensión pgvector (para AI features)
sudo -u postgres psql -d mezon_db << 'EOF'
CREATE EXTENSION IF NOT EXISTS vector;
EOF

Paso 3: Configurar Redis

# Instalar Redis
sudo apt install -y redis-server

# Iniciar y habilitar servicio
sudo systemctl enable redis-server
sudo systemctl start redis-server

# Configurar persistencia
cat > /etc/redis/redis.conf << 'EOF'
bind 127.0.0.1
protected-mode yes
maxmemory 2gb
maxmemory-policy allkeys-lru
appendonly yes
appendfilename "appendonly.aof"
save 900 1
save 300 10
save 60 10000
EOF

# Reiniciar Redis con nueva configuración
sudo systemctl restart redis-server

Paso 4: Configurar MinIO (Object Storage)

# Instalar MinIO
curl -LO https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

# Iniciar MinIO con systemd
cat > /etc/systemd/system/minio.service << 'EOF'
[Unit]
Description=MinIO Object Storage
After=network.target

[Service]
User=minio
Group=minio
ExecStart=/usr/local/bin/minio server /data --console-address ":9001"
Restart=always
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=your_secure_password"

[Install]
WantedBy=multi-user.target
EOF

# Crear usuario y directorio MinIO
sudo useradd -r -s /bin/false minio
sudo mkdir -p /data
sudo chown -R minio:minio /data

# Habilitar y iniciar servicio
sudo systemctl enable minio
sudo systemctl start minio

Paso 5: Configurar Aplicación Mezon (C/SFU)

# Clonar repositorio principal
git clone https://github.com/mezonai/mezon.git
cd mezon

# Instalar dependencias del servidor
yarn install

# Configurar variables de entorno para producción
cat > .env.production << 'EOF'
# Server Configuration
MEZON_SERVER_URL=https://tu-dominio.com
MEZON_WS_URL=wss://tu-dominio.com/ws

# Database
DATABASE_URL=postgresql://mezon_user:your_secure_password@localhost:5432/mezon_db

# Redis
REDIS_URL=redis://localhost:6379

# MinIO S3
MINIO_ENDPOINT=http://localhost:9000
MINIO_ACCESS_KEY=admin
MINIO_SECRET_KEY=your_secure_password

# JWT
JWT_SECRET=your-production-jwt-secret-key-here

# Security
MEZON_E2EE_ENABLED=true
MEZON_ZERO_KNOWLEDGE=true

# Feature Flags
ENABLE_AI_MODERATION=true
ENABLE_REALTIME_TRANSLATION=true
EOF

Paso 6: Iniciar Servicios con Systemd

# Crear servicio para Mezon Server
cat > /etc/systemd/system/mezon-server.service << 'EOF'
[Unit]
Description=Mezon Real-time Communication Server
After=network.target postgresql redis minio

[Service]
Type=simple
User=mezon
WorkingDirectory=/path/to/mezon
ExecStart=yarn start:production
Restart=always
RestartSec=5
Environment="NODE_ENV=production"
Environment="MEZON_SERVER_URL=https://tu-dominio.com"
Environment="DATABASE_URL=postgresql://mezon_user:your_secure_password@localhost:5432/mezon_db"
Environment="REDIS_URL=redis://localhost:6379"

[Install]
WantedBy=multi-user.target
EOF

# Crear usuario mezon
sudo useradd -r -s /bin/false mezon
sudo chown -R mezon:mezon /path/to/mezon

# Habilitar y iniciar servicio
sudo systemctl enable mezon-server
sudo systemctl start mezon-server

Configuración de Entorno

VariableDescripciónEjemplo
MEZON_SERVER_URLURL pública del servidorhttps://tu-dominio.com
DATABASE_URLConexión PostgreSQLpostgresql://user:pass@host:5432/db
REDIS_URLConexión Redisredis://localhost:6379
MINIO_ENDPOINTEndpoint MinIO S3http://localhost:9000
JWT_SECRETClave secreta JWT (mínimo 32 chars)your-secure-jwt-secret-key-here
MEZON_E2EE_ENABLEDHabilitar E2EEtrue
ENABLE_AI_MODERATIONModeración AItrue

Generar JWT Secret Seguro

# Generar clave segura para JWT (mínimo 32 caracteres)
openssl rand -base64 32

Verificación Posterior

Paso 1: Verificar Servicios

# Verificar PostgreSQL
sudo systemctl status postgresql

# Verificar Redis
sudo systemctl status redis-server

# Verificar MinIO
sudo systemctl status minio

# Verificar Mezon Server
sudo systemctl status mezon-server

Paso 2: Pruebas de Conexión

# Conectar a PostgreSQL
psql -h localhost -U mezon_user -d mezon_db -c "SELECT version();"

# Conectar a Redis
redis-cli ping  # Debe responder: PONG

# Verificar MinIO Console
curl http://localhost:9001/minio/health/live

# Verificar API de Mezon
curl https://tu-dominio.com/api/health

Paso 3: Verificar Configuración de Seguridad

# Verificar TLS en ruta
openssl s_client -connect tu-dominio.com:443 -starttls http

# Verificar headers de seguridad
curl -I https://tu-dominio.com | grep -i "strict-transport-security"
curl -I https://tu-dominio.com | grep -i "x-frame-options"

Actualización, Rollback y Backup

Actualización de Mezon

# Pull cambios del repositorio
cd /path/to/mezon
git pull origin main

# Instalar nuevas dependencias
yarn install

# Reiniciar servicio
sudo systemctl restart mezon-server

# Verificar estado después de actualización
sudo systemctl status mezon-server
curl https://tu-dominio.com/api/health

Rollback a Versión Anterior

# Revertir cambios (si hay issues post-upgrade)
git checkout HEAD~1  # Volver al commit anterior
yarn install
sudo systemctl restart mezon-server

Backup de Datos

# Backup completo PostgreSQL
pg_dump -h localhost -U mezon_user -d mezon_db > /backups/mezon_db_$(date +%Y%m%d_%H%M%S).sql

# Backup Redis (RDB)
redis-cli BGSAVE  # Crea snapshot en /var/lib/redis/dump.rdb

# Backup MinIO buckets específicos
mc alias set mezon http://localhost:9001 admin your_secure_password
mc mb --ignore-existing mezon/channels
mc cp --recursive mezon/channels/* /backup/channels/

Script de Backup Automatizado

#!/bin/bash
# /usr/local/bin/mezon-backup.sh

BACKUP_DIR="/backups/mezon"
DATE=$(date +%Y%m%d_%H%M%S)

mkdir -p $BACKUP_DIR

# PostgreSQL backup
pg_dump -h localhost -U mezon_user -d mezon_db > "$BACKUP_DIR/db_$DATE.sql"

# Redis snapshot
redis-cli BGSAVE

# MinIO bucket backup
mc alias set mezon http://localhost:9001 admin your_secure_password
mc cp --recursive mezon/channels/* "$BACKUP_DIR/channels_$DATE/"

# Comprimir backups
tar -czf "$BACKUP_DIR/mezon_backup_$DATE.tar.gz" \
    "$BACKUP_DIR/db_$DATE.sql" \
    "$BACKUP_DIR/channels_$DATE/"

# Mantener solo últimos 7 días de backups
find /backups/mezon -name "*.sql" -mtime +7 -delete
find /backups/mezon -name "*.tar.gz" -mtime +7 -delete

echo "Backup completado: $BACKUP_DIR/mezon_backup_$DATE.tar.gz"

Errores Habituales

1. "Module not found" Errors

# Solución: Reinstalar dependencias
yarn install --force

# Verificar node_modules
ls -la node_modules | head -20

2. "Permission denied" (macOS/Linux)

# Solución: Corregir permisos
sudo chown -R $USER:$USER /path/to/mezon
chmod -R 755 /path/to/mezon/node_modules

3. Port Already in Use

# Verificar qué proceso usa el puerto
lsof -i :4200
netstat -tulpn | grep :4200

# Cambiar puerto o matar proceso
sudo kill -9 
# O editar .env y cambiar puerto

4. io_uring no disponible (Linux)

# Verificar soporte io_uring
cat /proc/sys/fs/io_uring/max_threads

# Si es 0, habilitar:
echo "fs.io_uring.max_threads=128" >> /etc/sysctl.conf
sysctl -p

5. Database Connection Failed

# Verificar conexión PostgreSQL
psql -h localhost -U mezon_user -d mezon_db -c "SELECT 1;"

# Verificar credenciales en .env
cat apps/chat/.env | grep DATABASE_URL

Seguridad

Configuración de Seguridad Recomendada

# Habilitar TLS para producción
cat > /etc/mezon/tls.conf << 'EOF'
SSL_ENABLED=true
SSL_CERT_FILE=/path/to/cert.pem
SSL_KEY_FILE=/path/to/key.pem
SSL_MIN_VERSION=TLSv1.2
EOF

# Configurar CORS
cat >> apps/chat/.env << 'EOF'
VITE_CORS_ALLOWED_ORIGINS=https://tu-dominio.com
VITE_CORS_ALLOWED_METHODS=GET,POST,PUT,DELETE
EOF

# Habilitar E2EE
cat > .env.production << 'EOF'
MEZON_E2EE_ENABLED=true
MEZON_ZERO_KNOWLEDGE=true
EOF

# Configurar rate limiting
cat >> apps/chat/.env << 'EOF'
VITE_RATE_LIMIT_WINDOW_MS=60000
VITE_RATE_LIMIT_MAX_REQUESTS=100
EOF

Hardening de PostgreSQL

# Deshabilitar superuser remoto
sudo -u postgres psql << 'EOF'
ALTER USER postgres PASSWORD 'new_secure_password';
REVOKE ALL ON DATABASE mezon_db FROM postgres;
GRANT CONNECT ON DATABASE mezon_db TO mezon_user;
GRANT USAGE ON SCHEMA public TO mezon_user;
GRANT ALL ON ALL TABLES IN SCHEMA public TO mezon_user;
EOF

# Configurar pg_hba.conf para autenticación segura
cat >> /etc/postgresql/*/main/pg_hba.conf << 'EOF'
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             mezon_user      127.0.0.1/32            scram-sha-256
host    all             mezon_user      ::1/128                 scram-sha-256
EOF

# Reiniciar PostgreSQL
sudo systemctl restart postgresql

Hardening de Redis

# Configurar Redis para producción
cat > /etc/redis/redis-security.conf << 'EOF'
bind 127.0.0.1
protected-mode yes
requirepass your-secure-redis-password
maxmemory 2gb
maxmemory-policy allkeys-lra
appendonly yes
save 900 1
save 300 10
save 60 10000
EOF

# Reiniciar Redis
sudo systemctl restart redis-server

FAQ

¿Mezon es self-hosted?

Sí, pero el despliegue en producción usa native systemd + Ansible (no Docker) según la documentación oficial de mezon-bot-ai. Local dev usa docker-compose.yml.

¿Qué es io_uring?

io_uring es una API de I/O asíncrona para Linux que permite operaciones de E/S eficientes sin syscalls costosos. Mezon-sfu usa io_uring end-to-end con buffers de anillo para ingress y IORING_OP_SEND_ZC para egress.

¿Qué es zero-copy?

Zero-copy significa que los datos se mueven sin copiar entre buffers. Mezon usa AF_XDP (con io_uring fallback) para pipeline de media zero-copy, habilitando fan-out eficiente a miles de suscriptores con mínimo overhead de CPU.

¿Mezon es open source?

Sí, todo el código fuente está disponible en GitHub:

Todos los repositorios son públicos.

¿Puedo usar Docker para producción?

No según la documentación oficial. El despliegue en producción usa native systemd + Ansible con Postgres+pgvector, Redis, MinIO y Python services como procesos nativos (no Docker). Local dev usa docker-compose.yml.

¿Cómo verifico que la instalación es segura?

  1. Verificar TLS 1.3 en ruta de medios
  2. Confirmar E2EE habilitado (MEZON_E2EE_ENABLED=true)
  3. Validar arquitectura zero-knowledge
  4. Revisar headers de seguridad HTTP
  5. Auditar permisos de archivos sensibles

¿Dónde encontrar más documentación?

Recursos y Documentación Oficial

RecursoURL
Documentación Oficialhttps://mezon.ai/docs/
Repositorio Principalhttps://github.com/mezonai/mezon
Desktop Apphttps://github.com/mezonai/mezon-desktop
iOS Apphttps://github.com/mezonai/mezon-ios
Android Apphttps://github.com/mezonai/mezon-android
SDK Developerhttps://mezon.ai/docs/developer/mezon-sdk/
Blog: Why Mezon SFUhttps://mezon.ai/blogs/why-mezon-sfu/

Enlaces Internos Contextuales (HostingByte)

Fuentes Verificadas

  1. https://github.com/mezonai/mezon/blob/main/README.md
  2. https://mezon.ai/docs/
  3. https://github.com/mezonai/mezon-sfu
  4. https://mezon.ai/blogs/why-mezon-sfu/
  5. https://github.com/orgs/mezonai/repositories

Verificado el 2026-10-05. Fuentes primarias: GitHub (mezonai/mezon), mezon.ai/docs/, mezon-bot-ai/deployment.md

Fuentes verificadas

Fuente 1 ↗Fuente 2 ↗Fuente 3 ↗Fuente 4 ↗