I tested Coolify for a few weeks, and I can confirm that the name checks out. Highly recommend giving it a try. *** Update: I wanted to mention that adding WAF protection is worthwhile. You can route your Coolify domain through Cloudflare and utilize their free WAF protection at a minimum.
I must admit, this is the most thoroughly details Coolify installation tutorial out there on RUclips, and I've seen A LOT of these recently. Thx for your dedication, @RaddyDev! Cheers!
One addition: do not forget to update the password for coolify instance after you've set up HTTPS, because the first time you registered it was sent over HTTP and it is 100% logged somewhere in between your machine & hetzner instance.
That's a valid concern, thank you. If you set it up in public place, like a coffee shop where network traffic might be monitored, that could be a problem.
Can you also show in your next videos how to set up a publicly-accessible postgres instance hosted on coolify? Maybe also set up a domain name pointing to that postgres instance using cloudflare tunnel or something so that the connection string doesn't have to depend on a static IP address? I've tried and couldn't get it to work.
I haven't tried setting up a tunnel, but the publicly-accessible Postgres worked for me. I had to open port 5432 and check the "make it public" option. Is that not working for you?
thanks for this very instructive video. So if I got it right, you should register a domain name for the Coolify instance, and then register domain names for every app running on this instance?
Thank you, I appreciate it. Yep, that's it. This way you can easily create websites with subdomains and also enables you to set up preview deployments for testing. Forgot to mention that it might make it easier to add WAF protection from platforms like Cloudflare.
Amazing explanation, but i couldn't understand one thing that why do we need two domain names one for colify and one for the project, is it possible to not register colify with a domain name but only my project?
Technically, IP address will work for Coolify. Many server are managed that way, but domain names are easier to remember and look more professional if you care about that. The big thing for me was being able to easily create an application with a custom subdomains like analytics.mydomaincom without messing around too much. Oh and you get SSL on your coolify. Not sure how it works with the IP - it's probably fine. And thank you!
In my opinion, Vercel's DX is superior. They make deploying, debugging, and monitoring your application incredibly easy. There's no need to worry about server configuration, security, or scalability. Naturally, these benefits come at a cost. Coolify isn't serverless, but there are other options that you might want to explore like SST and AWS Amplify. SST is more technical, whereas Amplify offers a user experience somewhat similar to Vercel's. Currently, I use Coolify for most of my projects and find it quite nice. However, I wouldn't personally put a big client on it.
thank you and I agree with you. It took me a long time to figure out the Traefik redirect. The instructions in the the official documentation didn’t seem work for me
Perfect, this is what I needed to stop feeling paranoid about Vercel. Just one question: How can we achieve the same firewall behaviour of what Hetzner offers, but on some other VPS provider that doesn't have the any firewall features, so the firewall needs to be set up manually with something like ufw. But docker exposes the port 8000 even if you block it using ufw. Any idea?
Hard to say what it could be. If you haven't looked already, check out the logs when you deploy. Hopefully that will give you an indication of what it could be
With the Cloud, I guess you'll get to do less maintenance, free email notifications, and potential access to support. I haven't had to do much maintenance and I have no idea how good the support is. If you want to support Coolify and its creator, Andreas, choose the Cloud option. I personally have self-hosted everything on one server since I am only using it for personal projects. If you're using it for clients or important projects, separate servers are the best option. So, ask yourself if you need separate servers, free email notifications, less maintenance and support. That was a wordy answer, but I hope it helps. Let us know what you choose and why.
thank you raddy so if we do any change on our code or add new feature on our websites for future should we just update the git repo and then push it then restart it from the coolify in order to see the changes and also what about when we upgarade our vps can we done it simply and all changes not needed
That's correct. For updates on your website, you can update the GitHub repo. Pushing the changes will trigger coolify to update your project automatically, so you don't have to do anything else. If you push a lot of changes to your repo, but you don't want them live yet, you can split your repository into branches. Example: your production branch can be called master/production. And your dev can be called staging or whatever you like. Regarding upgrading your VPS, it's fairly easy. Most companies have an Rescale/Upgrade option. You simply select the server upgrade that you want and buy it. Note that in some cases, you might need to power off your server for a few minutes. If downtime is not an option, you can snapshot, create a new server from the snapshot and change your Static IP over to the new server. If you don't have a static IP, then you'll loose your old server IP and you'll have to update all of your domains :)
Hey Raddy, you said you have three websites running on Droplet(server). How's that possible, when you have just one public ip address. Am i missing something
Yep, that's correct, you can host multiple websites on a single server. It works similarly to using Nginx, where you can have many domains point to one server IP. Nginx then handles directing traffic to the correct website. Coolify simplifies this process as it acts like a Platform as a service. Like Render and Varcel I guess. You simply create your websites within the platform, point your domain names to hosting IP, and Coolify takes care of everything. This includes routing traffic to the appropriate website, managing SSL certificates, and more
@@ALVIERIDEVELOPER Coolify uses Traefik as a proxy server to route traffic; it listens to incoming requests and, based on rules you set (like domain names), directs traffic to the right web service (e.g., React app on port 3000, Angular app on port 4200), acting like a traffic manager to ensure each request reaches the correct website. As for nginx it's more barebone from the get go, but it has a bigger community and you can configure it to your needs.
When I create a new instance on Hetzner, it usually comes up to date. As you SSH there should be a message that the system is up to date as far as I remember. (It's most likely on the video when i ssh). It's still a good practice to manually check and run updates. If I log in now, I am sure that there will be some updates available to install. Coolify doesn't do ubuntu updates and with self-hosting, so you'll have to do the security yourself
Did you apply the firewall settings to your server? That's the only thing that I can think of if you followed along. A bit strange, let me know how it goes and if there is anything i can help with
It would be more or less the same. Let's say that you build your API with NodeJs, then the process of deploying will be exactly the same as the NextJs project
after applying firewall, I am not able to see the coolify using the ip as expected , but instead I can see the page saying 404 not found what does that mean? I mean isn't it just time out like in the video
After applying the firewall rules, accessing Coolify via the IP address should be blocked, which is expected behaviour. To access Coolify, use the domain name you have set up. If you haven't set up a domain name, you can unblock the port to continue using the IP address. That's what I've done in the video. Configure Coolify via IP -> Lock IP -> Use Coolify with a Domain. I hope that you've managed to set it up
I wouldn't waste your time trying with less than the minimum requirements. The server will probably crash at some point. Ubuntu itself requires 1GB RAM and 1 vCPU or better.
You can deploy PHP websites, but it relies on Docker compose for handling the development environment. You could look into some of the articles online on deploying Laravel websites. Maybe that would help clear things up. I haven't deployed any PHP applications on it yet, except for WordPress.
There is a one click deploy option and SSL is automatically generated. I made a video on how I migrated pre-existing wp website and that covers the WP installation: ruclips.net/video/wqyHFCu9bFM/видео.html
There is an option called Preview Deployments which does that, but only works with Github. It's disabled by default, so you just need to go to Advanced and tick the box. You can configure the domain as well. Here is what the docs are saying: "Preview deployments are a great way to test your application before merging it into the main branch. Imagine it like a staging environment. URL Template You can setup your preview URL with a custom template. Default is {{pr_id}}.{{domain}}. This means that if you open a Pull Request with the ID 123, and you resource domain is example.com the preview URL will be 123.example.com." You can also create another website on coolify with a test/development environment and connect it to the branch you want.
I haven't used v2, but I do think the UI in v4 could be improved. It's not bad, but there is always room for improvement. With time, it will only get better.
You don't touch the nameservers unless you want your domain name to be controlled by another platform. You can just change the DNS and it will work. Saying this, if you want extra protection and some analytics you can use Cloudflare for free. In this case you'll need to change the nameservers to Cloudflare and then from Cloudflare you can change the DNS to point to your server. In this case your domain registrar is Porkbun, but your records are controlled by Cloudflare. I hope that makes sense. Thank you for using my referral link!
Finally someone who shows how to setup custom domain and https for the project instead of the Coolify dashboard. Thank you!
I tested Coolify for a few weeks, and I can confirm that the name checks out. Highly recommend giving it a try.
*** Update: I wanted to mention that adding WAF protection is worthwhile. You can route your Coolify domain through Cloudflare and utilize their free WAF protection at a minimum.
Can you teach us how to add WAF protection? That would be really helpful. Thanks for your efforts by the way.
@@Its-InderjeetSinghGill Yes please Raddy! Thanks!
I must admit, this is the most thoroughly details Coolify installation tutorial out there on RUclips, and I've seen A LOT of these recently. Thx for your dedication, @RaddyDev! Cheers!
I appreciate the comment; thank you!
This is exactly what I was looking for!
Thank you so much for sharing such a useful tutorial mate.
Cheers! 🔥🔥
Perfect Raddy, you got 5 Stars. Thank you so much
I appreciate it, thank you!
Since levelsio podcast with Lex Fridman, VPS may just be enough. Thanks for in depth tutorial!
SUCHH A DETAILED GUIDE DUDE!!!! I LOVE THISSS, keep it up!
Of course, I find it very useful. Thanks for making this tutorial. I watched from start to finish.
I am glad to hear that, thank you 🙏
Epic intro to coolify, much appreciated.
Very apt tutorial, great job mate.
Thank you!
One addition: do not forget to update the password for coolify instance after you've set up HTTPS, because the first time you registered it was sent over HTTP and it is 100% logged somewhere in between your machine & hetzner instance.
That's a valid concern, thank you. If you set it up in public place, like a coffee shop where network traffic might be monitored, that could be a problem.
Amazing video! Thank you very much Raddy!
Glad you liked it!
Can you also show in your next videos how to set up a publicly-accessible postgres instance hosted on coolify? Maybe also set up a domain name pointing to that postgres instance using cloudflare tunnel or something so that the connection string doesn't have to depend on a static IP address? I've tried and couldn't get it to work.
I haven't tried setting up a tunnel, but the publicly-accessible Postgres worked for me. I had to open port 5432 and check the "make it public" option. Is that not working for you?
really enjoyed watching this tutorial, thanks for sharing
Appreciate the comment, Raz! Thank you
Perfect! Everything works, thanks!
Amazing tutorial. Thank you
Glad you enjoyed it!
Hi! Can you make a video on how to setup Deployment Previews?
thanks for this very instructive video. So if I got it right, you should register a domain name for the Coolify instance, and then register domain names for every app running on this instance?
Thank you, I appreciate it. Yep, that's it. This way you can easily create websites with subdomains and also enables you to set up preview deployments for testing. Forgot to mention that it might make it easier to add WAF protection from platforms like Cloudflare.
when adding firewall how to add my own ip to keep having access ? I do not have an extra domain to give to Coolify
Amazing explanation, but i couldn't understand one thing that why do we need two domain names one for colify and one for the project, is it possible to not register colify with a domain name but only my project?
Technically, IP address will work for Coolify. Many server are managed that way, but domain names are easier to remember and look more professional if you care about that. The big thing for me was being able to easily create an application with a custom subdomains like analytics.mydomaincom without messing around too much. Oh and you get SSL on your coolify. Not sure how it works with the IP - it's probably fine. And thank you!
AWESOME TUTORIAL , it was soo helpful just a quick question what about serverless, can you have a similar DX with coolify as for example in vercel?
In my opinion, Vercel's DX is superior. They make deploying, debugging, and monitoring your application incredibly easy. There's no need to worry about server configuration, security, or scalability. Naturally, these benefits come at a cost.
Coolify isn't serverless, but there are other options that you might want to explore like SST and AWS Amplify. SST is more technical, whereas Amplify offers a user experience somewhat similar to Vercel's.
Currently, I use Coolify for most of my projects and find it quite nice. However, I wouldn't personally put a big client on it.
Nice video 👍
Isn't it faster to just create a CNAME record pointing www to your root domain to simplify Traefik config?
thank you and I agree with you. It took me a long time to figure out the Traefik redirect. The instructions in the the official documentation didn’t seem work for me
Perfect, this is what I needed to stop feeling paranoid about Vercel.
Just one question: How can we achieve the same firewall behaviour of what Hetzner offers, but on some other VPS provider that doesn't have the any firewall features, so the firewall needs to be set up manually with something like ufw. But docker exposes the port 8000 even if you block it using ufw. Any idea?
UTW can be a solution. Have a look at the article "How To Set Up a VPS Firewall?" by scalahosting as it talks about all that
Nice tutorial, i've tried to put a remix app from shopify and doesn't build, any tips? the remix app has a dockerfile.
Hard to say what it could be. If you haven't looked already, check out the logs when you deploy. Hopefully that will give you an indication of what it could be
is it better to self host or just use theur 5$ solution? looks like it's about the same price than a vps with 30+gb
With the Cloud, I guess you'll get to do less maintenance, free email notifications, and potential access to support. I haven't had to do much maintenance and I have no idea how good the support is. If you want to support Coolify and its creator, Andreas, choose the Cloud option. I personally have self-hosted everything on one server since I am only using it for personal projects. If you're using it for clients or important projects, separate servers are the best option. So, ask yourself if you need separate servers, free email notifications, less maintenance and support. That was a wordy answer, but I hope it helps. Let us know what you choose and why.
Great Video Raddy!, can you explain how to build shopify app.
Thank you! I don't have much experience building Shopify apps. I've only used liquid once to build a basic theme. It wasn't fun 😄
thank you raddy so if we do any change on our code or add new feature on our websites for future should we just update the git repo and then push it then restart it from the coolify in order to see the changes and also what about when we upgarade our vps can we done it simply and all changes not needed
That's correct. For updates on your website, you can update the GitHub repo. Pushing the changes will trigger coolify to update your project automatically, so you don't have to do anything else. If you push a lot of changes to your repo, but you don't want them live yet, you can split your repository into branches. Example: your production branch can be called master/production. And your dev can be called staging or whatever you like.
Regarding upgrading your VPS, it's fairly easy. Most companies have an Rescale/Upgrade option. You simply select the server upgrade that you want and buy it. Note that in some cases, you might need to power off your server for a few minutes. If downtime is not an option, you can snapshot, create a new server from the snapshot and change your Static IP over to the new server. If you don't have a static IP, then you'll loose your old server IP and you'll have to update all of your domains :)
@@RaddyDev thank you!
is it still possible to use API routes in Next when deploying with Coolify?
Yeah they work absolutely fine
Hi Raddydev, how can I get Coolify to run locally on a Macbook pro M2 with docker? I am experiencing many problems. Thank you for your content
Coolify is only really officially supported on linux systems
Hey Raddy, you said you have three websites running on Droplet(server). How's that possible, when you have just one public ip address. Am i missing something
Yep, that's correct, you can host multiple websites on a single server. It works similarly to using Nginx, where you can have many domains point to one server IP. Nginx then handles directing traffic to the correct website.
Coolify simplifies this process as it acts like a Platform as a service. Like Render and Varcel I guess. You simply create your websites within the platform, point your domain names to hosting IP, and Coolify takes care of everything. This includes routing traffic to the appropriate website, managing SSL certificates, and more
@@ALVIERIDEVELOPER Coolify uses Traefik as a proxy server to route traffic; it listens to incoming requests and, based on rules you set (like domain names), directs traffic to the right web service (e.g., React app on port 3000, Angular app on port 4200), acting like a traffic manager to ensure each request reaches the correct website. As for nginx it's more barebone from the get go, but it has a bigger community and you can configure it to your needs.
why didn't you update & upgrade newly created ubuntu instance? Does the coolify script do it for you automatically?
When I create a new instance on Hetzner, it usually comes up to date. As you SSH there should be a message that the system is up to date as far as I remember. (It's most likely on the video when i ssh). It's still a good practice to manually check and run updates. If I log in now, I am sure that there will be some updates available to install. Coolify doesn't do ubuntu updates and with self-hosting, so you'll have to do the security yourself
i got a message, that coolify needs some ports for example 8000, When I add it to my firewall its again accessible via the ip. What am I doing wrong?
Did you apply the firewall settings to your server? That's the only thing that I can think of if you followed along. A bit strange, let me know how it goes and if there is anything i can help with
Thanks Man
Can you make video on how to host api endpoints on coolify
It would be more or less the same. Let's say that you build your API with NodeJs, then the process of deploying will be exactly the same as the NextJs project
after applying firewall, I am not able to see the coolify using the ip as expected , but instead I can see the page saying 404 not found what does that mean? I mean isn't it just time out like in the video
After applying the firewall rules, accessing Coolify via the IP address should be blocked, which is expected behaviour. To access Coolify, use the domain name you have set up. If you haven't set up a domain name, you can unblock the port to continue using the IP address. That's what I've done in the video. Configure Coolify via IP -> Lock IP -> Use Coolify with a Domain. I hope that you've managed to set it up
Are system requirements hard or can I still use it on 1 core 1 gb + swap server if needed?
I wouldn't waste your time trying with less than the minimum requirements. The server will probably crash at some point. Ubuntu itself requires 1GB RAM and 1 vCPU or better.
I still didn't understand if it has php buildpacks
You can deploy PHP websites, but it relies on Docker compose for handling the development environment. You could look into some of the articles online on deploying Laravel websites. Maybe that would help clear things up. I haven't deployed any PHP applications on it yet, except for WordPress.
does middleware of nextjs will work on vps?
Yep, it does work
will this auto build if you commit change to Main?
Yeah it will auto redeploy the website when you push change to main. You can choose whatever branch you want
Hello sir! How some one can enter in contact with you pls?
I have a tiny Discord page or you can email me. Links should be in my youtube about page
Any way to deploy Wordpress websites?
And SSL, can you generate it on the Coolify?
There is a one click deploy option and SSL is automatically generated. I made a video on how I migrated pre-existing wp website and that covers the WP installation: ruclips.net/video/wqyHFCu9bFM/видео.html
what about ci/cd for branches? is it possible?
Yeah there is an option for which branch you want to use for deployments and you can always change it
@@RaddyDev I mean automaticly, like on vercel - i create new brach and can see preview after push
There is an option called Preview Deployments which does that, but only works with Github. It's disabled by default, so you just need to go to Advanced and tick the box. You can configure the domain as well. Here is what the docs are saying:
"Preview deployments are a great way to test your application before merging it into the main branch. Imagine it like a staging environment.
URL Template
You can setup your preview URL with a custom template. Default is {{pr_id}}.{{domain}}.
This means that if you open a Pull Request with the ID 123, and you resource domain is example.com the preview URL will be 123.example.com."
You can also create another website on coolify with a test/development environment and connect it to the branch you want.
@@RaddyDev omg, needs to try. And buy raspberrypi 5 :D
why redirect to non www version ?
It's a personal preference and also helps with split ranking
pls start using dark mode ! we love our eyes even if you dont
coolify v2 ui is so much better
I haven't used v2, but I do think the UI in v4 could be improved. It's not bad, but there is always room for improvement. With time, it will only get better.
You spend a lot of time choosing a VPS
I did, to be fair... Maybe I overexplained a bit. I appreciate the feedback!
Copy content from milky
Hi mate, just wanted to clear up any confusion. My video was posted before theirs, and the content is different too.
Thanks, bro! I'll transfer all my projects and follow your steps this week. Thanks a lot! 🙌 +like +subscribe!
I appreciate it brother!
@@RaddyDev Hello, I have used your referral. Just a little question, on Porkbun, do you change the nameservers or only the DNS?
You don't touch the nameservers unless you want your domain name to be controlled by another platform. You can just change the DNS and it will work.
Saying this, if you want extra protection and some analytics you can use Cloudflare for free. In this case you'll need to change the nameservers to Cloudflare and then from Cloudflare you can change the DNS to point to your server.
In this case your domain registrar is Porkbun, but your records are controlled by Cloudflare.
I hope that makes sense. Thank you for using my referral link!
@@RaddyDev 🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