#S02E06

Coolify with András Bácsai

Mike talks about a self-hosted Netlify alternative, Coolify, with creator András

Notes:

Transcript

Mike: hello and welcome to Behind the Source, a podcast which gives you an introduction to web related processes or tools. My name is Mike Street and I'm a lead developer and CTO for Liquid Light. In each episode, I've joined by an expert who is passionate about their topic, and we introduce a subject for those who are unfamiliar or want to know more.

All the transcripts and previous episodes along with a series of interviews can be found on the website at www.behindthesource.co dot.

Today I am joined by András, who's gonna talk to me about Coolify good morning and welcome. Uh, before we get started, can you introduce yourself, tell us what you do, where you work, any side projects or anything else that you wanna wanna plug.

András: Yeah. Hey, uh, thanks for inviting me to this podcast. Uh, so my name is András Bácsai . I'm from Hungary. I'm. Software engineer slash indie maker. I've been in the industry for more than 12 years now. I started my work at as a system administrator and at ibm and went to software and infrastructure architect. Uh, role in the, in the in after, I dunno, five or six years. But, uh, yeah, during the pandemic I left my job and started to work as a free freelancer at at Code Sandbox. and yeah, after two years working there, I basically, yeah, I decided to quit my job again and focus on my own projects full time and do open source stuff.

Mike: Wow. So you are, you're a full-time open source developer.

András: Yeah. Yeah. And also doing part-time freelancing. Yeah.

Mike: That was gonna be my next question, if you don't mind me asking, how do you fund your open source work? Is it through like GitHub sponsors or, or is there sort of some other, uh, income stream?

András: Yeah. At the moment, uh, there is GitHub sponsors, uh, and Open Collective. And, uh, but some, some, , companies contacted me that they would like to sponsor me as well because they're using Coolify in, in their daily job. So that's, that's, that, that is another part. But, uh, unfortunately it's not, uh, sustainable yet.

So why I'm doing freelance job on

Mike: And when you say open source developer, is that mainly working on Coolify I suppose, Uh, disclaimer András is the creator of Coolify so some of the opinions today might be slightly biased, but, um, is that, is, is most of your sort of open source work focused on Coolify or have you got a couple of other projects that you work on?

András: Oh, well, at the moment I have another project and yeah, I have some others on the table, but basically I'm working on two projects. One is Coolify and the other one is, uh, a Google font alternative.

Mike: Oh, okay.

András: yeah, you could get the same api, uh, as google fonts and uh, use it on your own servers and so on.

And I'm also providing uh,, CDN version of the Google fonts basically without, uh, saving any logs or anything. So basically it's privacy focused.

Mike: Amazing. And is that, is that still in development or could someone go and use that

András: the, the hosted one is already out there for, for a year now. Yeah.

Mike: and what's that called?

András: it's called coolLabs Fonts

Mike: As I'm sure all the links to everything mentioned will be in the, in the show notes. So, uh, make sure you check that out. so before we start talking about Coolify uh, I like to ask my guests, what new tech process or project are you learning about? What's kind of new to you? What are you researching at the moment?

András: Oh, well, basically to, its part related to tech, but, uh, I really would like to get into making videos on YouTube and live streams. Uh, so that's what I'm currently learning about how should I start it and so on. And, uh, well for tech related. I didn't have time for to get into something new in the past months because yeah, I just, as I said, I quit my previous job, uh, three months ago now, so I'm doing it full time for three months now.

And yeah. Lots of that things are happening. Yeah.

Mike: I'm assuming you are, you're kind of learning how to be a, a , freelance, open source developer. Um, cuz I suspect that's a bit of a, a, a change in mindset as well.

András: Yeah. Basically yes, because you know that I need to be everything in, in this, in this company that I'm running because I, I, I, I need to be the marketer, the, the developer, the, I dunno.

Mike: How do you find, how do you, uh, divide up your time? Cuz I can imagine that. Certainly for me, if I was to do it, I would just wanna be the developer like 24 7, because it's, you know, it's exciting developing, isn't it? And it's like, Oh, I've gotta send out some tweets, or I've gotta go and do that. Do you have, do you compartmentalize your time or is it just, Oh, I don't really feel like developing today. Let me go and do some marketing.

