/tmp
issue is discussed here: https://www.arednmesh.org/content/pi-meshchat-error-sending-messageThis is an old revision of the document!
Table of Contents
Mesh Chat
Using Mesh Chat is easy: simply click on a Mesh Chat service and enter your callsign.
At the moment, we have four Mesh Chat instances that sync to each other:
Hosting a Mesh Chat Instance
Mesh Chat can be installed directly on the hAP, but it's not recommended because it uses resources and it offers very little storage for files:
In contrast, a server install (coming up next) frees up resources and offers more space:
Mesh Chat on a Linux Server
Before we get started with the details, let's have a look at the big picture first. There's essentially 3 different “names” that we'll have to keep track of:
- The AREDN Node name configured in the Basic Setup page. Mine in is
VA7FI-HAP-1
. Yours will be different. - The Hostname of the linux computer running the service. Mine is
VA7FI-Linux
. Yours will be different. - The Service name. Here we use
MIMeshChat
. Use the same if you want your instance to sync with that one.
Here's where that information shows up on the Node Status
page once it's all done and ready:
In what follows, it'll be important to keep track of where to enter this information so it's configured properly.
Fresh LinuxMint Install
- Install LinuxMint Xfce on a cheap laptop.
- Change the Linux hostname. I used
VA7FI-Linux
:sudo hostnamectl set-hostname VA7FI-Linux
Installing Mesh Chat
Following the instructions on Trevorsbench:
- Install dependencies:
sudo aptitude install curl apache2
- Download and install Mesh Chat:
wget https://s3.amazonaws.com/aredn/meshchat_1.02_all.deb sudo dpkg -i meshchat_1.02_all.deb
- Edit configuration file:
sudo pico /usr/lib/cgi-bin/meshchatconfig.pm
and edit the last two lines so that the zone matches the other Mesh Chat instances, and the node is the name of your AREDN node. In my case:
our $pi_zone = 'MIMeshChat'; our $local_meshchat_node = 'VA7FI-HAP-1';
On LinuxMint there's an issue that needs to be fixed before continuing. Essentially, the current setup uses files in the /tmp
folder, which the Apache server is not allowed to edit. So the solution was to create that folder somewhere else and set the permissions properly.1)
- Create these folders:
sudo mkdir /var/www/html/meshchat/tmp/ sudo mkdir /var/www/html/meshchat/tmp/meshchat/
- And change the ownership and permissions:
sudo chown www-data:www-data -R /var/www/html/meshchat/tmp/ sudo chmod 770 -R /var/www/html/meshchat/tmp/
- Edit the config file:
sudo pico /usr/lib/cgi-bin/meshchatconfig.pm
- And replace every instance of
/tmp/
by/var/www/html/meshchat/tmp/
(line 2, and 18)
- Restart services:
sudo systemctl daemon-reload sudo /etc/init.d/apache2 restart sudo /etc/init.d/meshchatsync restart
Tests
At this point, you should be able to run Mesh Chat from the computer where it's installed, but it won't talk to any other nodes yet: http://localhost/meshchat/
AREDN Configuration
Install the meshchat-api package:
- Download it from here
- Click on
Upload Package
Browse... from theAdminstration
page to install it.
From the Port Forwarding, DHCP, ans Services
page:
- Setup a DHCP Address Reservation for the Linux computer
- Advertise the service
- Forward WAN port 8080 to LAN port 80
To synchronize Mesh Chat instances together, simply change the name to MIMeshChat