Mattermost is a collaboration tool provides some of the following features:
Mattermost on ARM is not officially supported by the Mattermost team, but is made available by the github account SmartHoneyBee.
These instructions may work for other distros such as Ubuntu 20.04, Armbian, Debian, Devuan, etc., but they are tested on Ubuntu 22.04. Check the Linux kernel and architecture with the following command:
uname -a
which should give results like this:
Linux indiedroid 5.10.110+ #1 SMP PREEMPT Wed Apr 26 15:02:53 CEST 2023 aarch64 aarch64 aarch64 GNU/Linux
In this output, the 5.10.110
is the Linux kernel version, and aarch64
means this is an ARM64-based system.
Next, enter the following command:
lsb_release -a
This should output something like:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.2 LTS
Release: 22.04
Codename: jammy
This shows the particular flavor of Linux distribution that is running.
sudo apt update && sudo apt upgrade && sudo apt dist-upgrade
sudo apt install -y mariadb-server
sudo mysql -u root -p
When it asks for a password, just press ENTER.
MariaDB [(none)]>
prompt to set up the database user (change mmuser-password
to a unique password for this installation):create user 'mmuser'@'localhost' identified by 'mmuser-password';
create database mattermost;
grant all privileges on mattermost.* to 'mmuser'@'localhost';
exit
Go to SmartHoneyBee and make a note of the filename that ends in -linux-arm64.tar.gz
wget https://github.com/SmartHoneybee/ubiquitous-memory/releases/download/v7.5.2/mattermost-v7.5.2-linux-arm64.tar.gz
Replace the two occurences of 7.5.2
with the current version from the link above.
tar -xvzf mattermost*.gz
/opt
directory:sudo mv mattermost /opt
sudo mkdir /opt/mattermost/data
The storage directory will contain all the files and images that are posted to Mattermost, so ensure the drive has sufficient free space.
sudo useradd --system --user-group mattermost
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost
sudo nano /opt/mattermost/config/config.json
Press CTRL
+w
and type postgres
Change postgres
on this line to mysql
On the following line starting with "DataSource":
change it to look like the following, replacing mmuser-password
with the password set in the create user
command above:
"mmuser:mmuser-password@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Press CTRL
+o
to save the file
Press CTRL
+x
to exit the editor
cd /opt/mattermost
Enter ip a
at the command line and look for the IP address.
If the computer is connected via Ethernet, this will commonly be in the eth0
section and may start with 192.168.
, 172.16.
, or 10.
.
Note the number up to the /
character.
sudo -u mattermost ./bin/mattermost
Open a browser on another computer on the network and enter the following in the address bar:
http://x.x.x.x:8065
(replace x.x.x.x
with the IP address noted in the step above)
In order for Mattermost to start automatically after the computer is booted, follow these instructions.
Enter the following three commands on the command line:
cd /lib/systemd/system
sudo touch mattermost.service
sudo nano mattermost.service
Enter the following into the editor:
[Unit]
Description=Mattermost
After=network.target
After=mariadb.service
Requires=mariadb.service
[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target
Press CTRL
+o
, ENTER to save, CTRL
+x
to exit.
sudo systemctl daemon-reload
sudo systemctl start mattermost.service
sudo systemctl status mattermost.service
The last line should state Started Mattermost
.
sudo reboot
Wait an appropriate length of time (should take less than 1 minute), and press the reload button on the browser.
ip a
again and verifysudo systemctl start mattermost.service
. If it works now, try entering sudo systemctl enable mattermost.service
from the command line again. Reboot and test again.