Configuración
Dónde guarda Antimatter sus ajustes, las tres formas de modificarlos (Consola de sistema, variables de entorno, amctl) y dónde se almacenan los registros.
Dónde se encuentran los ajustes
Cada ajuste del servidor tiene un nombre compuesto por una sección y una clave, como ServiceSettings.SiteURL o EmailSettings.SMTPServer. Juntos forman una única configuración, almacenada en uno de dos lugares:
- En la base de datos. El archivo de composición del sitio establece
AM_CONFIGen la URL de conexión de PostgreSQL, por lo que la configuración es una fila en la base de datos y el contenedor no conserva nada en el disco. Varios servidores que comparten una base de datos también comparten su configuración. - En un archivo. Sin
AM_CONFIG, el servidor leeconfig/config.jsonjunto a su directoriobin/(/antimatter/config/config.jsonen la imagen de Docker). El archivo de la versión y los archivos de compose de producción de antimatter-docker funcionan así, al igual que los paquetes .deb y .rpm, cuyo archivo es/etc/antimatter/config/config.json. Mantén este archivo legible solo por el usuario del servidor: contiene contraseñas y claves.
AM_CONFIG (o la opción --config del comando antimatter) acepta una ruta de archivo o una URL postgres://. Los ajustes que se omitan tomarán su valor predeterminado.
Para mover una configuración existente de un archivo a la base de datos, ejecute esto en el servidor y luego inicie el servidor con AM_CONFIG establecido en la misma URL:
amctl --local config migrate /opt/antimatter/config/config.json \
"postgres://antimatter:PASSWORD@localhost:5432/antimatter?sslmode=disable&connect_timeout=10"
Variables de entorno
Cualquier ajuste también puede proporcionarse como variable de entorno. Las variables tienen prioridad sobre la configuración almacenada, lo que las hace adecuadas para lo que pertenece a la implementación: la base de datos, la URL del sitio, el almacenamiento de archivos, los puertos.
Regla de nomenclatura
Escriba AM_, luego la sección, luego la clave, en mayúsculas y separadas por guiones bajos. Las palabras dentro de un nombre de sección o clave no se separan:
| Ajuste | Variable |
|---|---|
ServiceSettings.SiteURL | AM_SERVICESETTINGS_SITEURL |
SqlSettings.DataSource | AM_SQLSETTINGS_DATASOURCE |
EmailSettings.SMTPServer | AM_EMAILSETTINGS_SMTPSERVER |
PrivacySettings.EnableUserBlocking | AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING |
- Los ajustes booleanos toman
trueofalse; los números son números planos. - Los ajustes de lista toman sus valores separados por espacios, por ejemplo
AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP". - Los ajustes que son objetos toman JSON. La única variable de este tipo para aplicaciones es
AM_PLUGINSETTINGS_PLUGINS, y reemplaza los ajustes de todas las aplicaciones a la vez: configure los ajustes de las aplicaciones en la Consola de sistema o conamctlen su lugar (ver abajo). - Las configuraciones antiguas de Mattermost usan el prefijo
MM_, por ejemploMM_SQLSETTINGS_DATASOURCE. Sigue funcionando como un alias de compatibilidad. Cuando se definen ambos, la variableAM_tiene prioridad.
Una configuración definida mediante una variable queda bloqueada en la Consola de sistema, con la nota «Esta configuración se ha establecido mediante una variable de entorno. No se puede cambiar desde la Consola de sistema». No se escribe en la configuración almacenada: si se elimina la variable, vuelve a aplicarse el valor almacenado.
Con Docker Compose
Añade las variables bajo environment: del servicio antimatter, o en un compose.override.yaml junto a compose.yaml (Compose lo lee automáticamente y se conserva tras las actualizaciones del archivo descargado):
services:
antimatter:
environment:
AM_EMAILSETTINGS_SMTPSERVER: smtp.example.com
AM_EMAILSETTINGS_SMTPPORT: "587"
AM_LOGSETTINGS_CONSOLELEVEL: INFO
Aplica los cambios con docker compose up -d, que recrea el contenedor.
Variables leídas por las aplicaciones
Algunas variables no son ajustes y no tienen un campo en la Consola de sistema: AM_CONFIG (dónde está la configuración) y AM_AI_ENCRYPTION_KEY y AM_AI_ENCRYPTION_PREVIOUS_KEYS, la clave que cifra las claves de API de las conexiones de modelos (ver IA).
Algunas aplicaciones leen sus propias variables, definidas en el servicio antimatter: la app de Llamadas lee AM_CALLS_* (ver Llamadas y voz), y la app de GIFs lee AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY y AM_GIFS_UPLOAD_KEY (ver Aplicaciones integradas).
La Consola de sistema
La Consola de sistema es el área de administración de la aplicación web, para administradores del sistema. Para abrirla, haz clic en tu foto en la parte superior de la barra lateral de la aplicación y elige Consola de sistema, o ve a https://chat.example.com/admin_console. Su barra lateral tiene una caja Buscar ajustes que busca en todas las páginas.