András: Uh, my main problem is the same as yours because I would like to code all day, and all night, but, uh, I made a schedule that that will force me to okay, stop coding and do some marketing or do some, um, something else because otherwise I, I would burn out easily.

Mike: Yeah, no doubt. All right, so let's, actually get onto the main topic and talk about Coolify it. So for people who are unaware of it or might have just sort of seen a, a fleeting tweet or something, um, what is Coolify can you just give a, a quick overview, um, as to what it is please?

András: Yeah, sure. Well, it's an open source platform as a service slash c I C d alternative to basically Heroku or Netlify or similar cloud providers. It's kind of mix of each word and uh,, Well, basically you can host your applications, your databases, or other open source services with a few clicks, So basically I'm helping people to self host, uh, lots of things and also to provide, uh, developer process of, uh, basically you do not need to care about the infrastructure itself. You just need to code. And everything you code and push it to get, it'll be magical deployed to, to your own servers basically.

Mike: So it's uh, sort of, kind of similar to, to Netlify, but you do have to worry a little bit about your infrastructure cuz you're self-hosting it.

András: Mm. Basically, yes, you need to care about your, your own servers as well. But, uh, Coolify automates a lot of things behind the scenes. So basically take cares of, the lock files on your server, so basically it won't get full. Uh, it, it, it cleans up lots of stuffs which are not needed for you at the moment.

So it, it kind of tries to automate all the system administrator stuffs behind the scenes.

Mike: Currently it supports, Ubuntu. Is that correct?

András: Yes, because the installation script is only Ubuntu but basically Coolify is, is only, uh, requires a Docker engine, nothing else. So if, if you are operating system that you can run Docker engine, then you can run coolify

Mike: amazing. I, I wasn't, yeah, I wasn't aware of that.

András: And also supports, uh, other architectures like ARM and AMD 64.

So basically you can run it on, on, on a Raspberry P, let's say

Mike: And so with the site similar to sort of Netlify, you hook it up to your, your Git get account or your Git uh, repository. So does it support, um, GitHub, GitLab, self hosted GitLab, bit bucket, all of those

András: Yeah, it currently supports GitHub and GitLab, uh, hosted, or self-hosted version, or for GitHub, the enterprise version as well.

Uh, but I'm planning to have Bit Bucket and Giti for, for, for this.

Mike: And so you push to that, it detects that there's a new push. Um, and then it does all of the, I suppose, NPM install, NPM run, build, all of that, or, um, can it support more than just JavaScript? Can it do PHP rails, any other language?

András: Yeah, basically, uh, there are several languages that are support at the moment, like as you said, PHP or Python or Rust. And, uh, last week I outdid a docker compost support, which allows you to basically, you basically deploy a stack, not just an application, but a whole stack as, as a one entity inside Coolify

And the, basically it's, it's, uh, wired into the GI ecosystem. So all the web hoops are, are, in Coolify and basically they are, it, it's detecting if you push a commit or open a PR because, uh, Cofi is able to deploy, uh, preview deployments, which. Uh, you have PR based deployment of your application that you can basically, if someone opens a pr you can check the build, uh, application on your own server.

So it's, it's automatically deployed the proxies and everything else is set for you without any configuration.

Mike: Oh wow. Sounds amazing. And does it, um, support databases as well?

András: Yeah. Uh, there are five or six databases supported at the moment.

Mike: So these are kind of all the things that it can do. Uh, is there anything that it can't do that either you are, um, looking to add in the future or is there anything that you've said? No, that's not, Cofi is never gonna do that. Um, that's gonna be sort of someone else's problem kind of thing.

András: Yeah, I was thinking a lot about this question because I'm not sure what. I would not like to add to codify because I would like to support, so as, as for now, it supports local and remote servers. So you can basically deploy to remote servers as well, not just the one that you installed Coolify. And, uh, in the future, I, I would like to support, um, Kubernetes as well.

