Instalación de Plex Media Server en Linux
Plex Media Server es una de las plataformas de streaming personal más populares, que permite organizar y transmitir tu biblioteca de películas, series y música desde tu servidor VPS o baremetal a cualquier dispositivo. Con soporte para transcodificación adaptativa, acceso remoto, Plex Pass con funciones avanzadas y aplicaciones nativas en todas las plataformas, Plex es una solución robusta para gestión de medios doméstica y semi-profesional.
Requisitos Previos
- Ubuntu 20.04+, Debian 11+, CentOS 8+ o Rocky Linux 8+
- Mínimo 2 GB de RAM (4 GB recomendados para múltiples streams)
- CPU potente o GPU para transcodificación (Intel, NVIDIA o AMD)
- Puerto 32400 disponible y accesible
- Cuenta en plex.tv (gratuita disponible)
Instalación de Plex Media Server
Ubuntu/Debian
# Descargar el paquete más reciente de Plex
# Revisar https://www.plex.tv/media-server-downloads/ para la última versión
PLEX_VERSION="1.40.1.8227-c0dd5a73e"
wget "https://downloads.plex.tv/plex-media-server-new/${PLEX_VERSION}/debian/plexmediaserver_${PLEX_VERSION}_amd64.deb"
# Instalar el paquete
sudo dpkg -i plexmediaserver_${PLEX_VERSION}_amd64.deb
# Habilitar e iniciar el servicio
sudo systemctl enable --now plexmediaserver
# Verificar el estado
sudo systemctl status plexmediaserver
Alternativa: usar el repositorio oficial:
# Agregar la clave GPG y el repositorio
echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
# Instalar
sudo apt update
sudo apt install -y plexmediaserver
CentOS/Rocky Linux
# Descargar el paquete RPM
PLEX_VERSION="1.40.1.8227-c0dd5a73e"
wget "https://downloads.plex.tv/plex-media-server-new/${PLEX_VERSION}/redhat/plexmediaserver-${PLEX_VERSION}.x86_64.rpm"
# Instalar
sudo rpm -ivh plexmediaserver-${PLEX_VERSION}.x86_64.rpm
# Iniciar el servicio
sudo systemctl enable --now plexmediaserver
Instalación con Docker
# Crear directorios para datos y medios
mkdir -p ~/plex/{config,transcode,media/{peliculas,series,musica}}
# Ejecutar Plex con Docker (requiere PLEX_CLAIM para vincular la cuenta)
# Obtener el token en: https://www.plex.tv/claim/
docker run -d \
--name plex \
--restart unless-stopped \
-e TZ=Europe/Madrid \
-e PLEX_CLAIM="claim-XXXXXXXXX" \
-e PUID=$(id -u) \
-e PGID=$(id -g) \
-p 32400:32400 \
-v ~/plex/config:/config \
-v ~/plex/transcode:/transcode \
-v ~/plex/media:/data \
plexinc/pms-docker:latest
Con Docker Compose:
cat > ~/plex/docker-compose.yml << 'EOF'
version: '3'
services:
plex:
image: plexinc/pms-docker:latest
container_name: plex
restart: unless-stopped
environment:
- TZ=Europe/Madrid
- PLEX_CLAIM=claim-XXXXXXXXX
- PUID=1000
- PGID=1000
volumes:
- ./config:/config
- ./transcode:/transcode
- ./media:/data
ports:
- 32400:32400
- 1900:1900/udp
- 5353:5353/udp
- 8324:8324
- 32469:32469
- 32410:32410/udp
- 32412:32412/udp
- 32413:32413/udp
- 32414:32414/udp
EOF
docker compose up -d
Configuración Inicial
Acceder a Plex para completar la configuración inicial. Para servidores remotos, usar un túnel SSH:
# Crear túnel SSH para acceder a la configuración inicial
ssh -L 8888:localhost:32400 usuario@IP-DEL-SERVIDOR
# Abrir en el navegador local:
# http://localhost:8888/web
Pasos de configuración:
- Iniciar sesión con tu cuenta Plex
- Nombrar el servidor
- Agregar bibliotecas de medios
- Completar el asistente
Organización de la Biblioteca
Plex utiliza convenciones de nombres para detectar metadatos automáticamente:
# Estructura para películas (formato: Título (Año))
~/plex/media/peliculas/
├── El Padrino (1972)/
│ └── El Padrino (1972).mkv
├── Blade Runner 2049 (2017)/
│ └── Blade Runner 2049 (2017).mkv
# Estructura para series (formato: Serie/Season XX/SerieS01E01)
~/plex/media/series/
├── Game of Thrones/
│ ├── Season 01/
│ │ ├── Game of Thrones - S01E01 - Winter Is Coming.mkv
│ │ └── Game of Thrones - S01E02.mkv
# Estructura para música (formato: Artista/Album/Canción)
~/plex/media/musica/
├── Pink Floyd/
│ ├── The Wall (1979)/
│ │ ├── 01 - In the Flesh.mp3
│ │ └── 02 - The Thin Ice.mp3
# Ajustar permisos para que Plex pueda leer los medios
sudo chown -R plex:plex /var/lib/plexmediaserver/ # Instalación nativa
# Para archivos externos, agregar plex al grupo correspondiente
sudo usermod -aG www-data plex
# O ajustar permisos del directorio de medios
chmod -R 755 ~/plex/media/
Configuración de Transcodificación
Plex puede transcodificar vídeo en tiempo real para adaptarlo al cliente:
# Directorio de transcodificación temporal (recomendado: RAM o SSD)
# Crear directorio en RAM para transcodificación temporal
sudo mkdir -p /tmp/plex-transcode
echo "tmpfs /tmp/plex-transcode tmpfs defaults,size=4G 0 0" | sudo tee -a /etc/fstab
sudo mount -a
En el panel web: Configuración > Servidor > Transcodificador:
- Ruta de transcodificación temporal:
/tmp/plex-transcode - Calidad de transcodificación: Alta (más CPU) o Automática
- Aceleración por hardware: Activar si tienes GPU (requiere Plex Pass)
Aceleración Hardware (requiere Plex Pass)
# Intel QuickSync - verificar disponibilidad
ls /dev/dri/
# Para Docker con soporte Intel
docker run -d \
--name plex \
--device /dev/dri:/dev/dri \
-e PLEX_CLAIM="claim-XXXXX" \
plexinc/pms-docker:latest
# NVIDIA - verificar
nvidia-smi
# Para Docker con NVIDIA
docker run -d \
--name plex \
--runtime=nvidia \
-e NVIDIA_VISIBLE_DEVICES=all \
plexinc/pms-docker:latest
Acceso Remoto
Plex incluye acceso remoto integrado a través de los servidores de Plex:
# Abrir el puerto de Plex en el firewall
# UFW
sudo ufw allow 32400/tcp comment "Plex Media Server"
sudo ufw reload
# firewalld
sudo firewall-cmd --permanent --add-port=32400/tcp
sudo firewall-cmd --reload
Para acceso remoto sin depender de los servidores Plex (Plex Relay), configurar un dominio propio:
# Nginx como proxy inverso con SSL
sudo tee /etc/nginx/sites-available/plex << 'EOF'
server {
listen 443 ssl http2;
server_name plex.tu-dominio.com;
ssl_certificate /etc/letsencrypt/live/plex.tu-dominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/plex.tu-dominio.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:32400;
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 https;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 36000s;
}
}
EOF
sudo ln -s /etc/nginx/sites-available/plex /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Plex Pass y Funciones Avanzadas
Plex Pass desbloquea funciones premium:
- Transcodificación con aceleración hardware
- Sincronización offline en móviles
- Transmisión en casa sin límites de calidad
- Metadatos de música enriquecidos
- Acceso a cámaras de seguridad
# Verificar si Plex Pass está activo desde la API
curl -s "http://localhost:32400/identity" \
-H "X-Plex-Token: TU_TOKEN_PLEX" | python3 -m json.tool | grep -i "pass\|plan"
# Obtener el token de Plex (necesario para la API)
# Panel web: Configuración > (tu usuario) > Token de acceso
Backup y Mantenimiento
# El directorio de datos de Plex contiene la base de datos y metadatos
# Instalación nativa: /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/
# Docker: ~/plex/config/Library/Application Support/Plex Media Server/
# Hacer backup de la base de datos y metadatos
PLEX_DATA="/var/lib/plexmediaserver/Library/Application Support/Plex Media Server"
sudo tar -czf plex-backup-$(date +%Y%m%d).tar.gz "$PLEX_DATA/Plug-in Support/Databases/"
# Actualizar Plex
# Instalación nativa (Debian/Ubuntu)
wget https://downloads.plex.tv/plex-media-server-new/VERSION/debian/plexmediaserver_VERSION_amd64.deb
sudo dpkg -i plexmediaserver_VERSION_amd64.deb
# Docker
docker pull plexinc/pms-docker:latest
docker compose down && docker compose up -d
# Limpiar archivos de transcodificación temporales
sudo rm -rf /tmp/plex-transcode/*
Solución de Problemas
Plex no se inicia:
# Ver logs del servicio
sudo journalctl -u plexmediaserver -f
# Docker:
docker logs plex --tail 50 -f
# Verificar permisos
ls -la "/var/lib/plexmediaserver/Library/"
sudo chown -R plex:plex /var/lib/plexmediaserver/
Sin acceso remoto:
# Verificar que el puerto 32400 está accesible externamente
curl -I http://TU-IP-PUBLICA:32400/identity
# Comprobar estado del acceso remoto en el panel
# Configuración > Servidor > Acceso remoto
La transcodificación falla o es muy lenta:
# Ver el uso de CPU durante la transcodificación
top -u plex
# Verificar logs de transcodificación
tail -f "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Logs/Plex Transcoder.log"
# Comprobar el directorio temporal (debe tener espacio suficiente)
df -h /tmp/plex-transcode
Conclusión
Plex Media Server en Linux ofrece una experiencia de streaming de calidad profesional con soporte para transcodificación adaptativa y acceso desde cualquier dispositivo. Combinado con aceleración hardware y una buena organización de la biblioteca, tu servidor VPS o baremetal puede convertirse en el centro multimedia de tu hogar o empresa.


