CursedPotato69's picture

Hello all. I was just wondering if there are any plans to make a turnkey app pre-packaged with matrix synapse? In case you don't know it is a open source Instant Messaging server. If there are no plans for this, is there someone i can contact to ask if they would make it an official app?

Jeremy Davis's picture

I have been keeping half an eye on Matrix, so yes I do hope to one day create a Matrix chat server. However, we're a small team with a lot going on, so unfortunately, sometimes hopes such as adding a specific server sometimes go years being unfulfilled...

So bottom line is yes, I would love to see one, but there is no timeframe (work hasn't even started yet...). So I have no idea if or when that might happen.

If you have any bash knowledge (perhaps a little python too?) then you could perhaps have a go at it yourself? I'm more than happy to coach you as best I can!? A quick google showed up the Synapse installation page and it looks like they have pre-built Debian packages too. TBH, I don't know tons about it and the devil is always in the detail, but if you are keen to learn, then I'm more than happy to coach! :)

badco's picture

Hi Jeremy,

I would actually be really keen to contribute some Homelab related TKLs if you would be willing to guide me.

The catch is, i have only a very little bash experience and even less python. But I have been meaning to learn, just haven't had the use case.

What would be the best way to contact you?

Jeremy Davis's picture

If you keen, then I'm more than happy to coach!

In some ways, bash isn't really a proper programming language. It's really just a bunch of commands that you put together in a file and they are run one after another. In a way, that's the beauty of it though. You can test it in a terminal really easily.

Python on the other hand is more of a proper programming language, but the main thing we use it for in appliances is the "inithooks" (aka firstboot scripts) and Confconsole plugins. And often you'll be able to simply rob an existing one from another appliance and just update it to be relevant to the appliance you are working on.

FWIW, I have really only got comfortable with Python over the last few years. I maintained appliances for years without really having much idea about it.

You'll also need to get a basic understanding of git. It's preinstalled in all of our appliances so unless you want to do development somewhere other than directly within TKLDev, you don't need to install it. You'll really only need to know a few basic commands, so don't worry about that too much now. We also use GitHub for public source code management, so if you don't already have an account, please create one (it's free).

As for TKLDev and building appliances, there is a lot of info about already and I have a habit of being overly verbose, so here's my suggestion:

Get yourself a TKLDev (I recommend running it as a local VM, it won't work in a container). There is a fair bit of documentation, although the (very dated, but still relevant) blog announcement is probably as good a place to start as any. I suggest that you have a scan through all that for starters. It's a lot, and some of it is a little out of date. But this might actually be a really useful opportunity to improve the docs?! Regardless, I don't expect you to read it all, especially not to start with. TBH, I don't even expect you to scan through it all, but the more you read (hopefully), the better your basic understanding will.

As you're doing that, please ask any questions and/or highlight anything that doesn't make sense, or doesn't work as expected.

Which brings me to your last question, how to get in touch with me? Ideally, the more discussion we can have publicly the better, as then it acts as defacto documentation that will aid others in the future. Having said that, I get that the tighter the feedback loop, the quicker and easier it is to get stuff done. So for public stuff, I post here n the forums most days, so will generally respond within one work day. I'm also pretty active on GitHub and you can ping me specifically using my handle '@JedMeister'. If you post that anywhere on GitHub, I will get a notification. My email is jeremy AT but I usually only check that on work days and can sometimes be a bit slow responding. I have other email addresses and use a number of messaging platforms such as Signal, Telegram and Google hangouts (I'll send you a quick email with my contact details for those).

So my suggestions is that where possible, lets use public channels, but we can use direct messages where need be. Once you get started on building a new appliance, then we perhaps the issue tracker of the GitHub repository you set up to flesh out some details? While you are looking through the docs, if you find any problems or stuff that doesn't make sense etc, you could open an issue on our consolidated issue tracker.

Hopefully that's enough to get you going?!

Add new comment