basically you would, You could de deploy all the resources I currently deployable to Kubernetes cluster, but I would like to support, uh, Serverless as well and, uh, and some kind of CMS databases that like I can Netlify does. And, um, yeah, basically I'm not sure what I would not like to, I, would like to have an all in one solution.

Oh, I know. It's, it's a, it's a dream solution, let's say, but, I really enjoy doing Coolify and making all, all the, all the new features that mostly requested by the users. And, uh, yeah, I, I, I'm not sure what it can do in the future.

Mike: So it is, it is just, it's, the dream is to, it can do everything and it's just time and resources that is, that's getting in the way. Um, so to rewind a little bit, you said that you could deploy to other servers that you haven't got. Coolify I installed on,

Would you mind just expanding on that a little bit?

András: Well, basically at the moment, Coolify uses Docker Engine for, for all deployments and basically Docker Engine has a feature that you can call the dock engineDocker Engineremotely. So basically Coolify can, uh, ask a remote server that is running a Docker Engine to deploy this application for me or deploy this database for me.

So basically you can manage. From one Coolify instance, basically unlimited number of servers, which has different deployments on it. So basically you could separate your, I dunno, staging server to a, to a, a server running in uk and uh, another server that is for pre-production that is running in, I dunno, Germany or something like that.

So basically you can separate all the Evironments separate servers and use Coolify as a dashboard basically, or a control plane.

Mike: And does it all kind of, um, call back to. To your Coolify instance. So you've got sort of stats on whether it's running or not, or is it kind of uh, once it's deployed, it's outta my hands kind of thing.

András: No, basically everything to Coolify knows everything about the remote servers, but uh, in all the things you deployed, Coolify could run without Coolify so basically, if you deploy something to a remote server

and, and uninstall Coolify or delete the Coolify, do servers. We'll be in your control, of course, but all the services that are running on it will be running without Coolify you just don't get the, all the features like the automatic Git commit, uh, deployments and so

Mike: And, so on the remote servers, it's just running a, a docker instance, is that correct?

András: Yes. Right.

Mike: Of with your application inside of it?

András: Yes.

Mike: Sorry, I'm just trying to, I'm still fairly new to Docker so I'm still trying to get my head around, uh, terminology and the way that it works, when I first came across Docker, it's just so alien to me cuz I'm sort very much a traditional web developer, you know, with a, with a, an apache server kind of thing. So, um, it's still, I was just playing with Docker this morning, actually. I'm, I'm hitting my head against the wall or something, so, um, it's just . Yeah. Writing, writing server infrastructure as code, um, is sort of still, it seems so magical to me.

So to be able to control servers that you're not even installed on, it was just mind blowing

so if, uh, someone listening to this or has seen some stuff really likes the look Coolify and wants to sort of get started, With it. Is there, um, where's the best place to go?

How do they get started? I'm assuming they, they need a server, or actually go back, you said if it runs Docker You can run Coolify so you could get it started locally.

So, um, where's the, what's the best way of getting started to get your hands on Coolify to sort of see what it does?

András: Uh, well, I have a demo server running that is, that everyone could use freely. Uh, that's where you can basically check out all the features and deploy everything what could be deployed on your own instance as well. But, as there are lots of traction on the demo server, let's say, sometimes it just crashes because there was a time when, uh, more than 500 databases are running on one server. And yeah, it, it is not, uh, unlimited. It does not have resources. So, but, uh, other than that, I would prefer to, to rent a server. It could be, uh, the cheapest one on any providers. And, uh, on the main site there is a small script that.

Configure and install everything that is required for. Cool. So you don't even need to install Docker or Docker engine or something like that. It just, you just execute the script and it'll magically configures anything. And, uh, from that, basically you can check out any features or anything you like. And also there is a documentation, which is a bit outdated, but I will improve that uh, but it, it domain features are there. In the past two, three weeks, I audited some features that are not well documented yet. and other than that, we have a Discord server or more than 500, 600, I dunno, people on it. And so I really like the community behind Gify because they, they, they help each other when I'm not working or sleeping, basically. and, uh, these are the main stuff. So, and also you can contact me anytime on all the. All the platforms that I'm on, so you can find it in, in the documentation that, how can you contact me directly?

