Mattermost es un sistema de mensajería de código abierto escrito en los lenguajes de programación Golang y React. Es una alternativa de slack, podemos crear nuestro propio servicio de mensajería como slack o hipchat con él. Mattermost lleva la comunicación de su equipo a un solo lugar y la hace accesible desde cualquier lugar. Puede acceder desde su escritorio, dispositivo Android y iPhone.
En este tutorial, lo guiaré para que cree su propio servidor Mattermost que use PostgreSQL como sistema de base de datos y Nginx como proxy inverso para Mattermost. Usaré ubuntu 16.04 como sistema operativo.
Requisito previo
- Ubuntu 16.04 - 64 bits
- Privilegios de raíz
Paso 1:instalar y configurar la base de datos PostgreSQL
Mattermost admite bases de datos MySQL y PostgreSQL. Usaremos PostgreSQL como base de datos principal para este tutorial. Conéctese a su servidor y actualice el repositorio.
Conéctese a su servidor por SSH o inicie sesión en la terminal y actualice el repositorio de Ubuntu.
ssh [email protected]
sudo apt-get update
Como usuario raíz, instale PostgreSQL con este comando apt.
sudo apt-get install postgresql postgresql-contrib
Cuando finalice la instalación, inicie sesión en el usuario de postgres y escriba el comando 'psql ' para iniciar sesión en el shell de postgresql.
su - postgres
psql
Cambie la contraseña de usuario de postgres con el siguiente comando:
\password postgres
Ingrese la nueva contraseña:
A continuación, tenemos que configurar una nueva base de datos y un nuevo usuario para la instalación de Mattermost. Crearé una nueva base de datos llamada 'mattermostdb ' y el usuario 'asuntousuario ' con contraseña 'importantecontraseña '. Elija una contraseña segura para su instalación.
Cree la nueva base de datos y el usuario con la consulta de PostgreSQL a continuación:
CREAR BASE DE DATOS materiamostdb;
CREAR USUARIO materiausuario CON CONTRASEÑA 'materiacontraseña';
Otorgar 'asuntousuario ' privilegios a la base de datos 'mattermostdb ' y salir.
CONCEDER TODOS LOS PRIVILEGIOS EN LA BASE DE DATOS mattermostdb A matteruser;
\q
Paso 2:instalar y configurar Mattermost
Instalaremos y configuraremos Mattermost como usuario normal de Linux, no como usuario raíz. Ejecutaremos Mattermost como usuario 'matter', por lo que debemos crear un nuevo usuario de Linux llamado 'matter' en el servidor.
Crear nuevo 'asunto ' usuario y contraseña.
useradd -m -s /bin/bash asunto
contraseña asunto
Usuario 'asunto' creado, ahora inicie sesión con el usuario y descargue la última versión de Mattermost con wget.
su - materia
wget https://releases.mattermost.com/3.4.0/mattermost-3.4.0-linux-amd64.tar.gz
Extraiga el archivo Mattermost y verá el nuevo directorio 'mattermost', ingrese ese directorio con el comando cd.
tar -xzvf materia más importante-3.4.0-linux-amd64.tar.gz
cd materia más importante/
A continuación, cree un nuevo directorio de 'datos' para almacenar los archivos de usuario, luego edite el archivo de configuración más importante 'config/config.json ' con vim.
datos mkdir/
vim config/config.json
Ejecutaremos Mattermost detrás de un proxy inverso Nginx, por lo que es mejor configurar Mattermost para escuchar en la dirección IP local. En la 'Configuración del servicio ', agregue la dirección IP del host local a la configuración en la línea 4.
"Dirección de escucha":"127.0.0.1:8065",
Ahora ve a 'SqlSettings ' en la línea 48. Cambie el 'DriverName ' y 'Fuente de datos ' configuración para usar la base de datos PostgreSQL con la siguiente configuración:
"DriverName":"postgres",
"DataSource":"postgres://matteruser:[email protected]:5432/mattermostdb?sslmode=disable&connect_timeout=10",
usuarioimportante =usuario postgresql.
contraseña importante =la contraseña.
mattermostdb =la base de datos.
Guardar y salir.
Cuando haya terminado, vaya al directorio bin y ejecute lo más importante.
cd bin/
./plataforma
Verá que ahora Mattermost se está ejecutando en la IP localhost con el puerto 8065.
Presione Ctrl + c para salir.
Paso 3:configurar el servicio Mattermost Systemd
Vaya al directorio del sistema systemd y cree un nuevo archivo de servicio de Mattermost.
cd /etc/systemd/system/
vim mattermost.servicio
Pegue la configuración a continuación:
[Unidad]
Description=Mattermost es una alternativa de Slack autohospedada y de código abierto
After=syslog.target network.target
[Servicio]
Tipo=simple
Usuario=materia
Grupo=materia
ExecStart=/home/matter/mattermost/bin/platform
PrivateTmp=yes
WorkingDirectory=/home/ matter/mattermost
Restart=always
RestartSec=30
LimitNOFILE=49152
[Instalar]
WantedBy=multi-user.target
Guardar y salir.
Vuelva a cargar el demonio systemd e inicie el servicio Mattermost que creamos anteriormente.
systemctl daemon-reload
systemctl inicia lo más importante
Asegúrate de que no haya ningún error. Verifique que el servicio Mattermost se esté ejecutando.
netstat -plntu
el estado systemctl es lo más importante
Paso 4:instalar y configurar Nginx
En este paso, instalaremos Nginx y configuraremos Nginx como proxy inverso para Mattermost. Asignaremos el puerto más importante 8056 al puerto HTTP y HTTPS.
Instale Nginx desde el repositorio de Ubuntu con este comando apt.
sudo apt-get install nginx
Ahora vaya al directorio de configuración de Nginx y cree el subdirectorio SSL.
cd /etc/nginx/
mkdir ssl/; cd ssl/
Genere un nuevo archivo de certificado SSL autofirmado con OpenSSL y cambie los permisos de la clave privada.
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/mattermost.crt -keyout /etc/nginx/ssl/mattermost.key
chmod 400 mattermost.key
Cree un nuevo archivo de host virtual para Mattermost en los 'sitios disponibles ' directorio.
cd /etc/nginx/sites-disponible/
vim importa más
Pegue la configuración del host virtual a continuación:
servidor {
escucha 80;
nombre_servidor materiamás.midominio.com;
retorno 301 https://$nombre_servidor$solicitud_uri;
}
servidor {
escucha 443 ssl;
nombre_servidor mattermost.mydomain.com;
ssl activado;
ssl_certificate /etc/nginx/ssl/mattermost.crt;
ssl_certificate_key /etc/nginx/ssl/mattermost.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256 +EECDH:AES256+EDH';
ssl_prefer_server_ciphers activado;
ssl_session_cache shared:SSL:10m;
ubicación / {
gzip desactivado;
proxy_set_header X -Reenviado-SSL activado;
client_max_body_size 50M;
actualización de proxy_set_header $http_upgrade;
conexión "upgrade" de proxy_set_header;
host de proxy_set_header $http_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 $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://127.0.0.1:8065;
}
>/pre>Cambie el nombre de dominio a su propio dominio, guarde y salga.
Active el host virtual creando un enlace simbólico al archivo más importante en 'sitios habilitados ' directorio.
ln -s /etc/nginx/sites-disponible/mattermost /etc/nginx/sites-enabled/Pruebe la configuración de Nginx y asegúrese de que no haya ningún error, y reinicie nginx.
nginx -t
systemctl reiniciar nginx
Paso 5 - Prueba
Abra su navegador web y visite el nombre de dominio de mattermost, en mi caso:mattermost.mydomain.com.
Será redirigido a la conexión HTTPS automáticamente.
Cree una nueva cuenta primero, haga clic en 'Crear cuenta '.
Luego puede ver el enlace para crear nuevos equipos o para acceder a la consola de administración/sistema.
Haga clic en 'Ir a la consola del sistema ' y verá el panel de la consola del sistema a continuación:
Haga clic en 'Crear nuevo equipo ', escriba el nombre de su equipo y haga clic en 'Siguiente '. Luego configure la URL del equipo y haga clic en 'Finalizar botón '.
Finalmente, verá el panel de control del equipo.
Chat de equipo de Mattermost.
Mattermost con el servidor web PostgreSQL y Nginx en Ubuntu 16.04 se instaló correctamente.