00:00 Intro 00:56 What can you do with Coolify? 02:09 Coolify minimum specs required 02:59 Create a VPS with Hetzner and Set Up with Cloud Config 06:16 ssh into VPS as root and update / upgrade 07:18 Install Coolify 08:29 Coolify: localhost vs remote server 10:25 Update VPS user passwords 11:51 Set up Coolify https instance domain and https wildcard domain 16:04 Why not Cloudflare? 16:41 Create a firewall and lock down all unused ports 17:47 Update Coolify user password and setup 2fa 18:49 Deploy a static website to Coolify with an https subdomain 20:55 www redirects and custom Caddy configs 25:25 Create dynamic proxy configurations 27:04 Create a basic Next.js project in Coolify 28:09 What is nixpacks? 29:37 Deploy a basic Next.js application with nixpacks 31:38 Create a Github application in Coolify 33:31 Deploy a Next.js app with auto deploy 35:41 Create a postgres database for a t3 application 37:10 Create a Dockerfile to push the db schema to our database 40:35 Create a Dockerfile to push the db schema from a private repo 44:46 Deploy a t3 app 47:10 Set up http basic auth with Caddy 51:01 Upgrade Coolify 52:06 Deploy a git repo with an existing docker compose file 59:26 VPS status dashboards 01:00:56 Deploy a service with docker compose 01:04:13 Deploy supabase and monitor VPS status during deploy 01:07:00 Set up minIO / s3 compatible storage 01:10:42 Configure database backups 01:15:17 Coolify cloud demo 01:18:37 Where and how to get help with Coolify 01:22:22 CJ's opinions and final thoughts about Coolify 01:28:20 Thanks!
hi , i am using Coolify as a remote server to deploy a git repo with docker-compose file , and it it not loading the docker-compose.yaml, but when I do it in local server it is working fine.
For anyone following the tutorial from September 2024 and onwards, it seems Coolify now has an automatic way to set redirection in it's settings (compatible with caddy). Just add the two domains (www and non-www) in the domain text box like in the video and then in the "Direction" select box pick "Redirect to non-www." to get redirection working, no more looking into the docs to get the proper text config for this relative simple task. Great job simplifying that process Coolify team! Also big thanks Syntax for the great guide!
Hi @0Mallex0, thanks for pointing this out. Unfortunately it doesn't work for me. The www doesn't redirect to non-www and the browser gives an error: This site can’t provide a secure connection I'm using Cloudflare DNS and using their proxy. Any idea on what's going wrong? Thanks
This tutorial is incredible! You've shared your flyhacks and gone beyond just installing and deploying via repo (as on other youtube coolify tutorials). There are no words to describe my gratitude to you CJ!
CJ, you, sir, are a gentleman and a scholar! Please don't stop making these self-host tuts. Your way of teaching is heartfelt, articulate, and makes learning new things an absolute joy.
You're one of the best teachers I've ever seen. I swear any other youtuber talking about these topics would lose my attention every 10 seconds, but you, sir, have a special talent.
CJ, wanted to thank you, this has been hands down the best resource for me in setting up coolify and going live for the first time outside of github pages. Really felt the sentiment of your thoughts at the end, for me though as a primarily front end focused dev, coolify has felt like the magic answer to my worries about how intimidating self hosting felt, and not wanting to become reliant on something like vercel hosting, I felt stuck for a long time, so finding coolify and being able to setup my own vps without too much issue, I'm extremely happy. Again thanks to you for walking though so much and providing that extra context or info that docs can't always provide. Great video!
I think this is the best series I've seen in a while. So many opportunities... I've watched some home labs setups but nothing so deep. Thanks a lot for sharing.
This is probably one of the greatest tutorial video ever done. So much wealth of knowledge given in such succient, upbeat and concise manner! Thank you! I'm attempting this right now and so far so good.
Detail level: 10/10 Enthusiasm: 10/10 Brevity: 10/10 Honesty: 10/10 Thanks a ton for such a great video, @CJ! I have just come across your vids, and I will definitely subscribe for more. Keep it up man!
Hey CJ and Syntax team, thanks for putting this outstanding video together. It's very thorough and easy to follow. I've set up my Coolify before this video came out and had some difficulties understanding all the different configurations and settings within Coolify. This video shed some light on that and helped me understand how and what I can do with Coolify.
Hands down, this has to be the best technical video on the internet right now. Sir you are an asset to the world and I thank you for what you have openly provided without a paywall to not only me but to everyone watching this. I hope that if you are ever in trouble or down in life, you are blessed with amazing luck and love.
I think I haven't wrote more than 5 TH-cam comments in my life... :) But CJ, thank you very very much for making this video. Even the things you just casually mention during the video makes me learn lots of things as a 6 year experienced software engineer. The whole TH-cam is filled with "here i just skip this part because I also do not know what it means", but you take the time to explain things throughly. Amazing delivery, great content.
This seriously was one of the best tuts I have seen in a while. I set coolify up solo a few months back and ended up deleting what I thought was the real experience. Just learned that I missed a ton of things... Great work CJ/Syntax.
I appreciate the opinion section. I use docker, docker-compose, and traefik for my personal server. While watching, i had the urge to get coolify up and running just for that pretty front end. I might still do it. Either way, for people just getting started with these technologies, im jealous that you have something like Coolify. Very cool tool and very informative video.
I'm feeling a bit stupid for asking but I have just recently installed on my proxmox a Ubuntu server instance and there I would like to run docker containers and within those docker containers for example databases. I could now install coolify and don't really have much of the hassle of managing the containers but I could easily spin up databases with the click of a button. Is my understanding correct? What about things like passing through GPU?
You should be able to use coolify for this. Pass through GPU would need to be handled within proxmox.
8 หลายเดือนก่อน +6
Thanks CJ! Another great video. Also appreciate the opinions at the end. You've covered so much already, but maybe it could be interesting to make a video covering the considerations and best practices when self hosting a production app with 2-3 services (like a service, db and a message queue). This could be like a summary or overview video for the series, tying it together.
Appreciate the opinion section at the end. It's easy to get carried away and just dive straight into using something like this out of ease of use. I agree, in the not to distant future this will be awesome.
Brother, this is amazing quality content: I commend you on the quality of the information, the pacing, the depth, conciseness and clarity in your explanations and thought processes. Thank you.
Great video, thanks for the honest closing words! And also to the coolify maintainer for building such an awesome open-source product! Gonna check out if v.4 is already in stable release now.
I appreciate the honest feedback at the end. You asked for new topics. I would be interested in kubernetes. I've heard good things about it at larger scale, but recently got aware that it's also handy for smaller projects. I like the fact that it's more iac. One thing I found discouraging in this video about coolio, was that everything was "click-ops" and I'm quite bad at remembering things. My dream scenario would be to spin up a vServer at hetzner with sth like terraform to get a one-instance kubernetes cluster and then just deploy the apps with kubernetes tooling all reproducible with code. Wdyt?
Coolify is fantastic! I really appreciate this video. I'm looking forward to hearing your thoughts on Dokku next, it's such an amazing project. Plus, the person maintaining it, Jose Gonzalez, is super cool too!
Deploying apps has never been easier 😊thanks for a well planned tutorial ❤. But I was wondering if you could also do one where you deploy a mern app using vite on the client and mongodb and express on the server back end. How would u deploy this app and integrate them to communicate with each other? I would really appreciate it if you did a tutorial on it. Thank u
These videos + coolify are a game changer. I don't have a reason to use vercel anymore. I'll still use fly, for some very specific elixir/phoenix stuff, but for everyething else: it's gonna be coolify from now on.
Thank you. I've only used Railway and Vercel so far, so this video really helped me understand what setting up my own server looks like. Could you set up two servers in a future video to show us an example of how to work with multiple servers and synchronize them with multiple databases?
heyo! this video has been so helpful. but i have to say, you blew past the part that is giving me the most trouble with coolify. the caddy traefik part with labels has been the bain of my existence. ive struggled to get these things functionoing and all apps i deploy have issues with their health, or simply just wont deploy because of it. can you please please make a video that goes into more detail about these? you just said, go figure it out. but thats really whats holding me back as a newbie. thanks again for all the great info btw! this is the most complete coolify course/intro on the internet. but that one area would be a giant boost still! i had to re-do my entire server 3x because of proxy issues and figuring out that i need to select the "only make caddy labels" box. pffff you werent kidding when you said dont turn off the proxy without the ports exposed!
Can't wait to view this all the way through, this is so useful 👍! You should really have the "Super thanks"-button here on TH-cam. I'm very excited about using Coolify, and everything just feels so smooth, I do find SSL to need a little more documentation, which is why I can't wait to dig deep into this episode ❤!
Hey CJ 👋 invaluable tutorial!! Can you also please do a short one with better auth for caddy if available or general hardening with f2b. Also the Prometheus + Grafana would be great! Bought a VPS and currently going ham with coolify! Loving it!
Great video, what I want to see from you additionally ıs setting up cloudflare tunnels(which they are free) and additionally for coolify to use tunnels. Love your work man.
The way you divide the relevant parts into chunks made it more easier to consume even those the video is long. This should be the standard format on how to make tutorial videos.
Loved every second of this video. I’ve been waiting for it to drop. I was ready to go all in on coolify but after cj thoughts might be going manual for my upcoming production migration. Was really hoping to use this for that 😢
I've been looking at assembling some open source tools to get a coolify like experience. dockge is a docker compose web dashboard - github.com/louislam/dockge portainer is a docker compose dashboard (with predefined stacks like coolify) but the community edition is limited in features - docs.portainer.io/ There are a bunch of other web dashboards for docker listed here - github.com/veggiemonk/awesome-docker?tab=readme-ov-file#web caddy-docker-proxy makes creating caddy configs for containers much easier: github.com/lucaslorentz/caddy-docker-proxy webhook could be used for auto builds / deploys on merge - github.com/adnanh/webhook -CJ
I agree about managing docker compose and caddy. What would you say is the best way to do deploys on pr merging? I think that is the last magic I would consider using coolify on.
You could write some custom scripts or use something like Ansible and write playbooks that will run all the commands you need to deploy a certain PR, but compared to using Coolify that would be way more work. It's definitely interesting to explore and learn, but if you are not interested in doing something so manual, then yeah Coolify might be a better way to do.
This project makes it pretty easy to setup webhooks that can run a script in response to a received webhook: github.com/adnanh/webhook Another option is to create a github action that ssh's into a server to re-build / restart the app: github.com/appleboy/ssh-action
Very well explained, but still i have one doubt on how to allow my nodejs app running in docker container to access internet, basically i was calling one external API which is not working on coolify but working on my local and i have verified and checked, and hets on the conclusion that this is a network issue, can you please help me here, if you know something? Thanks
Great tutorial. Coolify really seems to need a lot of resources just to run itself. Great option if you have capital but I’ll stick to basic docker deployments
Hi CJ, Great job on this video! After listening to the syntax episode I tried coolifiy and I agree with your views at the end. I am very interested in how you would do this manually with just a server from 0 to production and what tools you depend on for this. If you already have videos on this I would love to view them. Thanks
I show the basics in these 2 videos: Setting up caddy - th-cam.com/video/mLznVlBAtcg/w-d-xo.html Ways to get CI/CD on a VPS - th-cam.com/video/ZG76DYUlCEs/w-d-xo.html I have not gotten into more complex production tasks like load balancing, stress testing, log drains, monitoring / alerts, backups etc. but if there is enough interest, I might start to cover these types of things over on the Coding Garden channel. -CJ
I am trying coolify right now. So, this tutorial helped me in a lot of ways. Also, would it make sense to bring docker (I have watched your other video) into this series and make a video about hosting multiple containers (for different stack like express app, nextjs, etc) in a VPS and setting them up with Caddy (with different domain name)? Plus CI/CD etc
at 17:14 I'm using ufw as a firewall. my vps is not from hetzner. and i blocked the 8000 port but still able to access it Anyone has a solution for this problem?
Bro, your mustache has pierced my heart :D Awesome content, I want to cry for the quality of it. 47:00 Can you please show how to add a MFA like Authelia? I don't trust username/password combination. They're open to brute force attacks.
I actually got authelia up and running while testing! This is possible with the caddy forward_auth directive: caddyserver.com/docs/caddyfile/directives/forward_auth#authelia It was a bit too involved to show in this tutorial, but I might start doing more self host content over on the Coding Garden channel. -CJ
Thanks for the tutorial CJ, it's awesome! I tried to add a nextjs app (no DB) and it is running but I can't access its subdomain, I get DNS_PROBE_FINISHED_NXDOMAIN error. I have a wildcard domain configured and I serve the Coolify instance on another subdomain but this new nextjs subdomain doesn't work. It seems it's related to Caddy config. Do you have any ideas what I could change?
could you please go over how to use storage, this is an important step so the app data can persist and not reset after each restart/re-deploy? also if we add hetzner volume. PS, with the caddy setup and cloudflare dns with attack mode on and proxy enabled and ssl set to strict it seems to loop banned for bit.
The private key I am using here is only used as a deployment key, it is not the private SSH key for the server itself. If the container was compromised, the attacker would be able to use the key to access my private git repo, but if the attacker already gained access to the container... they already have access to the code. This is why you should use unique deploy keys for each repo / deployment.
@syntaxfm In your cloud-init you covered how you install updates and upgrades in an unattended way. Does this keep the System and other stuff like Docker actually recent or is this a one time thing, when cloud init Runs? It could be cool to modify the cloud init to update everything like with the pkg unattended-upgrades, but the configuration to receive e.g. Mails if there is an error would be handy. Maybe I am missing an easy way out?
Very helpful one thing, how do I setup a persistent storage on coolify itself I struggled all day with this , cause on a new deploy all images are lost
@syntax I noticed you have are big on security, I like that. What are your thoughts on using Coolify with unprivileged containers for a more secure setup? Would you suggest just modifying the yaml file? I am confused on how to do this with Docker containers / templates and/or github app installs. What do you think about Sysbox? Also, I noticed you have an update in your comments saying that you can create a non root user but it says int hat link it is an experimental feature, have you had any problems with this as non root user?
Note on firewalls, and maybe this is a "duh." I'm building on my own internal computer, not a cloud-hosted VPS. Using split DNS so I can access internal with domain name and outside access. INTERNALLY, using UFW for firewall, does not actually block the ports that the Docker bits publish as open via IPTables. My internet router also has a firewall and does, of course, block access to any ports into the network that aren't specifically open. Meaning, *internally*, even with UFW only allowing 22, 80, and 443, I can still access 8000 any other port that a container publishes as open. *Externally*, only the ports I open are actually open to that machine. None of this is the fault of Coolify, but a know inconsistency with how UFW and Docker manage ports in IPTables. There are various workarounds/hacks if one is concerned about access behind the network/internet firewall.
This was great, thanks so much! In relation to firewall rules. As i set up wth a different VPS, the only way to configure the rules was through ssh. But after configuring 22, 443, 8000 is still accessible. Aby tips to deal with this? Still a newbie to terminal. Mind you we did use Cloudflare (with proxy disabled). Could that be the reason?
Did you use ufw? Try "ufw status" - might have all the rules but still be disabled. "ufw enable" enables all the rules (make sure that 22 is open before enabling, or you'll get kicked out when the firewall turns on).
I'm a bit confused about the SSL part. You got a valid SSL certificate, where is the cert coming from? I didn't see any letsencrypt or any dns validation config. Is it a namecheap feature like cloudflare has?
I tried Coolify long time ago in 2022 and had some issues and tried it recently few months ago and had some issues immediately after installing it. Can't remember, but I'll give it another try soon because I actually want it to succeed and I actually want to use it mostly for Preview Deployments feature. I think it's just too prone to breaking from version to version (yes yes I know it's in beta), but it also being dependent on a single person is also quite problematic in my opinion.
00:00 Intro
00:56 What can you do with Coolify?
02:09 Coolify minimum specs required
02:59 Create a VPS with Hetzner and Set Up with Cloud Config
06:16 ssh into VPS as root and update / upgrade
07:18 Install Coolify
08:29 Coolify: localhost vs remote server
10:25 Update VPS user passwords
11:51 Set up Coolify https instance domain and https wildcard domain
16:04 Why not Cloudflare?
16:41 Create a firewall and lock down all unused ports
17:47 Update Coolify user password and setup 2fa
18:49 Deploy a static website to Coolify with an https subdomain
20:55 www redirects and custom Caddy configs
25:25 Create dynamic proxy configurations
27:04 Create a basic Next.js project in Coolify
28:09 What is nixpacks?
29:37 Deploy a basic Next.js application with nixpacks
31:38 Create a Github application in Coolify
33:31 Deploy a Next.js app with auto deploy
35:41 Create a postgres database for a t3 application
37:10 Create a Dockerfile to push the db schema to our database
40:35 Create a Dockerfile to push the db schema from a private repo
44:46 Deploy a t3 app
47:10 Set up http basic auth with Caddy
51:01 Upgrade Coolify
52:06 Deploy a git repo with an existing docker compose file
59:26 VPS status dashboards
01:00:56 Deploy a service with docker compose
01:04:13 Deploy supabase and monitor VPS status during deploy
01:07:00 Set up minIO / s3 compatible storage
01:10:42 Configure database backups
01:15:17 Coolify cloud demo
01:18:37 Where and how to get help with Coolify
01:22:22 CJ's opinions and final thoughts about Coolify
01:28:20 Thanks!
Thank you, CJ, for making this video! 💜 (the dev behind Coolify here)
great work, looking forward to having a play with it soon :)
I also want to thank you to for this great project Coolify. Are there any plans on an example for how to configure SvelteKit for Coolify?
hi , i am using Coolify as a remote server to deploy a git repo with docker-compose file , and it it not loading the docker-compose.yaml, but when I do it in local server it is working fine.
@@kumardeepanshu8503 can you please open a github issue?
@@PeterCarlsson-k7n you can find the required conf for sveltekit in the docs, but I will add one to the example repo. 🙂
For anyone following the tutorial from September 2024 and onwards, it seems Coolify now has an automatic way to set redirection in it's settings (compatible with caddy).
Just add the two domains (www and non-www) in the domain text box like in the video and then in the "Direction" select box pick "Redirect to non-www." to get redirection working, no more looking into the docs to get the proper text config for this relative simple task. Great job simplifying that process Coolify team! Also big thanks Syntax for the great guide!
Hi @0Mallex0, thanks for pointing this out.
Unfortunately it doesn't work for me.
The www doesn't redirect to non-www and the browser gives an error: This site can’t provide a secure connection
I'm using Cloudflare DNS and using their proxy.
Any idea on what's going wrong?
Thanks
@@BiiigBeee redeploy and it will work
@@BiiigBeee mybe try to add www to DNS record
This tutorial is incredible! You've shared your flyhacks and gone beyond just installing and deploying via repo (as on other youtube coolify tutorials). There are no words to describe my gratitude to you CJ!
CJ, you, sir, are a gentleman and a scholar! Please don't stop making these self-host tuts. Your way of teaching is heartfelt, articulate, and makes learning new things an absolute joy.
You're one of the best teachers I've ever seen. I swear any other youtuber talking about these topics would lose my attention every 10 seconds, but you, sir, have a special talent.
CJ, wanted to thank you, this has been hands down the best resource for me in setting up coolify and going live for the first time outside of github pages. Really felt the sentiment of your thoughts at the end, for me though as a primarily front end focused dev, coolify has felt like the magic answer to my worries about how intimidating self hosting felt, and not wanting to become reliant on something like vercel hosting, I felt stuck for a long time, so finding coolify and being able to setup my own vps without too much issue, I'm extremely happy. Again thanks to you for walking though so much and providing that extra context or info that docs can't always provide. Great video!
I think this is the best series I've seen in a while. So many opportunities...
I've watched some home labs setups but nothing so deep. Thanks a lot for sharing.
Thanks for watching!
This is probably one of the greatest tutorial video ever done. So much wealth of knowledge given in such succient, upbeat and concise manner! Thank you! I'm attempting this right now and so far so good.
This is the best tutorial I've seen on youtube in a long time. Period.
Detail level: 10/10
Enthusiasm: 10/10
Brevity: 10/10
Honesty: 10/10
Thanks a ton for such a great video, @CJ! I have just come across your vids, and I will definitely subscribe for more. Keep it up man!
Hey CJ and Syntax team, thanks for putting this outstanding video together. It's very thorough and easy to follow. I've set up my Coolify before this video came out and had some difficulties understanding all the different configurations and settings within Coolify. This video shed some light on that and helped me understand how and what I can do with Coolify.
Hands down, this has to be the best technical video on the internet right now. Sir you are an asset to the world and I thank you for what you have openly provided without a paywall to not only me but to everyone watching this. I hope that if you are ever in trouble or down in life, you are blessed with amazing luck and love.
I think I haven't wrote more than 5 TH-cam comments in my life... :)
But CJ, thank you very very much for making this video. Even the things you just casually mention during the video makes me learn lots of things as a 6 year experienced software engineer. The whole TH-cam is filled with "here i just skip this part because I also do not know what it means", but you take the time to explain things throughly.
Amazing delivery, great content.
CJ, your self hosting videos has been a blessing! I appreciate the length you go to show every detail of a step. Thank you!
This seriously was one of the best tuts I have seen in a while. I set coolify up solo a few months back and ended up deleting what I thought was the real experience. Just learned that I missed a ton of things... Great work CJ/Syntax.
Amazing! You went all out, CJ! Whenever I think the video is about to end, I see the transition and there’s more.
I haven't watched a video like this in a while... but it's refreshing CJ's approach to explaining every part of coolify. Thank you!!!
I appreciate the opinion section. I use docker, docker-compose, and traefik for my personal server. While watching, i had the urge to get coolify up and running just for that pretty front end. I might still do it. Either way, for people just getting started with these technologies, im jealous that you have something like Coolify. Very cool tool and very informative video.
I'm feeling a bit stupid for asking but I have just recently installed on my proxmox a Ubuntu server instance and there I would like to run docker containers and within those docker containers for example databases. I could now install coolify and don't really have much of the hassle of managing the containers but I could easily spin up databases with the click of a button. Is my understanding correct? What about things like passing through GPU?
You should be able to use coolify for this. Pass through GPU would need to be handled within proxmox.
Thanks CJ! Another great video. Also appreciate the opinions at the end. You've covered so much already, but maybe it could be interesting to make a video covering the considerations and best practices when self hosting a production app with 2-3 services (like a service, db and a message queue). This could be like a summary or overview video for the series, tying it together.
I like this idea! I think a general multi-tier architecture overview would be good to cover at some point.
@@syntaxfm I'd like to see this as well. Thanks!
Appreciate the opinion section at the end. It's easy to get carried away and just dive straight into using something like this out of ease of use. I agree, in the not to distant future this will be awesome.
Haven't finished watching it but I was able to deploy my first app with this tutorial. Thank you so much
Brother, this is amazing quality content:
I commend you on the quality of the information, the pacing, the depth, conciseness and clarity in your explanations and thought processes.
Thank you.
This is an amazing tutorial. Coolify is going to change my life as we developer. Thanks to the coolify developers, but also thanks to this tutorial❤
Thank you CJ for your efforts and demonstrating it in a single video. Great work 🎉🎉
CJ thank you so much for this and for your server video set up video. I reference them A LOT when I'm spinning up servers.
Great video, thanks for the honest closing words! And also to the coolify maintainer for building such an awesome open-source product! Gonna check out if v.4 is already in stable release now.
Fantastic summary CJ thanks for taking the time and sprinkling in your Caddy and Docker skills as well!
This is most comprehensive video on coolify. Thanks ❤
You've done a world of service in making this tutorial! Thank you!!
Probably the greatest tutorial I've watched so far.
This is awesome!!! Thanks for all the work you've put into this. I especially appreciate, that you show different use case scenarios.
Thanks a lot CJ! You've saved us days and weeks of tinkering
This is awesome man. I am just starting to do all this VPS stuff, this is very helpful. Thank you!!
I am so glad that YT suggested me this channel 💖 Awasome content CJ!
I appreciate the honest feedback at the end.
You asked for new topics. I would be interested in kubernetes. I've heard good things about it at larger scale, but recently got aware that it's also handy for smaller projects.
I like the fact that it's more iac. One thing I found discouraging in this video about coolio, was that everything was "click-ops" and I'm quite bad at remembering things. My dream scenario would be to spin up a vServer at hetzner with sth like terraform to get a one-instance kubernetes cluster and then just deploy the apps with kubernetes tooling all reproducible with code. Wdyt?
Really enjoyed the process, thank you! I rented a VPS just for fun and i don't regret.
finally, i found who make course of coolify, u got my sub. thank you for this course.
Coolify is fantastic! I really appreciate this video. I'm looking forward to hearing your thoughts on Dokku next, it's such an amazing project. Plus, the person maintaining it, Jose Gonzalez, is super cool too!
Deploying apps has never been easier 😊thanks for a well planned tutorial ❤. But I was wondering if you could also do one where you deploy a mern app using vite on the client and mongodb and express on the server back end. How would u deploy this app and integrate them to communicate with each other? I would really appreciate it if you did a tutorial on it. Thank u
What an incredibly in--depth video. Wow. I'm stunned.
Thank you very much! You are tha man, CJ! I've learned a tremendous amount. 🖖
This is a very beautiful video, learnt so much for myself and use case for my homelab, thank you so much CJ!
hey man, just wanted to say thank you. This video was a big help for me starting out with coolify 👍
Could maybe elaborate on the supabase setup? Like how to configure the auth part on self hosted
These videos + coolify are a game changer. I don't have a reason to use vercel anymore. I'll still use fly, for some very specific elixir/phoenix stuff, but for everyething else: it's gonna be coolify from now on.
Thank you. I've only used Railway and Vercel so far, so this video really helped me understand what setting up my own server looks like. Could you set up two servers in a future video to show us an example of how to work with multiple servers and synchronize them with multiple databases?
Wow, this is _exactly_ what I was looking for. Can't wait to try it out. Great tutorial!
Coolify is absolutely good tool. Thank you for making this video. Would love to see more tutorials about Coolify when it got stable version. 😊
This is AMAZING. Thank you so much for making this you've saved me lots of hours!
Want to like this Video multiple times. Thank You very much.
Love how CJ gets happier everytime he says Coooooolify 🤣
Awesome video, thank you CJ, awesome explanation!
heyo! this video has been so helpful. but i have to say, you blew past the part that is giving me the most trouble with coolify. the caddy traefik part with labels has been the bain of my existence. ive struggled to get these things functionoing and all apps i deploy have issues with their health, or simply just wont deploy because of it. can you please please make a video that goes into more detail about these? you just said, go figure it out. but thats really whats holding me back as a newbie. thanks again for all the great info btw! this is the most complete coolify course/intro on the internet. but that one area would be a giant boost still! i had to re-do my entire server 3x because of proxy issues and figuring out that i need to select the "only make caddy labels" box. pffff you werent kidding when you said dont turn off the proxy without the ports exposed!
Can't wait to view this all the way through, this is so useful 👍! You should really have the "Super thanks"-button here on TH-cam.
I'm very excited about using Coolify, and everything just feels so smooth, I do find SSL to need a little more documentation, which is why I can't wait to dig deep into this episode ❤!
This is awesome. You're awesome CJ!
Hey CJ 👋 invaluable tutorial!! Can you also please do a short one with better auth for caddy if available or general hardening with f2b. Also the Prometheus + Grafana would be great! Bought a VPS and currently going ham with coolify! Loving it!
Great video, what I want to see from you additionally ıs setting up cloudflare tunnels(which they are free) and additionally for coolify to use tunnels. Love your work man.
I wasn't able to test this, but coolify has some built in options for working with tunnels: coolify.io/docs/knowledge-base/cloudflare/tunnels
@@syntaxfm thank you, I tried to set it up but couldn’t manage to make it work especially remote servers
@@syntaxfm another thing that would be cool is a guide for remote servers with coolify
The way you divide the relevant parts into chunks made it more easier to consume even those the video is long. This should be the standard format on how to make tutorial videos.
Loved every second of this video. I’ve been waiting for it to drop. I was ready to go all in on coolify but after cj thoughts might be going manual for my upcoming production migration. Was really hoping to use this for that 😢
I've been looking at assembling some open source tools to get a coolify like experience.
dockge is a docker compose web dashboard - github.com/louislam/dockge
portainer is a docker compose dashboard (with predefined stacks like coolify) but the community edition is limited in features - docs.portainer.io/
There are a bunch of other web dashboards for docker listed here - github.com/veggiemonk/awesome-docker?tab=readme-ov-file#web
caddy-docker-proxy makes creating caddy configs for containers much easier: github.com/lucaslorentz/caddy-docker-proxy
webhook could be used for auto builds / deploys on merge - github.com/adnanh/webhook
-CJ
I agree about managing docker compose and caddy. What would you say is the best way to do deploys on pr merging? I think that is the last magic I would consider using coolify on.
You could write some custom scripts or use something like Ansible and write playbooks that will run all the commands you need to deploy a certain PR, but compared to using Coolify that would be way more work.
It's definitely interesting to explore and learn, but if you are not interested in doing something so manual, then yeah Coolify might be a better way to do.
This project makes it pretty easy to setup webhooks that can run a script in response to a received webhook:
github.com/adnanh/webhook
Another option is to create a github action that ssh's into a server to re-build / restart the app:
github.com/appleboy/ssh-action
this is such an immensely helpful tutorial 👏
This is an amazing and thorough tutorial video! 🥰
Very well explained, but still i have one doubt on how to allow my nodejs app running in docker container to access internet, basically i was calling one external API which is not working on coolify but working on my local and i have verified and checked, and hets on the conclusion that this is a network issue, can you please help me here, if you know something?
Thanks
Great tutorial. Coolify really seems to need a lot of resources just to run itself. Great option if you have capital but I’ll stick to basic docker deployments
Impressive and super helpful video, thank you very much!
Thanks a lot, this is a great resource to start self hosting with Coolify 👍
Hi CJ,
Great job on this video!
After listening to the syntax episode I tried coolifiy and I agree with your views at the end. I am very interested in how you would do this manually with just a server from 0 to production and what tools you depend on for this.
If you already have videos on this I would love to view them. Thanks
I show the basics in these 2 videos:
Setting up caddy - th-cam.com/video/mLznVlBAtcg/w-d-xo.html
Ways to get CI/CD on a VPS - th-cam.com/video/ZG76DYUlCEs/w-d-xo.html
I have not gotten into more complex production tasks like load balancing, stress testing, log drains, monitoring / alerts, backups etc. but if there is enough interest, I might start to cover these types of things over on the Coding Garden channel.
-CJ
@@syntaxfm thanks a lot. I'll watch the series. BTW this video finally got me to check out sentry
I am trying coolify right now. So, this tutorial helped me in a lot of ways. Also, would it make sense to bring docker (I have watched your other video) into this series and make a video about hosting multiple containers (for different stack like express app, nextjs, etc) in a VPS and setting them up with Caddy (with different domain name)? Plus CI/CD etc
Gold mine! Thanks you for content.
Truly a brilliant tutorial, just wow, thank you
at 17:14 I'm using ufw as a firewall. my vps is not from hetzner. and i blocked the 8000 port but still able to access it
Anyone has a solution for this problem?
This is a known issue with docker. You can read more here: github.com/chaifeng/ufw-docker
Bro, your mustache has pierced my heart :D
Awesome content, I want to cry for the quality of it.
47:00 Can you please show how to add a MFA like Authelia? I don't trust username/password combination. They're open to brute force attacks.
I actually got authelia up and running while testing! This is possible with the caddy forward_auth directive: caddyserver.com/docs/caddyfile/directives/forward_auth#authelia
It was a bit too involved to show in this tutorial, but I might start doing more self host content over on the Coding Garden channel.
-CJ
@@syntaxfm Yes! Yes! Yes! I won the TH-cam lottery.
Video so good, that coolify should pay you for this tutorial :)
Thanks for the tutorial CJ, it's awesome! I tried to add a nextjs app (no DB) and it is running but I can't access its subdomain, I get DNS_PROBE_FINISHED_NXDOMAIN error. I have a wildcard domain configured and I serve the Coolify instance on another subdomain but this new nextjs subdomain doesn't work. It seems it's related to Caddy config. Do you have any ideas what I could change?
Absolutely great explanation! Thank you so much! ❤
I can't find Nginx in the proxy list. 13:20
Perfect video for my use case. Thanks a ton.
Finally is here!! Thanks! 🚀
great stuff, please keep making more. Quick question is there easy way to rename containers listed through Glances dashboard?
could you please go over how to use storage, this is an important step so the app data can persist and not reset after each restart/re-deploy? also if we add hetzner volume. PS, with the caddy setup and cloudflare dns with attack mode on and proxy enabled and ssl set to strict it seems to loop banned for bit.
Would be cool to see a Dokploy walkthrough next!
43:06 Isn't it a security risk to put the private key in the docker file?
The private key I am using here is only used as a deployment key, it is not the private SSH key for the server itself. If the container was compromised, the attacker would be able to use the key to access my private git repo, but if the attacker already gained access to the container... they already have access to the code. This is why you should use unique deploy keys for each repo / deployment.
@syntaxfm In your cloud-init you covered how you install updates and upgrades in an unattended way. Does this keep the System and other stuff like Docker actually recent or is this a one time thing, when cloud init Runs? It could be cool to modify the cloud init to update everything like with the pkg unattended-upgrades, but the configuration to receive e.g. Mails if there is an error would be handy. Maybe I am missing an easy way out?
unattended-upgrades is installed and enabled by default in Ubuntu
How does it compare to Dokploy can you do a video?
Really amazing, tut. Keep the great work!
I am still
Thank you! This is an awesome video!
Very helpful one thing, how do I setup a persistent storage on coolify itself I struggled all day with this , cause on a new deploy all images are lost
@syntax I noticed you have are big on security, I like that. What are your thoughts on using Coolify with unprivileged containers for a more secure setup? Would you suggest just modifying the yaml file? I am confused on how to do this with Docker containers / templates and/or github app installs. What do you think about Sysbox? Also, I noticed you have an update in your comments saying that you can create a non root user but it says int hat link it is an experimental feature, have you had any problems with this as non root user?
Thanks pal. Amazing tutorial.
Great stuff!
Is there a better way to handle the Prisma Studio? It feels unideal to require prisma studio to install/build all app dependencies
also it looks like the caddy basicauth is getting stripped on save?
Any tutorial for setting up authentik with caddy in coolify?
Thanks CJ!! Is it possible to also teach us how to set up load balance on coolify?
Note on firewalls, and maybe this is a "duh." I'm building on my own internal computer, not a cloud-hosted VPS. Using split DNS so I can access internal with domain name and outside access. INTERNALLY, using UFW for firewall, does not actually block the ports that the Docker bits publish as open via IPTables. My internet router also has a firewall and does, of course, block access to any ports into the network that aren't specifically open. Meaning, *internally*, even with UFW only allowing 22, 80, and 443, I can still access 8000 any other port that a container publishes as open. *Externally*, only the ports I open are actually open to that machine. None of this is the fault of Coolify, but a know inconsistency with how UFW and Docker manage ports in IPTables. There are various workarounds/hacks if one is concerned about access behind the network/internet firewall.
Yeeeeeeees thank youuuu CJ ❤❤
Can I use IaC to automate this project creation, setup and deploy on Coolify?
This was great, thanks so much! In relation to firewall rules. As i set up wth a different VPS, the only way to configure the rules was through ssh. But after configuring 22, 443, 8000 is still accessible. Aby tips to deal with this? Still a newbie to terminal. Mind you we did use Cloudflare (with proxy disabled). Could that be the reason?
Did you use ufw? Try "ufw status" - might have all the rules but still be disabled. "ufw enable" enables all the rules (make sure that 22 is open before enabling, or you'll get kicked out when the firewall turns on).
@@syntaxfm Thank you for the speedy response. yes, ufw status is active, with port 22 open, still no dice:(
I'm a bit confused about the SSL part. You got a valid SSL certificate, where is the cert coming from? I didn't see any letsencrypt or any dns validation config. Is it a namecheap feature like cloudflare has?
It’s coming from let’s encrypt but that’s managed entirely by coolify
CJ, you are amazing.
I tried Coolify long time ago in 2022 and had some issues and tried it recently few months ago and had some issues immediately after installing it. Can't remember, but I'll give it another try soon because I actually want it to succeed and I actually want to use it mostly for Preview Deployments feature.
I think it's just too prone to breaking from version to version (yes yes I know it's in beta), but it also being dependent on a single person is also quite problematic in my opinion.
I think coolify has a bright future. Especially once it hits stable v4.
@@syntaxfm we'll see. I'm looking forward to it.