Get your own VPS with 2 vCPU Cores, 8 GB RAM and 100 GB NVMe Disk space for just $5.99 per month with the KVM2 plan from Hostinger. Get an extra 10% off with the code DREAMSOFCODE by visiting hostinger.com/dreamsofcode
@twitchizle15 сағат бұрын
Cheaper on hetzner
@lastink44416 сағат бұрын
I would absolutely love to see more content on VPS, self-hosting, etc. These days, lots of people need to know that non-Vercel-like options are not as scary as they might seem.
@TheLongBen9 сағат бұрын
I second this ☝️
@ShinSpiegel5 сағат бұрын
totally agree with you, there is a price for the convenience.
@tonyhart27444 сағат бұрын
@@ShinSpiegel there is so many open source vercel,heroku like alternative Yes its a maybe 1 time hassle to setup but after that ???? You have your own little *vercel* that basically do the same thing
@cody_codes_youtube18 сағат бұрын
I mean this in the most respectful way possible, since you have the perfect podcast voice, I just assumed your handwriting was perfect…
@cody_codes_youtube17 сағат бұрын
In other news, I like the flow and editing here. Not like retention jacking, but a steady flow of visual transitions that work with the content
@georgehelyar17 сағат бұрын
It's fine
@0.amonymous16 сағат бұрын
(note: I do think the didactic in this video is awesome, but...) Personally, I think him repeating the same 'voice tone loop' in literally every phrase is annoying. I mean he starts every phrase with a normal/high tone and ends the phrase with a lower voice tone. You don't need to use the same voice tone for every phrase to be didactic. Just a slightly annoyance that makes me not want to keep watching lol. but might me just me
@edism13 сағат бұрын
Word salad @@0.amonymous
@Innesb12 сағат бұрын
@@edism Just because you disagree with something, it doesn’t mean it’s word salad. What they wrote was perfectly clear, and I understood every word in a single read-through. Whether I agree with it not is irrelevant; they expressed their opinion clearly.
@RichardDavenport11 сағат бұрын
This is great. We do this at work in production with a cluster of just 5 manager nodes in the swarm. It does literally anything we need. The only thing you'll need to look out for is when there is a failover. You'll need to pass the `--with-registry-auth` flag when you deploy. This will will forward the auth to other nodes that don't have the authentication to pull from the private registry.
@achaabni15 сағат бұрын
man, you are the reason I started selling small apps deployed on VPS, thank you
@craig966814 сағат бұрын
Things have become quite complicated these days. A 4 line Makefile that ran rsync used to be enough for "deployment".
@classic-256 сағат бұрын
At this point I'm just tired😪
@inithinx19 сағат бұрын
I would love to do a whole production deployment with nix, especially flakes. it doesn't seem too unlikely to run a automation with github, that runs nixos rebuild using nixos-anywhere. this would mean we can completely ditch docker. Awesome video btw.
@vidal974718 сағат бұрын
Containers provide a sandbox that some people need.
@zomakaja18 сағат бұрын
devenv.nix solves this
@chrishoppner15014 сағат бұрын
@@vidal9747 So does systemd. During my 8 years of consulting with Nix, most of the time we just ran services with systemd sandboxing. Nix is super for building the docker images though. And if you _really_ want actual containers, there's nixos containers or systemd-nspawn. Proper Docker gives you nice tooling and fancy networking, which is quite nice if you're deploying a cluster of services that are meant to work together.
@Bozebo14 сағат бұрын
@@vidal9747 LXC xD
@lucasew9 сағат бұрын
There where a NIXPKGS_ALLOW_UNFREE in his Ctrl+R so it seems Nix content is probably being cooked now.
@hammer86_13 сағат бұрын
I did not know docker worked remotely. Thanks for that!
@guiorgy15 сағат бұрын
A note on creating Docker secrets, if you do that, don't forget to remove it from the shell history 😁
@bapireddy579015 сағат бұрын
This can be a good series of deploying on vps as full fledged alternative to railway/vercel flows.
@tyrellnelson17 сағат бұрын
That damn DATABASE_URL environment variable is always the most important yet some how its always the one that is forgotten
@EvanMildenberger5 сағат бұрын
Amazing! I've liked using Docker compose but have all the same devops challenges as you. I think I'll incorporate your Zenstats repo as a template for the CICD pipeline 👋
@gustanobreza12 сағат бұрын
🎉 Fantastic 👏 The better way to deploy applications on a VPS. Great video! BTW Greetings from Brazil 👋
@nitinnamdev56278 сағат бұрын
Very informative video, Thanks for sharing the insights of docker
@zstudioinc940919 сағат бұрын
Another video before I launch. Please do a whole entire thing for go lang. I wanna follow you set by step.
@deepraj11pop7 сағат бұрын
Lovely overview of docker stack! A small issue with 14:42. If you use `printf` to pipe the password to STDIN like that then it gets stored in your shell history in plaintext. This is precisely why docker does not allow you to pass the value as a command line argument. By piping, you have done exactly what they were trying to avoid. It would be helpful if this context is included and people are instructed to either type directly to STDIN or use the file approach (and delete right after).
@blixenkrone18 сағат бұрын
While I don't think it's entirely needed, at this point given the amount of management and config needed for docker stack, why not just go straight to k8s? It's not too difficult to get setup for simple apps and solves the same issues. I have no experience with docker stack, but just seems to me like it's a middle ground between running barebones docker and k8s.
@mptcz17 сағат бұрын
Yea i think youre spot on. Its between raw docker and k8s, but as an SRE dealing with too many k8s issues I am so excited to check out Docker stack. K8s and Openshift have their place but its too complex for most usecases and no viable alternative exists.. I need to get into the nitty gritty of it still though, but this had do much potential!
@blixenkrone16 сағат бұрын
@mptcz good point, my take lacks sufficient knowledge of docker stack, so can't say for sure. Would you rather do docker stack than k8s for smaller apps, is that what you're saying?
@JTWebMan14 сағат бұрын
I disagree there is 5 times more config for K8s then a simple docker compose file. You know it so go for it but it is also not always a needed complexity.
@cazador51714 сағат бұрын
the swarm way seems like requieres less learning for someone that already uses compose than going the k8s route directly. But I have to agree with you. At that point most people are better of using k8s, if only because is no more complex and its a good learning exercise if at some moment you need to work with a cluster (chances are it's gonna be a k8s one and not a swarm one), also there is a loot more tooling for k8s than for swarm. But I have to say, that if one wants to attempt a k8s install for a single machine, PLEASE do not consider for a second using some "vanilla" k8s flavor like kubeadm. It will be bloated and a pain to setup. People are way better using k3s (a CNCF project, so an "official" lightweight flavor) or k0s (from Mirantis, the company who bought Docker).
@andyvirus230013 сағат бұрын
Yeah I’m with you. IMO the middle point between docker and k8s is already docker compose, if you need more, it make more sense to go straight to k8s. Especially that you either already know k8s, or you are going to learn a skill that have a huge value on the current job market, and isn’t that much more complicated. I’ve yet to see any company use docker swarm
@JTWebMan14 сағат бұрын
Yes please do a cluster video!! Though I have already played around with it. It works works good all thought not as good as K8s.
@EvanVerworn18 сағат бұрын
Personally I've been a happy Dokku user since 2016. Nice to consolidate all my personal apps onto one VPS
@mrmakra-eo1kx2 сағат бұрын
damn this is everything all together in one video i knew parts of this setup but never tried to parse it all together and fill in the gaps, now i see how it looks like and damn it looks beautiful ❤
@dushmanta0513 сағат бұрын
Will try to implement this on my VPS this weekend 🤞
@sarabwt18 сағат бұрын
Am... you are using Swarm, not "stack".
@OfficialViper16 сағат бұрын
In the video he says that Docker stack utilises Docker swarm mode on the target machine
@ariseyhun208515 сағат бұрын
Definitely got the impression that the feature he's using is "docker stack". I googled it, and only got the docs for that command. Instead he's using docker swarm
@ShinSpiegel5 сағат бұрын
Like usual a nice video with a heavily dense packed amount of information. Thanks for sharing the video.
@kiyov0914 сағат бұрын
You’re absolutely killing it my friend. Keep these awesome videos coming! 🔥🔥🔥
@josephsebastian94316 сағат бұрын
Great video! Perhaps you can use multiple files (as overrides) in docker stack command to separate the stack specific features from compose. Similar feature in compose: docker compose -f compose.yaml -f compose.override.yaml ... Haven't tested this with stack, but will surely try
@ci_trex13 сағат бұрын
Nice, it would be great to have an example of swam clustering with multiple worker nodes and how it's possible to load balance the traffic on those nodes. For instance ensuring that in the case were we don't want to use the manager nodes as ingresses, tell docker to host an instance of traefik on each worker nodes. But since the docker api is only available on the manager nodes (in order for traefik to discover services), either you have to host traefik on manager nodes or create an internal network allowing the workers to call the docker api on managers nodes. Or another opinion is to have an external load balancer but this require to map the ports to a host name or having a reverse proxy on each node to handle the domain name routing. I say this because manager nodes should not have a lot of resources as they "manage" and can be out of resources quickly if you have to handle a lot of traffic and also a 3 manager cluster can only provide the loss of one node, but you can loose a lot of worker, as the manager will reschedule the services. less spof mean more sleep !
@arinjii574517 сағат бұрын
More of these vps vids please
@rtorcato16 сағат бұрын
wouldn't it just be easier to setup portainer agent on the vps and manage it with your local portainer instance
@RealEstate3D11 сағат бұрын
@@rtorcato I won’t ever go back from portainer.
@fronix506014 сағат бұрын
Unless you are doing enterprise large scale deployments, Kubernetes is 9/10 times overkill. Swarm is a lot easier to use, deploy and manage.
@Serizon_18 сағат бұрын
I seriously like dockploy and coolify and dokku with podman and potentially runc if you want very low overhead.
@sebastianxx368711 сағат бұрын
awesome content/ level of details and video quality
@TarasShabatin7 сағат бұрын
You have to try k8s 😊
@jin608619 сағат бұрын
I 100% agree! It almost feels like magic!
@pedestrianlove18 сағат бұрын
Wow, so docker swarm is actually being used in production? (nice content btw)
@johannsix21612 сағат бұрын
Really nice explanation and easy to understand. I was thinking why you don't use NixOs for a server. It would be easy to create a new VPS for another app with the config.
@ghooly1217 сағат бұрын
This is such a time saver. Thanks!
@winken26664 сағат бұрын
I opted for docker swarm instead of kubernetes. It's not a perfect setup but very reasonable for my needs.
@petrpechkurov309528 минут бұрын
Hi! Thanks for the cool video! Really enjoyed it! I have one question regarding secrets. You mentioned that it's not really secure to have them on your remote as files. But can't you exec into a running container and then cat /run/secrets/your_secret? What am I missing here? Thanks!
@fifty673716 сағат бұрын
thank you very much for this tutorial, it came in the right time
@MrOfigenko4 сағат бұрын
so mind boggling when you're watching a serious educational video looking to integrate new practices into your workflow only to be abruptly stopped by this 2:59
@Tresla15 сағат бұрын
Next video: why I set up my own Kubernetes stack on my cloud VPS 😄
@chukwuemekaajima837313 сағат бұрын
Nice video, I have always tried to avoid docker swarm but I guess this is different. I noticed you didn't mention anything about scaling, How does this scale?
@harsh_979739 минут бұрын
Any tutorial on how to Customizing terminal look like yours? It's looks minimalist yet statisfiying.
@rodemka18 сағат бұрын
Your napkin magic is just something! 😜
@TheLongBen9 сағат бұрын
Top quality content as usual 😊
@ivanmaglica26428 минут бұрын
This means no need to deal with Kubernetes, right? What scenarios are there that kubernetes would still be better for?
@FlakerimIsmani14 сағат бұрын
Why not Kamal man?
@KaupoParmas17 сағат бұрын
Great and informative, love it ❤
@whatgpt-md4ri2 сағат бұрын
you don't need to use stack for CI/CD integration - you can stay on docker compose, and use github actions to redeploy docker image. You do experience downtime doing like that.
@RazoBeckett.16 сағат бұрын
This was a amazing video i watched today!
@Fullflexno18 сағат бұрын
Supercool video -> off to use your coupon code. Cheers from Norway
@dimitrioskoulartsas618411 сағат бұрын
On default Docker configuration, adding a user to the "docker" group is the same as being root. One can run the following to get root privileges on the host: docker run --rm -it --privileged --pid=host debian:12 nsenter -a -t1 bash Let me break it down: docker run = run a new container --rm = delete the container after exit -it = attach to container to the current tty --privileged = give all capabilities, supported by the kernel, to the container --pid=host = use host's pid namespace. normally, Docker containers cannot see the host's processes debian:12 = use the Debian 12 image nsenter = run nsenter in the container, to enter a different namespace -a = enter all namespaces of the target -t1 = set the target to be the process with PID 1, usually systemd or /sbin/init bash = open a bash shell after entering the namespace(s)
@Mankepanke6 минут бұрын
Came to the comments to say the same thing. That user is like a passwordless sudo...
@Mankepanke4 минут бұрын
Another way is to run any container and mount the filesystem, then you can make any changes you want, including adding a setuid binary owned by root to then escalate outside of Docker, changing sudoers to allow anything to the deployment user, and adding malware to real user's startup scripts.
@avalagum795713 сағат бұрын
Is it similar to what kubernetes is providing?
@MelroyvandenBerg10 сағат бұрын
It's worse what Kubernetes provides.
@42-jj11 сағат бұрын
Great video
@RayZ3R06915 сағат бұрын
Zen browser user, W
@FedericoDanielAnastasi-b9w12 сағат бұрын
I would love to see alternatives to yaml files. I don't like significant tabs
@kevharv7 сағат бұрын
This seems like something between Docker Compose and K3s. With that being said, I don’t see the advantage of this over a proper Kubernetes environment, especially if you’re going to scale up and out.
@loudcoringa593518 сағат бұрын
nice content bro
@graphiclife5416Сағат бұрын
Coolify FTW
@sweetboss15119 сағат бұрын
Why are there no captions
@fatcat5009 сағат бұрын
If I use docker swarm with just one node, why would I need replicas? Or load balancing?
@Mankepanke7 минут бұрын
Maybe your app containers themselves are single threaded and you want to scale to using multiple cores
@MultimediaCizzy19 сағат бұрын
At this point i think it's worth to dig into a k3s setup instead since it's much more tailored to do what you want. But your approach is also interesting :)
@hendrywilliam17 сағат бұрын
Why do you prefer k3s over minik8s? Any specific reason?
@MultimediaCizzy18 минут бұрын
@@hendrywilliam just personal preference and experience with it :)
@mattcargile11 сағат бұрын
Dang. You don’t have a password on your private key?! Or was it already in the agent?
@CraigBurden114 сағат бұрын
I see that hyprland install... Why don't you tell us about that!
@avramukk10 сағат бұрын
good
@ariseyhun208515 сағат бұрын
I feel a little sorry for the number of people who will watch this video and think docker swarm is the best way to deploy to a vps. Kubernetes and k3s is infinitely better than docker swarm
@nicholaskinzel390814 сағат бұрын
And a ton more complex. Just because something has a more varied feature set doesn't make it a better choice for all circumstances.
@JTWebMan14 сағат бұрын
The point is there are tradeoffs which he talked about in previous videos. FYI Kubernetes and k3s isn't perfect for everything either. There is always tradeoffs. This can get you far though especially for most engineers side projects and even those 5 man startups.
@StingSting8446 сағат бұрын
And infinitely more complex
@jit-r5b4 сағат бұрын
I love K8s but I cannot use them on a single 5usd vps (that I recommend getting from Hetzner). I've deploying with compose for years now and on a small scale it's a breeze :)
@stephensumpter531118 сағат бұрын
How long until we discover microk8s or just Kubernetes? 😂
@jameswithdrwho17 сағат бұрын
Kubernetes is actually much more of a pain. Docker swarm is super simple for basic deployments
@Danielo5154 сағат бұрын
Sounds too good ro be true 😂
@vng-alien8 сағат бұрын
Kubernetes. (we all know u dont need it but yuh do)
@MW-mn1el16 сағат бұрын
Why not k3d/k3s
@dungeon4971Сағат бұрын
why not k8s at this point
@MankepankeМинут бұрын
"If you are annoyed by having to walk to the store, why not try biking? Here's how to use a bicycle..." "At that point, why not just use a large truck that needs a dedicated refueling station and a team of mechanics?"
@AidanCanavan-v5i18 сағат бұрын
Just use k8s
@KlausMingo6 сағат бұрын
Why are you wearing headphones?
@whynot996315 сағат бұрын
I mean, there are github actions that were made just for this 🤷🏻♂️
@PiotrKosmowski14 сағат бұрын
Kubernetes?
@manojos411418 сағат бұрын
why not k8s?
@danko95bgd18 сағат бұрын
it requires more resources for simpler setups
@thatrand0mnpc18 сағат бұрын
Docker swarm is like k8s at home
@MankepankeМинут бұрын
Why not run your own power plant and employ a small town to maintain it?
@phoneywheeze7 сағат бұрын
just use vercel lil bro
@cornjulio403313 сағат бұрын
Are you a native speaker? I sense 10% German.
@PierreCarette12 сағат бұрын
k8s
@trojanhorses47605 сағат бұрын
Just my 2 cents - I am pretty sure that you do not have such "prod" vms as ufw will break docker unless you do some tweaks or use docker-ufw, additionally swarm takes a lot more resources from a system so this breaks the whole idea of just using a small vm, and a final point - this wont work for multiple compose setup as most "prod" environments use compose, in order to allow seamless restarts behind the reverse proxy. Maybe stop doing hosting promos and instead do real meaningful guides.
@elieobeid7717 сағат бұрын
there are many ways of doing deployments and this is the most complex one.
@fahimferdous164119 сағат бұрын
First comment :>>
@yugalkhanal696719 сағат бұрын
yosif coming for you
@a1mer0619 сағат бұрын
@@yugalkhanal6967 a1mer comment before yosif no way
@fahimferdous164119 сағат бұрын
They can't catch me, am too faasstttt 🏎️ ⚡
@mikelinsi19 сағат бұрын
i dont like yaml files.... xml is so more easy, there is mostly a definishen for all the tags... for free without any developer editor plugins to know that stuff..
@mitchellmnr19 сағат бұрын
You can do yaml in vim no issues ... no need to use an editor or plugins for them. xml is just so much more text, yaml is cleaner .... took me a while to like it over json :P But you can still use portainer if you want ... works with stack
@Gornius18 сағат бұрын
Yaml is far more readable than XML. Just the fact that you need to close tags is just awful. Not to mention there is no easy way to make serializer/deserializer due to the fact that you can both have tag attributes and children having the same role.