Mike: Great. And we're, um, I'll add all the links to the, to the show notes as well. So with the community or discord, I actually joined because I haven't even installed, It's on my list to do is to install Coolify um, and every time I sit down to do it, something else happens at work or similar.

But yeah, seeing the community, um, is great. It's just basically like a, a free. Support team from, from your perspective, I suppose. Um, and everyone's just willing to help out and it's, and it seems like sort of a great place that no one's, I've not seen any kind of malice or spite. It's all really friendly, like trying to, you know, get people to come on board.

So you mentioned it was , a competitor, I suppose, to Netlify um, and Heroku. Is there anything that Netlify doing that are next? That's next on your hit list?

András: well, server loss is one, one of it, but uh, basically I'm planning to add the cloud version of Coolify so let's say hosted one, uh, where I will manage the Coolify instance and other stuffs for you, and you just need to configure your application, basically your database or services or anything, any resources.

but for that I need to automate a lot of things because yeah, I'm working on it on my own, let's say with the community and doing hosted version and doing the development, the marketing and, uh, all the stuff is well. I have a family and I like to spend time with them, so yeah.

Mike: I suppose,, if, , if you, if you're self-hosting it, it kind of. Is implied that if it goes wrong, it's kind of your fault. You know, it's like if you're self-hosting it, uh, it'll, it'll run happily, um, unless you do a push or something or fill up your server. Whereas if you're offering a, a hosted, cloud version and someone else fills up the server or someone else does something that then takes down your website, then there's this kind of expectation as the customer, , that the service will always be there.

So, if you are asleep, I suppose you need to work out. All those processes of what happens if someone does fill it up. so

is there, so that's the, that's the Cloud thing, Can I just as a, as a side note, you mentioned you do databases and do php. What happens with persistent data across. Deployments, I'm thinking from like a, a cms, if I was in, if I was into to install WordPress, um, obviously I wouldn't want a new, a fresh database being deployed every time that I pushed code. , so is there, are you able to sort of set up, , I believe they're called persistent volumes in Docker where you sort of go, this is the database image, but it's storing data here.

That doesn't change with each deployment.

András: Yeah, so basically with all the applications you deploy, You can specify, , persistent storage. So basically a pass where you storing all the files that you've required between each deployment. But for WordPress, uh, specifically, uh, WordPress is supported. , by Coolify in a way that you can attach your own database to it, or you can specify that, Okay, I need a new database for this WordPress instance.

And yeah, all data will be stored and saved on, on your server. So basically it, it's, it's a, it's on the perent.

Mike: Great., do you need to know anything about Docker to get started with Coolify

András: no, you do not , you just need to know that your application is based on what kind of programming language. So basically it's based on React. You probably know that if you are React developer, And uh, basically the, my idea with Coolify was to. Let's say hide these details, this development and operations details behind the scenes.

So basically you do not need to know about Docker or anything to get started. Of course, there are some advanced use cases that we allow you to configure your Docker images or Docker containers. But for that is, let's, let's say that is a build packs in Coolify which is Specifically created for Coolify and they are just basically specifying that you are running a React or a Vue.js or Svelte or a PHP or something like that.

And if you click on that build or select that build pack, you basically have everything set that is usually set for that programming language. So you do not need to set anything else.

Mike: And you say that you can, uh, configure it further, is that in the instance of, um, the CMS that I use requires ImageMagick. So if I've selected PHP and I need an extra layer of ImageMagick installed, , I'm assuming I'm able to configure that.

András: Yeah, you are able to, and also if you are using Docker Compose or some kind of specific Docker file that you required for your application, there is also. This kind of build pack. So there is a dock, dock build pack and the dock compose, build pack, which will ultimately detect if there is a docker file in your repository and use that as a base image.

So basically you can, you can do whatever you want if you are, if you know what the docker file is and how to configure it. So that does the advanced use case

Mike: Yeah,

