Instalación
Instalación
TreeAlarm VMS se instala de dos formas: con Docker en Linux o con un instalador nativo en Windows.
En ambos casos la interfaz web queda en el puerto 5134.
Descargas
| Archivo | Qué es |
|---|---|
| ta_vms-setup-x64.exe | Instalador para Windows, sin Docker |
| ta_vms-x64.msi | La misma instalación como MSI para Group Policy o Intune |
| ta_vms-docker.zip | El stack de Docker Compose, si prefiere no clonar el repositorio |
Todo lo demás, incluidas versiones anteriores: releases.
Docker en Linux
El repositorio de despliegue descarga imágenes precompiladas de Docker Hub. No hace falta el código fuente para poner el producto en marcha.
Requisitos
- Servidor Linux con Docker Engine y Docker Compose v2
- Los puertos indicados más abajo disponibles
- Espacio en disco para el archivo: la grabación ocupará todo el que se le dé
Puesta en marcha
git clone https://github.com/treealarm/ta_install
cd ta_install
# edite .env — véase la sección siguiente
docker compose --env-file .env up -d
O descomprima ta_vms-docker.zip, entre en ta_vms y ejecute el mismo comando docker compose.
El primer arranque tarda mientras se descargan las imágenes. Cuando termine, abra:
http://<servidor>:5134
Ajustes que debe cambiar
Todo está en .env. El stack arranca con valores por defecto funcionales; no lo exponga hasta
reemplazarlos.
| Variable | Valor por defecto | Por qué importa |
|---|---|---|
KEYCLOAK_ADMIN_PASSWORD | admin | Cámbielo. Contraseña del administrador de Keycloak, se fija en el primer arranque |
VMS_MEDIAMTX_PUBLISH_PASS | change_me_publish | Cámbielo. Con el valor por defecto cualquiera puede publicar en su servidor multimedia |
VMS_MEDIAMTX_READ_PASS | change_me_read | Cámbielo. Con el valor por defecto cualquiera puede tomar directamente el flujo de cualquier cámara |
VMS_WHEP_SESSION_KEY | — | Sella los tokens de sesión WHEP que reciben los navegadores; debe decodificar a 32 bytes, genere uno con openssl rand -base64 32 |
POSTGRES_PASSWORD | postgres | Cámbielo en dos sitios: .env e init_files/dapr_components/statestore.yaml |
RABBITMQ_DEFAULT_PASS | vms | Cámbielo en dos sitios: .env e init_files/dapr_components/orderpubsub.yaml |
WEB_VMS_PORT | 5134 | Cámbielo si el puerto está ocupado |
Las contraseñas de la base y del broker deben coincidir con sus copias en los componentes de Dapr;
db-init las comprueba en cada arranque y detiene el stack si difieren.
Acceso y usuarios
El stack incluye su propio Keycloak. El primer acceso es admin / admin; cambie esa contraseña en
la interfaz web. Los usuarios se añaden en http://<servidor>:8013: cuentas nuevas,
restablecimiento de contraseñas y el rol de administrador. La consola de Keycloak está en
http://127.0.0.1:8180, con la contraseña de administrador de .env.
Puertos
| Puerto | Para qué |
|---|---|
5134/tcp | Interfaz web y API REST |
8554/tcp | RTSP |
8889/tcp | Señalización WebRTC (WHEP) |
8189/udp | Medios WebRTC. Este va directo al navegador: si está bloqueado, el vídeo en directo no se reproducirá |
8013/tcp | Administración de usuarios (mt_admin) |
127.0.0.1:5432 | PostgreSQL, solo loopback |
127.0.0.1:15672 | Gestión de RabbitMQ, solo loopback |
127.0.0.1:8180 | Keycloak, solo loopback |
Añadir la primera cámara
No hay nada preconfigurado. En el primer arranque se crean automáticamente un volumen de almacenamiento por defecto, un enrutador multimedia por defecto y tres perfiles de grabación; el resto queda de su parte.
Abra la interfaz web y añada una cámara mediante descubrimiento ONVIF o introduciendo una URL RTSP. Para activar la detección: Admin → Analytics, añada una vigilancia para la cámara y el flujo y elija las clases. No hace falta armarla: armar controla la grabación por alarma, no si el sistema mira la imagen.
Detener
docker compose --env-file .env down
Las grabaciones, los recortes de detección y la base de datos viven en ./data en el servidor y
sobreviven a este comando. Añadir -v los borra.
Aceleración por hardware
La recompresión del archivo y la transcodificación en directo de HEVC a H.264 se ejecutan sobre la
GPU integrada cuando la hay. Ninguna la exige —la ruta por CPU funciona—, pero la transcodificación
en directo midió un 43% menos de CPU por flujo sobre VA-API, y ese es el mayor coste sostenido del
grabador. Hace falta pasar /dev/dri al contenedor; el repositorio de despliegue incluye
docker-compose.gpu.yml.example justo para eso.
Windows
El instalador para Windows no necesita Docker y ejecuta los servicios como servicios nativos de Windows. Admite Windows 10 1809 / Server 2019 o posterior, x64. Ejecútelo como administrador: el instalador instala los entornos de ejecución de VC++, .NET y ASP.NET Core que necesita. El MSI es para Group Policy o Intune en máquinas que ya tienen esos entornos.
El primer acceso es admin / admin; los usuarios se añaden en http://<esta máquina>:8013. La
base de datos, las grabaciones y la configuración viven en C:\ProgramData\TreeAlarm\VMS y
sobreviven a actualizaciones y desinstalaciones. La analítica no forma parte de la compilación para
Windows; si la necesita, use el despliegue con Docker. Las notas de la versión dicen qué más deja
fuera la compilación para Windows.
Instalador para Windows y notas de la versión →
Licencias y código fuente
El VMS está bajo MIT; su código, sus issues y las propuestas están en ta_vms. El trabajador de analítica es video_a, AGPL-3.0, porque los detectores YOLO26 incluidos son AGPL-3.0; el detector de rostros (OMZ face-detection-0205) es Apache-2.0. Las imágenes de Docker incluyen software de terceros bajo sus propias licencias, entre ellas FFmpeg con codificadores GPL.
Código fuente y herramientas
- ta_vms — código del VMS (MIT)
- video_a — trabajador de analítica (AGPL-3.0)
- OnvifSim — simulador de cámaras ONVIF para probar sin hardware
- OnvifLib — biblioteca cliente ONVIF que usan los servicios
- roi_transcode — biblioteca de codificación de vídeo por hardware
📩 ¿Atascado? Contacte con nosotros