Alojar Owncast en un VPS administrado significa emitir sus vídeos en directo y llevar su chat desde una máquina propia, que nuestros equipos mantienen actualizada y supervisan día y noche. Owncast es software libre con licencia MIT. Esta guía sigue su documentación oficial: el procesador y el ancho de banda que hay que prever, la instalación con Docker Compose, la clave de emisión, HTTPS, las calidades de vídeo, el almacenamiento de objetos, el chat, las copias de seguridad y las actualizaciones.
Por Simon Vasconcelos Lee
Publicado el 14 de noviembre de 202615 minutos de lectura
owncast/owncast, que incluye ffmpeg, el puerto web 8080 detrás de un proxy inverso en HTTPS y el puerto RTMP 1935 para su software de emisión.abc123 por defecto.data fuera del servidor para una recuperación completa, y actualice con docker compose pull.Owncast es un servidor de vídeo en directo y de chat de código abierto, autoalojado y de un solo usuario: una instancia lleva el canal de una persona o de una organización. Su README lo presenta como una forma de emitir sus propios directos, al estilo de las grandes plataformas generalistas, conservando la propiedad de su contenido, su interfaz, su moderación y su audiencia.
/hls/stream.m3u8.Owncast se publica bajo la licencia MIT. Concede, de forma gratuita, el derecho a usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y vender copias del software. Puede, por tanto, ejecutarlo para su empresa, su comunidad o sus clientes, sin ninguna licencia que comprar.
La única condición es conservar el aviso de copyright y el texto de la licencia en todas las copias o partes sustanciales del software. El texto ofrece el software «tal cual», sin garantía.
La documentación lo dice de entrada: las necesidades dependen de su configuración. Plantea, eso sí, una regla clara para estimarlas. El procesador transcodifica el vídeo en las calidades que ofrece; el ancho de banda lo lleva hasta cada espectador.
La documentación da dos fórmulas. El volumen de un directo, en gigabytes: tasa de bits en kbps × duración en segundos × espectadores ÷ 8.000.000. La velocidad de salida máxima que hay que sostener, en Mbps: tasa de bits en kbps × espectadores ÷ 1000. Con varias calidades, calcule cada una y súmelas. Sus estimaciones para un directo de dos horas:
| Tasa de bits del flujo | 10 espectadores | 25 espectadores | 50 espectadores |
|---|---|---|---|
| 2000 kbps | 18 GB, 20 Mbps | 45 GB, 50 Mbps | 90 GB, 100 Mbps |
| 4000 kbps | 36 GB, 40 Mbps | 90 GB, 100 Mbps | 180 GB, 200 Mbps |
| 6000 kbps | 54 GB, 60 Mbps | 135 GB, 150 Mbps | 270 GB, 300 Mbps |
En un VPS de Simafri, el tráfico no tiene contador mensual: sus directos se dimensionan según su tasa de bits máxima. A medida que crece su audiencia, el almacenamiento de objetos, que se trata más abajo, sirve el vídeo en lugar del servidor.
La documentación da referencias medidas, precisando que varían según el códec, la tasa de bits, la resolución y el preajuste del codificador:
| Configuración | Carga del procesador |
|---|---|
| Una sola calidad en paso directo, sin recodificación | Mínima |
| Una sola calidad transcodificada | Ligera |
| Dos calidades, alta y baja | Moderada |
| Tres calidades, o una compresión fuerte | Elevada |
La documentación no da ninguna cifra de memoria, y el disco cuenta poco: los segmentos de vídeo se escriben y después se eliminan a medida que avanza el directo. Solo la carpeta data crece con el tiempo. En un VPS, el procesador se encarga de la codificación: cada calidad transcodificada se dimensiona en vCPU. En un VPS administrado, cuéntenos cómo son sus directos, su tasa de bits, sus calidades y su audiencia, y le recomendamos el tamaño adecuado.
Antes de llegar al servidor, el flujo sale de su propia conexión. La documentación pide una velocidad de subida de al menos 1,5 veces la tasa de bits del flujo: 7,5 Mbps para un flujo de 5000 kbps. Recomienda una conexión por cable antes que el wifi.
La documentación propone la imagen owncast/owncast de Docker Hub, que incluye ffmpeg, la herramienta de codificación que Owncast necesita. En un servidor con Docker instalado, cree una carpeta y coloque en ella este compose.yaml, tomado de la documentación:
services:
owncast:
image: owncast/owncast:latest
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
- "1935:1935"
volumes:
- ./data:/app/data
docker compose up -d
127.0.0.1: es el único cambio respecto al ejemplo de la documentación, que publica los dos puertos. Su página sobre el proxy inverso pide no exponer Owncast directamente a internet, ya que escucha por defecto en todas las interfaces, y Docker publica un puerto en todas las direcciones del servidor cuando no se le indica ninguna. La interfaz web solo es accesible entonces a través del proxy inverso.data guarda la base de datos y sus copias en el servidor, fuera del contenedor: es lo que se copia y se traslada.latest sigue la versión más reciente; 0.3.0 fija una versión.La otra vía de la documentación es un script que descarga la última versión de Owncast para su plataforma, y ffmpeg si aún no está instalado. Lo instala todo en una carpeta owncast dentro de la carpeta actual. La documentación desaconseja ejecutarlo como root y recomienda leer cualquier script remoto antes de ejecutarlo:
curl -s https://owncast.online/install.sh | bash
Para que Owncast arranque con el servidor y se reinicie por sí solo tras un fallo, la documentación ofrece un servicio systemd, que hay que adaptar a la carpeta y a la cuenta elegidas:
[Unit]
Description=Owncast
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/owncast
ExecStart=/opt/owncast/owncast
User=owncast
Group=owncast
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now owncast
La administración está en /admin. Owncast arranca con unos accesos que todo el mundo conoce, y la documentación pide cambiarlos en el primer inicio de sesión:
| Ajuste | Valor por defecto | Para qué sirve |
|---|---|---|
| Usuario de administración | admin | Iniciar sesión en /admin |
| Contraseña de administración | abc123 | Iniciar sesión en /admin |
| Clave de emisión | abc123 | Publicar el flujo desde su software de emisión |
Para hacer este cambio antes de abrir la interfaz al público, pase por un túnel SSH: el puerto 8080 del servidor aparece en su ordenador, en http://localhost:8080/admin. Añada -p y el puerto SSH que figura en su área de cliente.
ssh -L 8080:127.0.0.1:8080 user@live.example.com
!@#$%^&*, y ningún guion.--adminpassword, que la guarda en la base de datos.La contraseña de administración y la clave de emisión empiezan las dos con el valor abc123, pero son dos ajustes distintos: cambie ambos.
Owncast no gestiona HTTPS por sí mismo. La documentación coloca delante un proxy inverso, que escucha en los puertos 80 y 443, obtiene el certificado, cifra el tráfico y lo transmite sin cifrar a Owncast en el puerto 8080. Sin HTTPS, los navegadores marcan la página como no segura, y una página servida en HTTPS no puede insertar su vídeo ni su chat.
/ws, que lleva el chat. Un proxy que la bloquea corta el chat.X-Forwarded-For para bloquear la dirección IP de un usuario expulsado del chat. La documentación pide que sea el propio proxy quien defina esta cabecera.La documentación sugiere Caddy si no tiene otra preferencia: obtiene por sí mismo un certificado de Let’s Encrypt y transmite WebSocket sin ningún ajuste adicional. Este es su ejemplo de Caddyfile, en el que la línea tls indica la dirección de correo de la cuenta de Let’s Encrypt:
live.example.com {
encode gzip
reverse_proxy 127.0.0.1:8080
tls contact@example.com
}
Con Nginx, la documentación insiste en WebSocket: olvidarlo es lo que desactiva el chat. Añada este bloque map a la sección http de /etc/nginx/nginx.conf:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
Este bloque de sitio sigue el de la documentación, en el puerto 80 para que Certbot pueda instalar HTTPS:
server {
listen 80;
listen [::]:80;
server_name live.example.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
proxy_pass http://127.0.0.1:8080;
}
}
sudo nginx -t
sudo certbot --nginx
Owncast acepta cualquier software que emita por RTMP hacia un servidor remoto. La clave solo se acepta en la ruta /live. En OBS:
rtmp://live.example.com:1935/live.Un software sin campo para la clave acepta la dirección completa, rtmp://live.example.com:1935/live/your-key.
En un VPS de Simafri, la dirección IPv6 del servidor puede abrir el puerto que elija: su software de emisión llega al puerto 1935 por esa dirección, con un nombre que lleva el registro AAAA. En una red Docker IPv4, como aquí, Docker dirige al contenedor el puerto de la dirección IPv6 del servidor. Abra ese puerto si ufw está activo y pruebe después desde su ordenador:
sudo ufw allow 1935/tcp
nc -6 -vz live.example.com 1935
Para cualquier otra necesidad, cuéntenos lo que tiene en mente y estudiamos con usted el direccionamiento.
2.| Resolución | Imágenes por segundo | Tasa de bits sugerida |
|---|---|---|
| 1920 × 1080 | 60 | 5000 kbps |
| 1920 × 1080 | 30 | 4500 kbps |
| 1280 × 720 | 60 | 4000 kbps |
| 1280 × 720 | 30 | 3000 kbps |
Las calidades que se ofrecen a los espectadores se ajustan en «Configuration», «Video». Varias calidades permiten al reproductor elegir la que su conexión puede sostener: la documentación recomienda una segunda calidad, de 1000 a 2000 kbps, junto a una calidad alta de 4000 a 6000 kbps, una vez probada su primera configuración.
El paso directo (passthrough) transmite el vídeo entrante sin recodificarlo: ahorra casi todo el procesador de esa calidad e ignora sus ajustes de tasa de bits, resolución y frecuencia de imagen. La documentación lo reserva a los usuarios avanzados: los espectadores reciben exactamente lo que envía su software, que algunos reproductores no saben leer, y la latencia aumenta. Pruebe la reproducción en los dispositivos que le importan antes de confiar en él.
La latencia se ajusta con el búfer de latencia, en la misma página. Cada nivel cambia un poco de retraso por estabilidad, y un cambio se aplica a partir del siguiente directo:
| Nivel | Duración de un segmento | Segmentos en la lista | Latencia aproximada |
|---|---|---|---|
| 0, la más baja | 1 segundo | 25 | unos 5 segundos |
| 1 | 2 segundos | 15 | unos 8 a 9 segundos |
| 2, por defecto | 3 segundos | 10 | unos 10 segundos |
| 3 | 4 segundos | 8 | unos 15 segundos |
| 4, la más alta | 5 segundos | 5 | unos 18 segundos |
La versión 0.3.0 añade también, del lado del espectador, la opción «Minimize latency» del reproductor, que acelera ligeramente la reproducción para acercarse al directo, y un ajuste de reproducción automática, desactivado por defecto.
Owncast puede enviar sus segmentos de vídeo a un almacenamiento compatible con S3, desde el que los espectadores los descargan. El servidor sigue sirviendo la lista de reproducción principal, las API y el chat; el vídeo, que representa casi todo el ancho de banda, sale del almacenamiento. Su servidor envía entonces una sola copia de cada calidad: en el ejemplo de la documentación, 6,5 Mbps para dos calidades a 5000 y 1500 kbps, tenga cero espectadores o mil. La carga del procesador sigue siendo la misma.
CORS o Access-Control-Allow-Origin en la consola del navegador procede casi siempre de ahí.Este almacenamiento sirve el directo, no un archivo: Owncast elimina sobre la marcha los segmentos más antiguos que la lista de reproducción, más un margen de unos 20 segmentos. El bucket solo guarda los últimos minutos del directo.
Para espectadores repartidos por todo el mundo, la documentación describe también una red de distribución de contenidos (CDN) colocada delante de Owncast, con un nombre de host de origen aparte y el ajuste «Websocket host override», que mantiene el chat conectado al servidor de origen.
El chat se configura en «Configuration», «Chat». Por defecto no hay ningún moderador: la documentación sugiere, como mínimo, nombrarse uno mismo moderador, desde la página «Users» de la administración.
La documentación señala que el bloqueo por IP puede eludirse, con una VPN por ejemplo: reduce los abusos, y la moderación sigue siendo el trabajo propio de cada canal. De ahí el interés de nombrar moderadores para sus directos más vistos.
Owncast hace copia de su propia base de datos una vez por hora, en data/backup/owncastdb.bak. La opción --backupdir cambia esa carpeta. Esto es lo que contiene la carpeta de datos:
| Elemento | Lo que guarda | En la copia horaria |
|---|---|---|
owncast.db | La configuración, los usuarios, el historial del chat y los tokens de acceso | Sí |
backup/ | La copia horaria de la base de datos | Es la propia copia |
Los emojis personalizados, public/ | Los archivos que ha añadido | No |
| Los plugins | Los plugins instalados y sus datos, desde la 0.3.0 | No |
| Los datos GeoIP | El origen de las conexiones de los espectadores | No |
Para una recuperación completa, o para trasladar la instancia, la documentación pide copiar toda la carpeta data: copiarla en una nueva instalación se lo lleva todo. Con Docker, con el servicio detenido:
docker compose down
tar -czf owncast-$(date +%F).tar.gz data
docker compose up -d
Programe esta copia al ritmo de sus directos y envíela fuera del servidor. Colocados en su disco, estos archivos entran también en sus copias de seguridad nocturnas.
Una restauración devuelve la base de datos al momento de la copia: todo lo que ha cambiado desde entonces se pierde. Copie primero la base actual en un lugar seguro y después:
--restoreDatabase y la ruta del archivo de copia: restaura la base y se cierra.docker compose stop
docker compose run --rm owncast --restoreDatabase data/backup/owncastdb.bak
docker compose up -d
Con Docker, la documentación da dos comandos, que se ejecutan desde la carpeta del compose.yaml. La carpeta de datos se queda en su sitio:
docker compose pull
docker compose up -d
Con el instalador, las notas de la versión 0.3.0 describen la actualización: detenga el servicio, aparte los archivos de la interfaz web que haya personalizado, vuelva a ejecutar el instalador con la cuenta que ejecuta Owncast y reinicie. El propio script guarda un archivo de la carpeta data en owncast-install-backups antes de sustituir la versión.
sudo systemctl stop owncast
su -c "curl https://owncast.online/install.sh | bash" owncast
sudo systemctl start owncast
La versión 0.3.0, publicada el 3 de septiembre de 2026, trae los plugins, Featured Streams, la reproducción automática y la elección de la interfaz en la que escucha RTMP. Sus notas piden leer los cambios antes de actualizar, ya que afectan a su instancia: siga estas notas en cada versión y copie la carpeta data justo antes.
El autoalojamiento exige mantener el servidor además de la aplicación. En un VPS administrado, nuestros equipos se encargan del servidor y siguen su instancia de forma proactiva; Owncast sigue siendo su software, con sus ajustes y sus datos.
| Tema | Nuestros equipos | Usted |
|---|---|---|
| El servidor | Actualizaciones del sistema y de seguridad, con intervenciones en el servidor incluidas | El momento que mejor convenga a su actividad |
| La supervisión | Servidor vigilado las 24 horas del día, los 7 días de la semana, con intervención sin esperar su llamada | La lectura de los registros de su instancia |
| Owncast | Seguimiento proactivo: errores, lentitud, carga del procesador y espacio en disco detectados, corrección recomendada | Su instalación, sus actualizaciones y sus ajustes, que aplica usted o su asistente de IA |
| Los directos y el chat | El servidor que los soporta, vigilado y con copias de seguridad | Las claves de emisión, las calidades de vídeo, los moderadores y las reglas del chat |
| Las copias de seguridad | Cada noche, cifradas y guardadas fuera de la máquina; restauración incluida | Las copias propias de Owncast, y la petición de restauración, cuando la necesite |
| La migración | Su servidor actual migrado, gratis | El momento del cambio |
Si prefiere que nuestros equipos intervengan en la propia aplicación, ese servicio se factura por horas o a precio cerrado, con un presupuesto comunicado antes de la intervención.
Con un VPS administrado de Simafri, nuestros equipos mantienen actualizado el servidor de su instancia de Owncast, lo vigilan día y noche e intervienen sin esperar su llamada; también siguen su instancia de forma proactiva y le recomiendan las correcciones útiles, que aplica usted o su asistente de IA. Las copias de seguridad se cifran cada noche y se guardan fuera de la máquina, su restauración está incluida, y la migración de su servidor actual es gratuita.
Sí. Owncast tiene licencia MIT: puede usarlo, modificarlo y redistribuirlo en su empresa sin ninguna licencia que comprar, siempre que conserve su aviso de copyright. Queda el coste del servidor que lo ejecuta.
Depende de las calidades que ofrezca. Como regla aproximada, la documentación cuenta un núcleo por calidad transcodificada a 30 imágenes por segundo, y casi nada para una calidad en paso directo. El número de espectadores no cambia la carga del procesador.
La velocidad máxima equivale a la tasa de bits del flujo multiplicada por el número de espectadores: 25 espectadores a 5000 kbps necesitan 125 Mbps de salida. Un almacenamiento de objetos compatible con S3 puede servir el vídeo en lugar del servidor, que entonces solo envía una copia de cada calidad.
Cree un compose.yaml con la imagen owncast/owncast, el puerto 8080 publicado en 127.0.0.1, el puerto 1935 para RTMP y una carpeta data montada en /app/data, y ejecute docker compose up -d. Coloque después delante del puerto 8080 un proxy inverso en HTTPS.
La administración, en /admin, se abre con el usuario admin y la contraseña abc123, y la clave de emisión también es abc123. Son dos ajustes distintos: cambie ambos en su primer inicio de sesión, en Configuration, Server Setup.
En OBS, elija un servicio personalizado e introduzca rtmp://su-servidor:1935/live y su clave de emisión. Envíe vídeo H.264 y audio AAC, con un fotograma clave cada 2 segundos.
Owncast hace copia de su base de datos cada hora en data/backup/owncastdb.bak. Esa copia solo cubre la base: para una recuperación completa, copie toda la carpeta data fuera del servidor. La restauración se hace con la opción --restoreDatabase.
Un VPS administrado cubre el servidor: sistema, seguridad, supervisión y copias de seguridad. Nuestros equipos siguen también su instancia de forma proactiva y le recomiendan las correcciones útiles, que aplica usted. Una intervención en la aplicación se factura por horas o a precio cerrado.
Simafri
Hablemos de su proyecto
Díganos en pocas palabras lo que necesita: le respondemos rápidamente.
¡Gracias! Su solicitud ha sido enviada. Le responderemos en breve.
¿Prefiere el correo? Escríbanos a support@simafri.com.