So I want to setup a messaging server in my home that works like Telegram or Whatsapp - it should use the local network as we plan on moving around a lot of photos and files between our devices for some projects
What should I use? XMPP? Or Matrix? Or is there something else that’s ideal for local networks?
Thanks!
It’s not a messenger, but for locally frequently transferring or syncing a lot of data, I can recommend syncthing. You can use it to configure shared directories, syncthing will use the local network as available (or you can force it to) to transfer files across the devices. We use it for keeping some media, notes, password databases and documents in sync over a bunch of devices. :)
deleted by creator
Two ideas:
-
xmpp works, but the domain needs to resolve correctly. I’d just use a free domain that you point at the server LAN ip, plus an acme client that can do a dns challenge. Prosody is pretty bulletproof and very lightweight.
-
deltachat + email. Set up a little IMAP server for the lan and use Delta chat to create a messaging over it. Or just use an email client.
-
I think you need to think about what you want very clearly. For example, transferring files and other data between devices screams Nextcloud. My wife and I have a local Nextcloud instance on our media center that we use to sync calendars, address books, tasks, notes, and files in general. Way useful. Some people said syncthing. My big reservation is, can you find easy to use apps (I have not though maybe they exist). The big advantage of syncthing it can do NAT traversal and you do not need any server infrastructure.
On the other hand you said you want chat. So then yes, chat sounds interesting instead, not what we do. I will leave the others to talk about chat because there are so many options and I am not a big chat guy. By the way for chat, Signal does have some sort of group chat option. That is really my only input.
I would think about where your users are. If your stuff is on your LAN, then this means a few things. First you server will not have a globally routeable IP address or domain, so every device has to be on the LAN. If for example your parents do not live with you this is kind of out. Also people talked about domain names. Domain names are not the problem. You can always put a DNS server on your LAN (often your boundary router can do this), and add your server and domain to it. What is a problem is TLS Certificates. Generally android devices have problems with non-standard CAs and probably self-signed certs. So one has to think how they are going to do that. Other option is to have a VPS at a place like Linode for example. Then your server is on the internet, but then you have to maintain it and in particular keep it patched and secured which can be challenging.
Anyway, some things I did not see others say.
Thanks for sharing your thoughts. Yeah, I plan for this to be a LAN thing only, we’re all currently living in the same house, and only need it when we’re working indoors here, so it shouldn’t be an issue.
I’m currently setting up nextcloud, as it’s file transfer is impeccable, and it has a somewhat-functional chat feature. I have been having a little problem setting up the domain name + certificate - I would love to configure this to an internal IP but it seems that’s not allowed for some reason - nextcloud documentation is suggesting a reverse proxy for setting up a local instance which seems like … double the work? I’ll try that if nothing else works out, and I’m gonna try it with a self-signed certificate for now, if that fails I’m not sure
I read your workflow. My suggestion is don’t use a messenger, use syncthing or a similar app on a local shared storage. it’s way better. you wouldn’t get duplicate files, it does its thing automatically, you can even have versioned files. and it’s not THAT hard that your parents won’t learn. pretty easy and straightforward.
I’ve set up an XMPP server a few years ago. It worked beautifully!
XMPP sounds great, but I heard it has difficulty with file transfer. How was your experience with it?
xmpp has a number of file transfer modes. http upload has been smooth sailing for me. It uploads the file to the server and holds it according to a retention period you configure. Shows up in the client you sent it to.
Hmm, that actually sounds manageable, as I don’t plan on storing the files on server for a long time. Only issue is the notifications part I think, not sure how to configure that . I’ll check it out
Notification works like any other message. http upload is just the method the client uses - it’s more or less transparent to the clients involved. It’s still sending and receiving as you would expect from a messenger.