So it sort it's got, it's built in Docker files, but if you want complete control, you can provide that Docker file.

András: Yeah.

Mike: Wow. Sounds amazing. Um, so you say it's open source, I'm assuming. Can people open merge requests, issues? Uh, do you get a lot of help and sort of extra people contributing to the repository?

András: Yeah, I'm getting more and more prs. Um, and basically lots of discussions how to evolve some parts of of Coolify Yeah, basically it's open so everyone can contribute with code or just a simple discussion or an idea or anything else. And also, I have a feedback tool that, uh, you cannot, your feature or service you would like to integrate with codify, and everyone can upload it basically.

And, uh, that's, that is good for me because I know what the kind of features or, uh, services, uh, the users would like to have next time. So, So, yeah, basically it's all, everyone can contribute even if you are not coder or does not know how does it work, but you require to have something like, I don't know, PHP or something like that.

Then basically you can ask and, and discuss what your use case is and, and so.

Mike: Yeah. And so is your, roadmap entirely driven by the community, or do you have, um, obviously I know you, you sort of said that you wanna do cloud, so no doubt you are slowly working towards that. But is your feature roadmap entirely community driven?

András: Not entirely. I have some main points that I would like to reach. but uh, basically they are mixed together. So I'm, I'm really listening to the, to the community itself because, well, basically they are the users.

they, they, what? I, I I do not know everyone that, who would like to use for what? So basically I, I'm just a, a simple person, , let's say.

So they, they are the users. They know what, what they would like to achieve with Coolify and how they would like to achieve. We can start a discussion and basically if it's, if it makes sense, then I will do it.

Mike: Great. And I, and I suppose the, the advantage of you being a single person is that you're able to, I suppose pivot and change the direction or change sort of priorities and stuff quite easily. But the disadvantage being you, you are only one person, so you can only do so much in a week and so

much in a day.

András: Yeah. And that is why basically I'm keeping it open source and free for forever because, some of the venture capitals have contacted me that they would like to fund my project, but I really would not like to do it because it, it's, it's a, it's a full different story, let's say. Where, Where I dunno. I would like to create software that doesn't move with the money, let's say.

So I would like to create a software that I'm enjoy creating. That's the first priority because if I don't enjoy that, that, that is not good. and also not money provides the way you are, the direction where it goes. But the users itself basically,

Mike: Great. How long have you been working on Coolify

András: Well, the first version was created around three years ago. Yeah, when I was worked at IBM and uh, but at that time I didn't do much coding on that. So basically I created the first version in three days, and that was working and. Of course it doesn't have any front end or something, just, just the integration and yeah, but I really started to work on it around a year, year ago, but, well, this, this year basically.

Mike: Wow. And I, and I'm assuming even before, , three years ago when you did that, sat down and did those three days, I'm assuming it was bouncing around in your head for a little bit before that as well.

András: Yeah. Yeah, I was, I dunno. Few months before that I started to work, work on it. It was, what if I create such a thing? Yeah.

Mike: Great. So if people did wanna, uh, talk to you if they had any questions about Coolify or just wanna, uh, let you know what a great podcast this was, um, where can they find you? How can they get in touch?

András: Well, you can find me on Twitter and uh, basically I'm on Discord every time. And also if someone prefers Telegram, I'm still there. Or if someone prefers email, I'm still there.

All the links are are in in the documentation, basically

Mike: wonderful, and there, there are some things that email does that other social. Can't do. I, I can't think what it is off the top of my head, but email still does have a purpose somewhere. I'm, uh, @mikestreety on everything, uh, and the podcast is @behindsource on Twitter or.

On behindthesource.co.uk on the internet. , as this is a fairly new podcast, I would appreciate any feedback, comments, reviews, , in your favourite podcast listing app. , or if you would like to feature on the podcast or know someone who should feature, then do drop me an email at [email protected].

András thank you very much for your time. It's been, uh, an absolute joy talking to you and learning more about cfi. , and no doubt I will be getting in touch soon once I've installed it and have some questions,

András: Yeah, sure Thank you very much for inviting me,