Sus secciones son:
- Informes: estadísticas y registros del servidor.
- Gestión de usuarios: usuarios, grupos, comunidades (listadas como Equipos), canales, permisos y administración delegada.
- Atributos del sistema: atributos de perfil personalizados y control de acceso basado en atributos.
- Entorno: servidor web, base de datos, almacenamiento de archivos, proxy de imágenes, SMTP, notificaciones push, limitación de tasa, registros, duraciones de sesión y monitorización de rendimiento.
- Configuración del sitio: marca, usuarios y equipos, notificaciones, publicaciones, intercambio de archivos y otros comportamientos a nivel de servidor.
- Autenticación: registro, inicio de sesión con correo y contraseña, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect y acceso de invitados.
- IA: conexiones de modelos y las funciones de IA integradas (reescritura, resúmenes, traducción automática, texto a voz). Ver IA.
- Plugins: gestión de aplicaciones y configuración de cada aplicación instalada.
- Integraciones: webhooks, comandos con barra diagonal, cuentas de bot, GIFs, texto a voz, CORS.
- Conformidad: retención de datos, exportación y supervisión de conformidad, registro de auditoría y términos de servicio personalizados.
- Experimental: funciones que pueden cambiar.
En esta guía, cada ajuste se indica mediante su ruta en la Consola de sistema, seguido de su etiqueta y, a continuación, de su clave de configuración. Por ejemplo: Consola de sistema › Configuración del Sitio › Usuarios y Equipos › Activar ignorar, bloquear y solicitudes de mensaje (PrivacySettings.EnableUserBlocking).
La mayoría de los cambios se aplican en cuanto haces clic en Guardar. Algunos (la dirección de escucha, ciertas configuraciones de base de datos y de caché) requieren un reinicio, y la página lo indica.
Gremio o espacio de trabajo
Cada comunidad tiene un tipo, que establece algunos de sus valores predeterminados:
- Gremio, para una comunidad pública o de afición: las llamadas están desactivadas en sus canales (la gente habla en canales de voz), y solo sus administradores, y los roles que gestionan canales, archivan canales.
- Espacio de trabajo, para una empresa u organización: las llamadas están activadas en sus canales, y los administradores de un canal (quien lo creó, y a quienes hicieron administradores) también lo archivan.
Consola de sistema › Configuración del Sitio › Usuarios y Equipos › Tipo de nuevas comunidades (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) es el tipo de las comunidades creadas a partir de ese momento: Gremio (el predeterminado) o Espacio de trabajo; la configuración sigue almacenando y leyendo los valores antiguos community y workplace. Un preajuste de diseño elegido al crear una comunidad establece su propio tipo. Los administradores de cada comunidad pueden cambiar su tipo más tarde, en Configuración del equipo › General. Los nuevos gremios ponen a todos en todos los canales (TeamSettings.AllChannelsMembershipForNewTeams) es el predeterminado solo para nuevos gremios: los espacios de trabajo nunca comienzan así (consulte Todos en todos los canales).
Mensajes que se eliminan al leerlos
Las personas pueden enviar mensajes que se eliminan un tiempo después de que cada lector los abra (consulte Mensajes que se eliminan al leerse). Las configuraciones están en Consola de sistema › Configuración del Sitio › Publicaciones, bajo Mensajes que se eliminan al leerse:
| Ajuste | Clave y variable | Predeterminado |
|---|---|---|
| Activar mensajes que se eliminan al leerse | ServiceSettings.EnableBurnOnRead, AM_SERVICESETTINGS_ENABLEBURNONREAD | activado |
| Duración de los mensajes que se eliminan al leerse: cuánto dura un mensaje una vez abierto, cuando su remitente no eligió ninguna duración | ServiceSettings.BurnOnReadDurationSeconds, AM_SERVICESETTINGS_BURNONREADDURATIONSECONDS | 600 (10 minutos) |
| Duración máxima que pueden elegir los remitentes: de 1 hora a 7 días; una elección más larga se acorta a este valor | ServiceSettings.BurnOnReadMaximumDurationSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMDURATIONSECONDS | 86400 (1 día) |
| Tiempo de vida máximo para mensajes de lectura con autodestrucción: un mensaje se elimina este tiempo después de haber sido enviado, incluso si no todos lo leyeron | ServiceSettings.BurnOnReadMaximumTimeToLiveSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMTIMETOLIVESECONDS | 604800 (7 días) |
La duración máxima se vuelve a comprobar cuando se lee un mensaje, por lo que reducirla también acorta los mensajes ya enviados.
La herramienta de línea de comandos amctl
amctl gestiona un servidor desde la línea de comandos: usuarios, comunidades, canales, aplicaciones, configuración, trabajos y más. Se comunica con el servidor de una de dos maneras.
Modo local, en el servidor
El modo local permite que amctl se comunique con el servidor a través de un socket Unix, sin necesidad de iniciar sesión. Está activado en la imagen de Docker y en los paquetes .deb y .rpm. En un servidor instalado desde un archivo, actívelo con ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true). El socket es /var/tmp/antimatter_local.socket por defecto (ServiceSettings.LocalModeSocketLocation).
# with Docker Compose
docker compose exec antimatter amctl --local system status
# with a release archive
sudo -u antimatter /opt/antimatter/bin/amctl --local system status
# with the .deb or .rpm package
sudo -u antimatter amctl --local system status
docker compose exec en el host, tiene permisos completos de administrador del sistema.Remoto, con una cuenta
Desde cualquier máquina, inicia sesión con una cuenta de administrador del sistema (o un token de acceso personal) y luego ejecuta comandos contra ese servidor:
amctl auth login https://chat.example.com --name prod --username admin
amctl system status
Comandos de configuración
| Comando | Qué hace |
|---|---|
amctl config get ServiceSettings.SiteURL | Imprime una configuración. |
amctl config set TeamSettings.EnableOpenServer false | Cambie una configuración. Las listas de configuraciones aceptan un valor o varios. |
amctl config patch settings.json | Fusiona un archivo JSON de configuraciones en la configuración. |
amctl config show | Imprime toda la configuración como JSON. |
amctl config edit | Abre la configuración en tu editor ($EDITOR). |
amctl config reset | Restablece las configuraciones a sus valores predeterminados. |
amctl config reload | Recarga la configuración desde donde se almacena, después de un cambio realizado fuera del servidor. |
Las configuraciones de las aplicaciones se encuentran bajo PluginSettings.Plugins.<app id>, con claves en minúsculas. Por ejemplo, para establecer la URL de servicio y la clave de la aplicación GIFs desde el host de Docker:
docker compose exec -T antimatter amctl --local config patch /dev/stdin <<'EOF'
{"PluginSettings": {"Plugins": {"com.antimatterchat.gifs": {
"serviceurl": "http://gifs:8080/v2",
"apikey": "the GIFS_API_KEY of your .env"
}}}}
EOF
Otros comandos útiles: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket y amctl logs. Ejecuta amctl help <command> para ver las opciones de cada uno.
Registros
El servidor escribe sus registros en dos ubicaciones, cada una con su propio nivel (DEBUG, INFO, WARN o ERROR), configurado en Consola de sistema › Entorno › Registros:
| Destino | Configuración | Valores predeterminados |
|---|---|---|
| La consola (salida estándar) | Imprimir registros en la consola (LogSettings.EnableConsole), Nivel de log de consola (LogSettings.ConsoleLevel), Salida de los registros por consola como JSON (LogSettings.ConsoleJson) | activado, DEBUG, JSON |
Un archivo, antimatter.log | Escribir registros en un archivo (LogSettings.EnableFile), Nivel registro (LogSettings.FileLevel), Directorio del Archivo de Registro (LogSettings.FileLocation) | activado, INFO, el directorio logs/ junto a bin/ |
Los archivos de registro se rotan al alcanzar 100 MB y los anteriores se comprimen.
El archivo compose del sitio desactiva el registro en archivo (AM_LOGSETTINGS_ENABLEFILE=false), por lo que los registros solo están en la salida del contenedor:
docker compose logs -f antimatter
docker compose logs --since 1h antimatter | grep -i error
El nivel de la consola es DEBUG por defecto, lo cual es muy detallado. En un servidor con mucho tráfico, establezca AM_LOGSETTINGS_CONSOLELEVEL=INFO. El config.json del archivo de la versión y de los paquetes ya lo establece en INFO. Con un archivo de la versión bajo systemd, la salida de la consola va al registro (journalctl -u antimatter) y el archivo a /opt/antimatter/logs/antimatter.log. Los paquetes desactivan el registro en archivo, por lo que sus registros solo están en el registro del sistema.
Los archivos de registro y de auditoría deben permanecer dentro de la raíz de registro: AM_LOG_PATH (la variable anterior MM_LOG_PATH sigue funcionando) si está configurada; de lo contrario, en la carpeta logs. Esta restricción se aplica de forma predeterminada: un Directorio del Archivo de Registro, un destino de registro avanzado o una ruta de registro de auditoría fuera de la raíz impiden que el servidor se inicie, y se rechaza al guardar la configuración. Desactive la aplicación de esta restricción con AM_FEATUREFLAGS_ENFORCELOGPATHROOT=false. Si AM_LOG_PATH está configurada y Directorio del Archivo de Registro está vacío, los registros se guardan en AM_LOG_PATH.
Cuando el registro en archivos está activado, los administradores del sistema también pueden leer el registro en Consola de sistema › Informes › Servidor de registros: insignias de nivel con código de colores, filtros rápidos por nivel, seguimiento en tiempo real y preajustes de rango de tiempo desde 5 minutos hasta 24 horas, o mediante amctl logs.