← Back
Tech Hut January 12, 2026 28m

I might switch from Proxmox to MicroCloud...

Read full transcript 22 segments
  1. Hello everybody in this one we're going Hello everybody in this one we're going to be talking about something pretty to be talking about something pretty to be talking about something pretty cool and that is Canonical's microcloud. cool and that is Canonical's microcloud. cool and that is Canonical's microcloud. A straightforward, lightweight, and A straightforward, lightweight, and A straightforward, lightweight, and featureful way to go ahead and manage featureful way to go ahead and manage featureful way to go ahead and manage your Linux containers, virtual machines, your Linux containers, virtual machines, your Linux containers, virtual machines, and build your very own cloud. I will and build your very own cloud. I will and build your very own cloud. I will note I'm partnered up with Canonical to note I'm partnered up with Canonical to note I'm partnered up with Canonical to make this video. They reviewed it for make this video. They reviewed it for make this video. They reviewed it for accuracy and it's been a privilege to accuracy and it's been a privilege to accuracy and it's been a privilege to work directly with them. Microcloud is a work directly with them. Microcloud is a work directly with them. Microcloud is a service that's pretty easy to deploy on service that's pretty easy to deploy on service that's pretty easy to deploy on just about any Linux distribution with a just about any Linux distribution with a just about any Linux distribution with a combination of a couple different snap combination of a couple different snap combination of a couple different snap packages and at first glance at least packages and at first glance at least packages and at first glance at least when you sign into their web interface when you sign into their web interface when you sign into their web interface it is very familiar to something like it is very familiar to something like it is very familiar to something like Proxmox. If you use Proxmox you're Proxmox. If you use Proxmox you're Proxmox. If you use Proxmox you're probably going to be pretty comfortable probably going to be pretty comfortable probably going to be pretty comfortable diving into something like microcloud diving into something like microcloud diving into something like microcloud and the kind of learning curve for that and the kind of learning curve for that and the kind of learning curve for that is going to be much lower for you. A is going to be much lower for you. A is going to be much lower for you. A benefit versus something like Proxmox is benefit versus something like Proxmox is benefit versus something like Proxmox is you can deploy on any existing you can deploy on any existing you can deploy on any existing infrastructure that you already have and infrastructure that you already have and infrastructure that you already have and start implementing it now without having start implementing it now without having start implementing it now without having to set up a whole dedicated Proxmox to set up a whole dedicated Proxmox to set up a whole dedicated Proxmox machine. But we're going to dive more machine. But we're going to dive more machine. But we're going to dive more into that into my overall thoughts and into that into my overall thoughts and into that into my overall thoughts and conclusions at the end of this video. So conclusions at the end of this video. So conclusions at the end of this video. So microcloud is based on a couple microcloud is based on a couple microcloud is based on a couple different components. First we have LXD different components. First we have LXD different components. First we have LXD which is Canonical's kind of own spin on which is Canonical's kind of own spin on which is Canonical's kind of own spin on LXC which these are just really LXC which these are just really LXC which these are just really lightweight kind of Linux containers lightweight kind of Linux containers lightweight kind of Linux containers that borrow the kernel resources from that borrow the kernel resources from that borrow the kernel resources from your host operating system making them your host operating system making them your host operating system making them incredibly efficient on resources. For incredibly efficient on resources. For incredibly efficient on resources. For the storage it uses Ceph and as we dive the storage it uses Ceph and as we dive the storage it uses Ceph and as we dive into the actual tutorial section it is into the actual tutorial section it is into the actual tutorial section it is pretty cool and easy to set up as you pretty cool and easy to set up as you pretty cool and easy to set up as you can set up localized storage volumes for can set up localized storage volumes for can set up localized storage volumes for the specific machine or if you actually the specific machine or if you actually the specific machine or if you actually create a microcloud cluster you can set create a microcloud cluster you can set create a microcloud cluster you can set up an actual volume that's replicated up an actual volume that's replicated up an actual volume that's replicated across all the different clusters and across all the different clusters and across all the different clusters and then there's OVN which manages the

  2. then there's OVN which manages the then there's OVN which manages the networking and overlays. Also does networking and overlays. Also does networking and overlays. Also does security groups, DHCP, and other security groups, DHCP, and other security groups, DHCP, and other networking services making it highly networking services making it highly networking services making it highly scalable. I'll link to the page here scalable. I'll link to the page here scalable. I'll link to the page here that I'm skimming this information off that I'm skimming this information off that I'm skimming this information off of. You can see some of the features of. You can see some of the features of. You can see some of the features here. It's easy to replicate at scale, here. It's easy to replicate at scale, here. It's easy to replicate at scale, remote authentication, and fine-grained remote authentication, and fine-grained remote authentication, and fine-grained access controls and of course it is access controls and of course it is access controls and of course it is completely open source. Now as we dive completely open source. Now as we dive completely open source. Now as we dive into this video I've already recorded into this video I've already recorded into this video I've already recorded the whole middle part of this section. the whole middle part of this section. the whole middle part of this section. First we're going to get into actually First we're going to get into actually First we're going to get into actually setting it up and building a little setting it up and building a little setting it up and building a little cluster with this test environment I put cluster with this test environment I put cluster with this test environment I put together with some virtual machines. So together with some virtual machines. So together with some virtual machines. So we're going to set that up, dive into we're going to set that up, dive into we're going to set that up, dive into the CLI, and actually show you how to the CLI, and actually show you how to the CLI, and actually show you how to interact with it that way. And then on interact with it that way. And then on interact with it that way. And then on the latter half we're going to go into the latter half we're going to go into the latter half we're going to go into the web interface and kind of show you the web interface and kind of show you the web interface and kind of show you all the same features that you can all the same features that you can all the same features that you can access there. And do make sure you access there. And do make sure you access there. And do make sure you subscribe because in an upcoming video subscribe because in an upcoming video subscribe because in an upcoming video what I got is three of these little what I got is three of these little what I got is three of these little Zimaboard here, the newer Zimaboard 2, Zimaboard here, the newer Zimaboard 2, Zimaboard here, the newer Zimaboard 2, and we're going to create our own and we're going to create our own and we're going to create our own clustered microcloud environment using clustered microcloud environment using clustered microcloud environment using these guys. In that one we're going to these guys. In that one we're going to these guys. In that one we're going to try to get like hardware transcoding and try to get like hardware transcoding and try to get like hardware transcoding and a bunch of stuff that you'd want to work a bunch of stuff that you'd want to work a bunch of stuff that you'd want to work to work with these. But for this one to work with these. But for this one to work with these. But for this one we're going to dive into kind of the we're going to dive into kind of the we're going to dive into kind of the general setup, how to use it, and a general setup, how to use it, and a general setup, how to use it, and a little bit of use case stuff at the end.

  3. little bit of use case stuff at the end. little bit of use case stuff at the end. All right. Now for this section of the All right. Now for this section of the All right. Now for this section of the video we're actually going to get this video we're actually going to get this video we're actually going to get this set up in this kind of test environment set up in this kind of test environment set up in this kind of test environment that I built here. We have three that I built here. We have three that I built here. We have three different machines. This is going to be different machines. This is going to be different machines. This is going to be micro one, micro two, and micro three. micro one, micro two, and micro three. micro one, micro two, and micro three. Of course they're all running Ubuntu and Of course they're all running Ubuntu and Of course they're all running Ubuntu and they all have just about the same specs they all have just about the same specs they all have just about the same specs and same hardware. So you can see 4 gigs and same hardware. So you can see 4 gigs and same hardware. So you can see 4 gigs of RAM, 4 cores, and they all have the of RAM, 4 cores, and they all have the of RAM, 4 cores, and they all have the same kind of disk set up here. So we same kind of disk set up here. So we same kind of disk set up here. So we have our root drive. Of course it's 32 have our root drive. Of course it's 32 have our root drive. Of course it's 32 gigs. And then we have some additional gigs. And then we have some additional gigs. And then we have some additional drives. So we have an additional 16 gig drives. So we have an additional 16 gig drives. So we have an additional 16 gig disk and an additional 128 gig disk. For disk and an additional 128 gig disk. For disk and an additional 128 gig disk. For storage you are going to need an storage you are going to need an storage you are going to need an additional disk. The reason I have two additional disk. The reason I have two additional disk. The reason I have two of them is because the first one is of them is because the first one is of them is because the first one is going to be specifically for local going to be specifically for local going to be specifically for local storage on this one node and this 128 storage on this one node and this 128 storage on this one node and this 128 gig disk I'm going to set up as gig disk I'm going to set up as gig disk I'm going to set up as distributive storage. So all three nodes distributive storage. So all three nodes distributive storage. So all three nodes or the entire cluster can access that or the entire cluster can access that or the entire cluster can access that storage. Now additionally another thing storage. Now additionally another thing storage. Now additionally another thing to note here is going to be the to note here is going to be the to note here is going to be the networking. So if I do IPA these networking. So if I do IPA these networking. So if I do IPA these machines only have one networking machines only have one networking machines only have one networking interface. You can see that right here.

  4. interface. You can see that right here. interface. You can see that right here. So what I had to do is I had to add an So what I had to do is I had to add an So what I had to do is I had to add an additional bridge interface which you additional bridge interface which you additional bridge interface which you can see here and I just did this by can see here and I just did this by can see here and I just did this by editing a netplan file adding the bridge editing a netplan file adding the bridge editing a netplan file adding the bridge right here. So if you only have one right here. So if you only have one right here. So if you only have one interface you may need to set up a interface you may need to set up a interface you may need to set up a bridge to get this to work properly. If bridge to get this to work properly. If bridge to get this to work properly. If for example for example for example you are running something such as this you are running something such as this you are running something such as this Zimaboard here that has two interfaces Zimaboard here that has two interfaces Zimaboard here that has two interfaces you're going to be good to go. That's you're going to be good to go. That's you're going to be good to go. That's going to be required for distributive going to be required for distributive going to be required for distributive networking and you can't run microcloud networking and you can't run microcloud networking and you can't run microcloud directly on the interface that's already directly on the interface that's already directly on the interface that's already being used for everything. Additionally being used for everything. Additionally being used for everything. Additionally this is going to be running with snap. this is going to be running with snap. this is going to be running with snap. So if I do a little snap list here you So if I do a little snap list here you So if I do a little snap list here you can see I have no snaps installed and to can see I have no snaps installed and to can see I have no snaps installed and to fix that and to get all the dependencies fix that and to get all the dependencies fix that and to get all the dependencies we will simply run a sudo snap we will simply run a sudo snap we will simply run a sudo snap install install install and we're going to need four packages and we're going to need four packages and we're going to need four packages here. We're going to need LXD, here. We're going to need LXD, here. We're going to need LXD, microceph, and then no not and microOVN microceph, and then no not and microOVN microceph, and then no not and microOVN and then of course microcloud. and then of course microcloud. and then of course microcloud. And I'm just going to grab this and And I'm just going to grab this and And I'm just going to grab this and install it on all three machines I'm install it on all three machines I'm install it on all three machines I'm going to be doing this on. Of course you going to be doing this on. Of course you going to be doing this on. Of course you don't have to do this on three machines.

  5. don't have to do this on three machines. don't have to do this on three machines. You can set this in a non-clustered You can set this in a non-clustered You can set this in a non-clustered single node and scale up from there as single node and scale up from there as single node and scale up from there as it's pretty easy to go ahead and add it's pretty easy to go ahead and add it's pretty easy to go ahead and add other machines to a cluster. So let's other machines to a cluster. So let's other machines to a cluster. So let's install that and then head on over here install that and then head on over here install that and then head on over here and just drop this into all all of the and just drop this into all all of the and just drop this into all all of the machines. So on this last one we can see machines. So on this last one we can see machines. So on this last one we can see all successes. Everything's installed all successes. Everything's installed all successes. Everything's installed and everything is installed. So the and everything is installed. So the and everything is installed. So the process to begin actually setting this process to begin actually setting this process to begin actually setting this up is pretty easy. We're just going to up is pretty easy. We're just going to up is pretty easy. We're just going to do a sudo microcloud and init. So we can do a sudo microcloud and init. So we can do a sudo microcloud and init. So we can see we're waiting for the services to see we're waiting for the services to see we're waiting for the services to start and here is where it's going to start and here is where it's going to start and here is where it's going to ask if we are going to have more than ask if we are going to have more than ask if we are going to have more than one cluster member. I'm going to say one cluster member. I'm going to say one cluster member. I'm going to say yes. If you're only doing this on one yes. If you're only doing this on one yes. If you're only doing this on one machine you would type in no here but I machine you would type in no here but I machine you would type in no here but I am going to go with the default. Now am going to go with the default. Now am going to go with the default. Now here since I created a bridge because I here since I created a bridge because I here since I created a bridge because I only have one interface it's going to only have one interface it's going to only have one interface it's going to list these bridge networks. So I'm just list these bridge networks. So I'm just list these bridge networks. So I'm just going to select this first one here by going to select this first one here by going to select this first one here by hitting the spacebar and then hitting hitting the spacebar and then hitting hitting the spacebar and then hitting enter. Now we're going to have some enter. Now we're going to have some enter. Now we're going to have some machines join our network with the machines join our network with the machines join our network with the microcloud join command. This is the microcloud join command. This is the microcloud join command. This is the passphrase we're going to use. So I'm passphrase we're going to use. So I'm passphrase we're going to use. So I'm just going to copy this passphrase, head just going to copy this passphrase, head just going to copy this passphrase, head over to our first machine, and then run over to our first machine, and then run over to our first machine, and then run a microcloud a microcloud a microcloud join just like that. While those join just like that. While those join just like that. While those services start I'll head over to this services start I'll head over to this services start I'll head over to this machine and do a microcloud machine and do a microcloud machine and do a microcloud join. Head back over here. This now now join. Head back over here. This now now join. Head back over here. This now now select the interface. Again I'm going to select the interface. Again I'm going to select the interface. Again I'm going to go with my bridged interface on IPv4 and go with my bridged interface on IPv4 and go with my bridged interface on IPv4 and then paste in that passphrase. When I then paste in that passphrase. When I then paste in that passphrase. When I hit enter you can see it found the hit enter you can see it found the hit enter you can see it found the system and I'll need to select it over system and I'll need to select it over system and I'll need to select it over here to join the cluster which you can here to join the cluster which you can here to join the cluster which you can see. But I'm going to join this

  6. see. But I'm going to join this see. But I'm going to join this third machine here by picking a network third machine here by picking a network third machine here by picking a network pasting in the passphrase. And now if I pasting in the passphrase. And now if I pasting in the passphrase. And now if I head over here we can see both of these head over here we can see both of these head over here we can see both of these machines. So I'm going to select both of machines. So I'm going to select both of machines. So I'm going to select both of them and hit enter and look at that. We them and hit enter and look at that. We them and hit enter and look at that. We have all three systems selected. I can have all three systems selected. I can have all three systems selected. I can see their IP addresses, their host see their IP addresses, their host see their IP addresses, their host names, and now we're going to set up names, and now we're going to set up names, and now we're going to set up storage. The first one is local storage. storage. The first one is local storage. storage. The first one is local storage. If you only have one extra storage If you only have one extra storage If you only have one extra storage device connected to your cluster it's device connected to your cluster it's device connected to your cluster it's probably a better idea to go with probably a better idea to go with probably a better idea to go with distributive storage. So in that case distributive storage. So in that case distributive storage. So in that case you'd say no here but since I'm setting you'd say no here but since I'm setting you'd say no here but since I'm setting up both local and distributive storage I up both local and distributive storage I up both local and distributive storage I am going to say yes. Then it's going to am going to say yes. Then it's going to am going to say yes. Then it's going to list all the hard disks. I want all list all the hard disks. I want all list all the hard disks. I want all these individual 16 gig ones to be the these individual 16 gig ones to be the these individual 16 gig ones to be the local storages for each of the three local storages for each of the three local storages for each of the three machines. So I'll select them, hit machines. So I'll select them, hit machines. So I'll select them, hit enter, and now I'm going to wipe them. enter, and now I'm going to wipe them. enter, and now I'm going to wipe them. So select the same three, hit enter, and So select the same three, hit enter, and So select the same three, hit enter, and now it's asking if I want that now it's asking if I want that now it's asking if I want that distributive storage. I am going to say distributive storage. I am going to say distributive storage. I am going to say yes. Since we used the other ones these yes. Since we used the other ones these yes. Since we used the other ones these 128 gig disks are all we have to select. 128 gig disks are all we have to select. 128 gig disks are all we have to select. So let's hit enter, So let's hit enter, So let's hit enter, wipe them, and then we'll have the wipe them, and then we'll have the wipe them, and then we'll have the option to encrypt the disks. Generally option to encrypt the disks. Generally option to encrypt the disks. Generally recommend doing that but I'm going to go recommend doing that but I'm going to go recommend doing that but I'm going to go with no for now. Now would we like to with no for now. Now would we like to with no for now. Now would we like to set up remote storage? Sure, let's do set up remote storage? Sure, let's do set up remote storage? Sure, let's do it. And what IP or subnet are we going it. And what IP or subnet are we going it. And what IP or subnet are we going to use? I'm going to use my base subnet to use? I'm going to use my base subnet to use? I'm going to use my base subnet and I'll do the same thing for public and I'll do the same thing for public and I'll do the same thing for public traffic. We're going to configure traffic. We're going to configure traffic. We're going to configure distributive networking and for this I'm distributive networking and for this I'm distributive networking and for this I'm going to select all my bridge going to select all my bridge going to select all my bridge interfaces. Again depending on how you interfaces. Again depending on how you interfaces. Again depending on how you have your network, your specific have your network, your specific have your network, your specific hardware, this may be a little bit hardware, this may be a little bit hardware, this may be a little bit different and I will link to the different and I will link to the different and I will link to the documentation down below. So let's hit

  7. documentation down below. So let's hit documentation down below. So let's hit enter. Now for the IPv4 gateway again enter. Now for the IPv4 gateway again enter. Now for the IPv4 gateway again this is going to be different depending this is going to be different depending this is going to be different depending on your actual IP address schemes but on your actual IP address schemes but on your actual IP address schemes but for me it is going to be 10.173.10.1 with the mask of 24. So let's hit enter with the mask of 24. So let's hit enter and now we're going to have an address and now we're going to have an address and now we're going to have an address range that we're going to use in this range that we're going to use in this range that we're going to use in this uplink network. Do note right here you uplink network. Do note right here you uplink network. Do note right here you cannot have or you cannot select a range cannot have or you cannot select a range cannot have or you cannot select a range in which the host machines or nodes have in which the host machines or nodes have in which the host machines or nodes have the same IP address. In this case I have the same IP address. In this case I have the same IP address. In this case I have machines with nine or 191, two, and machines with nine or 191, two, and machines with nine or 191, two, and three. So for example I would do a range three. So for example I would do a range three. So for example I would do a range something like something like something like 10.173.10. 200 and then the last IP might be 10. 200 and then the last IP might be 10. 173.10.240. So I'm giving it a range of 40 different So I'm giving it a range of 40 different [snorts] addresses there. So hit enter. [snorts] addresses there. So hit enter. [snorts] addresses there. So hit enter. This is IPv6. I'm not really using it in This is IPv6. I'm not really using it in This is IPv6. I'm not really using it in my network right now. So I just hit my network right now. So I just hit my network right now. So I just hit enter. And this is the DNS for the enter. And this is the DNS for the enter. And this is the DNS for the distributive network. Again it's just distributive network. Again it's just distributive network. Again it's just going to go with that default. Hit going to go with that default. Hit going to go with that default. Hit enter. And now do we want to set up an enter. And now do we want to set up an enter. And now do we want to set up an OVN underlay network? That's a slightly OVN underlay network? That's a slightly OVN underlay network? That's a slightly above my skill set at the moment. So I'm above my skill set at the moment. So I'm above my skill set at the moment. So I'm going to not set that up for now. And going to not set that up for now. And going to not set that up for now. And there we go. The services are there we go. The services are there we go. The services are initializing. You can see the individual initializing. You can see the individual initializing. You can see the individual elements are getting ready. Microcloud, elements are getting ready. Microcloud, elements are getting ready. Microcloud, OVN, Ceph, and LXD. It's getting the OVN, Ceph, and LXD. It's getting the OVN, Ceph, and LXD. It's getting the cluster information and now the peers cluster information and now the peers cluster information and now the peers are actually beginning to join. So we are actually beginning to join. So we are actually beginning to join. So we have Ubuntu micro two and then Ubuntu

  8. have Ubuntu micro two and then Ubuntu have Ubuntu micro two and then Ubuntu micro three join the cluster. And would micro three join the cluster. And would micro three join the cluster. And would you look at that? Microcloud is ready. you look at that? Microcloud is ready. you look at that? Microcloud is ready. Now right now we can technically go into Now right now we can technically go into Now right now we can technically go into a web interface and manage everything a web interface and manage everything a web interface and manage everything from there. But before I show you that I from there. But before I show you that I from there. But before I show you that I do want to kind of run through some of do want to kind of run through some of do want to kind of run through some of the basic commands so you just have a the basic commands so you just have a the basic commands so you just have a familiar with how to use some of the CLI familiar with how to use some of the CLI familiar with how to use some of the CLI interface stuff. And one of the first interface stuff. And one of the first interface stuff. And one of the first things that we could do is say LXC things that we could do is say LXC things that we could do is say LXC cluster list command. cluster list command. cluster list command. So if we list the clusters out and make So if we list the clusters out and make So if we list the clusters out and make this a little bit bigger just so it this a little bit bigger just so it this a little bit bigger just so it looks better. We have the name, the URL looks better. We have the name, the URL looks better. We have the name, the URL which is how we would access that web which is how we would access that web which is how we would access that web interface. We have the roles, interface. We have the roles, interface. We have the roles, architecture, online status, and a bunch architecture, online status, and a bunch architecture, online status, and a bunch more stuff. So if I put that back there. more stuff. So if I put that back there. more stuff. So if I put that back there. There we go. Additionally we can list There we go. Additionally we can list There we go. Additionally we can list our storages. So if I do LXC storage our storages. So if I do LXC storage our storages. So if I do LXC storage list we can see we have local storage list we can see we have local storage list we can see we have local storage and then we have our remote storage and then we have our remote storage and then we have our remote storage there. So, if you only set up one, you there. So, if you only set up one, you there. So, if you only set up one, you should only see one of those options. If should only see one of those options. If should only see one of those options. If I run a sudo ceph I run a sudo ceph I run a sudo ceph status command, we can see the actual status command, we can see the actual status command, we can see the actual health of ceph and everything that it's health of ceph and everything that it's health of ceph and everything that it's doing. And something you'll probably end doing. And something you'll probably end doing. And something you'll probably end up using a lot is lxc list. If I do up using a lot is lxc list. If I do up using a lot is lxc list. If I do that, it'll list all your actual Linux that, it'll list all your actual Linux that, it'll list all your actual Linux containers that you have running. And containers that you have running. And containers that you have running. And you can see we don't have any. So, you can see we don't have any. So, you can see we don't have any. So, before we get again dive into the actual before we get again dive into the actual before we get again dive into the actual web UI, I'm going to show you how to web UI, I'm going to show you how to web UI, I'm going to show you how to create something or one of those via the create something or one of those via the create something or one of those via the terminal here. And let's say we just terminal here. And let's say we just terminal here. And let's say we just wanted to spin up a simple like nginx wanted to spin up a simple like nginx wanted to spin up a simple like nginx web server and use Ubuntu as the base web server and use Ubuntu as the base web server and use Ubuntu as the base operating system. All we would do is do operating system. All we would do is do operating system. All we would do is do an lxc launch. We would set this as

  9. an lxc launch. We would set this as an lxc launch. We would set this as Ubuntu and let's go with the latest LTS, Ubuntu and let's go with the latest LTS, Ubuntu and let's go with the latest LTS, which is 2004, which is 2004, which is 2004, and then we could call it something like and then we could call it something like and then we could call it something like web server. Now, there is a lot more web server. Now, there is a lot more web server. Now, there is a lot more variables and things that you can add to variables and things that you can add to variables and things that you can add to this. For example, one of them, if I this. For example, one of them, if I this. For example, one of them, if I wanted to spin it up on a wanted to spin it up on a wanted to spin it up on a specific actual node, so we're in micro specific actual node, so we're in micro specific actual node, so we're in micro one right now. If I was on micro one, I one right now. If I was on micro one, I one right now. If I was on micro one, I wanted to spin this up on micro two, all wanted to spin this up on micro two, all wanted to spin this up on micro two, all I would do is add a target. Oh, my bad, I would do is add a target. Oh, my bad, I would do is add a target. Oh, my bad, I hit tab. But then I could set the I hit tab. But then I could set the I hit tab. But then I could set the target as Ubuntu-micro two, micro two, target as Ubuntu-micro two, micro two, target as Ubuntu-micro two, micro two, and then hit enter and then it's going and then hit enter and then it's going and then hit enter and then it's going to go ahead and launch that web server to go ahead and launch that web server to go ahead and launch that web server container. It'll take it just a second container. It'll take it just a second container. It'll take it just a second as to retrieve an image, build the file as to retrieve an image, build the file as to retrieve an image, build the file system and all that. And this is very system and all that. And this is very system and all that. And this is very similar to like a LXCs on like Proxmox. similar to like a LXCs on like Proxmox. similar to like a LXCs on like Proxmox. It's just Linux containers all around It's just Linux containers all around It's just Linux containers all around where it uses the actual underlying root where it uses the actual underlying root where it uses the actual underlying root system kernel. So, it's a very It takes system kernel. So, it's a very It takes system kernel. So, it's a very It takes minimal resources to actually run a minimal resources to actually run a minimal resources to actually run a Linux container, as opposed to something Linux container, as opposed to something Linux container, as opposed to something like a virtual machine, which you can do like a virtual machine, which you can do like a virtual machine, which you can do on here, in which it has its own on here, in which it has its own on here, in which it has its own separate kernel and all that, so it separate kernel and all that, so it separate kernel and all that, so it takes a lot more like RAM and CPU. But takes a lot more like RAM and CPU. But takes a lot more like RAM and CPU. But look at that, we we launched it. So, now look at that, we we launched it. So, now look at that, we we launched it. So, now if I run lxc list once again, you can if I run lxc list once again, you can if I run lxc list once again, you can see here that the web server is running.

  10. see here that the web server is running. see here that the web server is running. We have the IP for that. It's a We have the IP for that. It's a We have the IP for that. It's a container. No snapshots and the location container. No snapshots and the location container. No snapshots and the location is on micro two. Now, let's say I want is on micro two. Now, let's say I want is on micro two. Now, let's say I want to actually get into this container to to actually get into this container to to actually get into this container to start doing some work, building some start doing some work, building some start doing some work, building some HTML files, whatever it may be. HTML files, whatever it may be. HTML files, whatever it may be. All you need to do is type lxc exec to All you need to do is type lxc exec to All you need to do is type lxc exec to execute into it. We're going to execute execute into it. We're going to execute execute into it. We're going to execute into the web server using bash, just into the web server using bash, just into the web server using bash, just like that. Hit enter and there we are. like that. Hit enter and there we are. like that. Hit enter and there we are. We're now logged in as the root user on We're now logged in as the root user on We're now logged in as the root user on the web server container. the web server container. the web server container. Of course, let's update our system here Of course, let's update our system here Of course, let's update our system here or at least update these repositories. or at least update these repositories. or at least update these repositories. And you know what, we might as well And you know what, we might as well And you know what, we might as well upgrade everything. So, let's apt upgrade everything. So, let's apt upgrade everything. So, let's apt upgrade upgrade upgrade and yes to everything. And there we go. and yes to everything. And there we go. and yes to everything. And there we go. So, let's just spin up a nice little web So, let's just spin up a nice little web So, let's just spin up a nice little web server real quick. Let's install nginx. server real quick. Let's install nginx. server real quick. Let's install nginx. So, that'll be apt install nginx. Here So, that'll be apt install nginx. Here So, that'll be apt install nginx. Here we go, accept those packages. Let's make we go, accept those packages. Let's make we go, accept those packages. Let's make sure the service is running. It should sure the service is running. It should sure the service is running. It should be, so systemctl be, so systemctl be, so systemctl uh start nginx. And now we can get the uh start nginx. And now we can get the uh start nginx. And now we can get the status of that. Status nginx.

  11. status of that. Status nginx. status of that. Status nginx. There we go, it's running. Beautiful. There we go, it's running. Beautiful. There we go, it's running. Beautiful. So, let's get out of there. So, now if I So, let's get out of there. So, now if I So, let's get out of there. So, now if I do recall do recall do recall um um um it's under var www.html. it's under var www.html. it's under var www.html. So, if we see what's in there, we have So, if we see what's in there, we have So, if we see what's in there, we have that default uh Debian HTML file. So, if that default uh Debian HTML file. So, if that default uh Debian HTML file. So, if I just copied and pasted it into I just copied and pasted it into I just copied and pasted it into index.html, index.html, index.html, just like that, we should be able to see just like that, we should be able to see just like that, we should be able to see it now. If I did like a curl http it now. If I did like a curl http it now. If I did like a curl http localhost, like that, maybe? Yep, there localhost, like that, maybe? Yep, there localhost, like that, maybe? Yep, there it is. So, there we go, it's running, it is. So, there we go, it's running, it is. So, there we go, it's running, all that. So, now how do I expose this? all that. So, now how do I expose this? all that. So, now how do I expose this? How do I see this on other machines? How do I see this on other machines? How do I see this on other machines? Because even if I'm to exit out of here, Because even if I'm to exit out of here, Because even if I'm to exit out of here, for example, we're now just on micro and for example, we're now just on micro and for example, we're now just on micro and I try to curl the exact same thing, I try to curl the exact same thing, I try to curl the exact same thing, localhost, it is not going to work, not localhost, it is not going to work, not localhost, it is not going to work, not even if I specify a port. That's cuz we even if I specify a port. That's cuz we even if I specify a port. That's cuz we need to actually port forward that need to actually port forward that need to actually port forward that container. And this is a longer command. container. And this is a longer command. container. And this is a longer command. I hope I get this right. lxc, we're I hope I get this right. lxc, we're I hope I get this right. lxc, we're going to edit the config for a device, going to edit the config for a device, going to edit the config for a device, because we're going to add web server.

  12. because we're going to add web server. because we're going to add web server. We're going to add a web proxy and this We're going to add a web proxy and this We're going to add a web proxy and this is going to be a proxy and we're going is going to be a proxy and we're going is going to be a proxy and we're going to listen on to listen on to listen on TCP on the root, so 000, and this is TCP on the root, so 000, and this is TCP on the root, so 000, and this is uh we should Let's forward this to just uh we should Let's forward this to just uh we should Let's forward this to just 8080. And we're going to connect that to 8080. And we're going to connect that to 8080. And we're going to connect that to TCP of the localhost within the TCP of the localhost within the TCP of the localhost within the container, host on port 80 TCP. I'm container, host on port 80 TCP. I'm container, host on port 80 TCP. I'm dumb. So, TCP, there we go. Enter. I I dumb. So, TCP, there we go. Enter. I I dumb. So, TCP, there we go. Enter. I I knew I was going to screw something up. knew I was going to screw something up. knew I was going to screw something up. Localhost is in fact not a real IP Localhost is in fact not a real IP Localhost is in fact not a real IP address. So, I'm pretty sure we can use address. So, I'm pretty sure we can use address. So, I'm pretty sure we can use 127.0.0.1, maybe? Hopefully. maybe? Hopefully. So, now from this machine, if I am to So, now from this machine, if I am to So, now from this machine, if I am to curl curl curl um um um should be able to use localhost. should be able to use localhost. should be able to use localhost. at the port 8080. at the port 8080. at the port 8080. I just realized I'm dumb. It's cuz I I just realized I'm dumb. It's cuz I I just realized I'm dumb. It's cuz I went off script. I went off script. I went off script. I It It It's on micro two. It's on micro It It It's on micro two. It's on micro It It It's on micro two. It's on micro two.

  13. two. two. So, if I do a curl localhost So, if I do a curl localhost So, if I do a curl localhost 8080, there it is. I found it. And if I 8080, there it is. I found it. And if I 8080, there it is. I found it. And if I do this, do this, do this, there it is. Okay. And if I do 192 8080 there it is. Okay. And if I do 192 8080 there it is. Okay. And if I do 192 8080 here, oh yeah, look at that. We have here, oh yeah, look at that. We have here, oh yeah, look at that. We have nginx up and running. Beautiful. So, nginx up and running. Beautiful. So, nginx up and running. Beautiful. So, real quick, before we dive into the web real quick, before we dive into the web real quick, before we dive into the web UI, let's touch on the actual storage UI, let's touch on the actual storage UI, let's touch on the actual storage for this. So, if I do lxc storage volume for this. So, if I do lxc storage volume for this. So, if I do lxc storage volume list, you'll see here all the different list, you'll see here all the different list, you'll see here all the different volumes that we have. So, under local volumes that we have. So, under local volumes that we have. So, under local storage, it's being used for images and storage, it's being used for images and storage, it's being used for images and backups, so two different volumes on backups, so two different volumes on backups, so two different volumes on each local instance. And then for the each local instance. And then for the each local instance. And then for the remote stuff, we could see web server is remote stuff, we could see web server is remote stuff, we could see web server is being used right here and we have an being used right here and we have an being used right here and we have an image, which I do believe is that image image, which I do believe is that image image, which I do believe is that image of Ubuntu that we downloaded when we of Ubuntu that we downloaded when we of Ubuntu that we downloaded when we spun up that container. Now, if I wanted spun up that container. Now, if I wanted spun up that container. Now, if I wanted to create additional volumes to actually to create additional volumes to actually to create additional volumes to actually add to these containers as just extra add to these containers as just extra add to these containers as just extra storage, I could do that as well. And storage, I could do that as well. And storage, I could do that as well. And I'm going to set this in remote. So, for I'm going to set this in remote. So, for I'm going to set this in remote. So, for example, if I do this list command again example, if I do this list command again example, if I do this list command again and I type in remote, it's only going to and I type in remote, it's only going to and I type in remote, it's only going to show us the two remotes right here. And show us the two remotes right here. And show us the two remotes right here. And I can create one just by going lxc I can create one just by going lxc I can create one just by going lxc storage volume create. We're going to storage volume create. We're going to storage volume create. We're going to create this in remote and we could give create this in remote and we could give create this in remote and we could give it the name of something like app data it the name of something like app data it the name of something like app data and then we could set a custom size if and then we could set a custom size if and then we could set a custom size if we would like to. So, let's say I wanted we would like to. So, let's say I wanted we would like to. So, let's say I wanted this to be, let's say, 16 GB.

  14. this to be, let's say, 16 GB. this to be, let's say, 16 GB. So, [snorts] I'd hit enter. So, [snorts] I'd hit enter. So, [snorts] I'd hit enter. Then it would create that storage. Now, Then it would create that storage. Now, Then it would create that storage. Now, if I list it again, you could see we if I list it again, you could see we if I list it again, you could see we have a custom of app data. And then to have a custom of app data. And then to have a custom of app data. And then to actually attach it to something, so I actually attach it to something, so I actually attach it to something, so I want to attach app data to our web want to attach app data to our web want to attach app data to our web server container, for example, all I server container, for example, all I server container, for example, all I would do instead of running the create would do instead of running the create would do instead of running the create command, let's attach app data. We're command, let's attach app data. We're command, let's attach app data. We're going to attach this to our web server going to attach this to our web server going to attach this to our web server and then we do the actual mount point. and then we do the actual mount point. and then we do the actual mount point. So, let's do uh So, let's do uh So, let's do uh mnt and data. mnt and data. mnt and data. So, if I hit enter, So, if I hit enter, So, if I hit enter, it should work. it should work. it should work. Which we can test. Let's go ahead and go Which we can test. Let's go ahead and go Which we can test. Let's go ahead and go back or execute back into this back or execute back into this back or execute back into this container. lxc execute web server bash. container. lxc execute web server bash. container. lxc execute web server bash. And now if I cd into our root directory, And now if I cd into our root directory, And now if I cd into our root directory, we can cd into mount and I have that we can cd into mount and I have that we can cd into mount and I have that data folder there. So, that's how you data folder there. So, that's how you data folder there. So, that's how you attach and create new storage volumes attach and create new storage volumes attach and create new storage volumes within the terminal. And then I can within the terminal. And then I can within the terminal. And then I can touch it. Let's touch it. touch it. Let's touch it. touch it. Let's touch it. test.

  15. test. test. txt. txt. txt. So, now we have Oh, So, now we have Oh, So, now we have Oh, I touched it in the wrong spot. My bad. I touched it in the wrong spot. My bad. I touched it in the wrong spot. My bad. Let's move the test.txt Let's move the test.txt Let's move the test.txt into data. into data. into data. test.txt. test.txt. test.txt. And now it it should be in there. Okay. And now it it should be in there. Okay. And now it it should be in there. Okay. Now, let's show the good old ceph Now, let's show the good old ceph Now, let's show the good old ceph replication, because ceph is kind of the replication, because ceph is kind of the replication, because ceph is kind of the back end for this. Sudo ceph osd back end for this. Sudo ceph osd back end for this. Sudo ceph osd uh pool. This is ls detail. I memorized uh pool. This is ls detail. I memorized uh pool. This is ls detail. I memorized a lot of these commands, but this one I a lot of these commands, but this one I a lot of these commands, but this one I didn't memorize. I'm just pretending didn't memorize. I'm just pretending didn't memorize. I'm just pretending like I do. Let's grep it. I just like I do. Let's grep it. I just like I do. Let's grep it. I just realized I'm dumb. I was still in the realized I'm dumb. I was still in the realized I'm dumb. I was still in the container. There we go. So, run this container. There we go. So, run this container. There we go. So, run this command here. Type in our password. So, command here. Type in our password. So, command here. Type in our password. So, this is our ceph pool info right here. this is our ceph pool info right here. this is our ceph pool info right here. And then if I type a tree, we can see And then if I type a tree, we can see And then if I type a tree, we can see under root it is being replicated among under root it is being replicated among under root it is being replicated among these three. Now, one thing before we these three. Now, one thing before we these three. Now, one thing before we finally go to the web UI is if I list finally go to the web UI is if I list finally go to the web UI is if I list these clusters one more time, we can see these clusters one more time, we can see these clusters one more time, we can see everything's fully online and everything's fully online and everything's fully online and operational. operational. operational. But what happens if one goes down? So, But what happens if one goes down? So, But what happens if one goes down? So, for example, micro three here, for example, micro three here, for example, micro three here, if I reboot this entire server if I reboot this entire server if I reboot this entire server like so, it's disconnected. And then if like so, it's disconnected. And then if like so, it's disconnected. And then if I run this command again, okay, let's I run this command again, okay, let's I run this command again, okay, let's wait for it to shut down all the way.

  16. wait for it to shut down all the way. wait for it to shut down all the way. Run it again. Still shutting down. Run Run it again. Still shutting down. Run Run it again. Still shutting down. Run it again. There we go. It's offline, it again. There we go. It's offline, it again. There we go. It's offline, there's no heartbeat. And then when the there's no heartbeat. And then when the there's no heartbeat. And then when the system comes fully back online, we can system comes fully back online, we can system comes fully back online, we can see that everything is fully see that everything is fully see that everything is fully operational. Now, let's actually access operational. Now, let's actually access operational. Now, let's actually access this web UI from micro one here. this web UI from micro one here. this web UI from micro one here. And there's some steps to do this. It's And there's some steps to do this. It's And there's some steps to do this. It's a little bit more complicated than you'd a little bit more complicated than you'd a little bit more complicated than you'd think. So, I'm going to minimize this. think. So, I'm going to minimize this. think. So, I'm going to minimize this. Let's do this in Firefox. So, you go to Let's do this in Firefox. So, you go to Let's do this in Firefox. So, you go to the IP address of the machine ending in the IP address of the machine ending in the IP address of the machine ending in 8443. We're going to go ahead and skip 8443. We're going to go ahead and skip 8443. We're going to go ahead and skip this cuz this is our server, we know this cuz this is our server, we know this cuz this is our server, we know what we're doing here. I'm going to what we're doing here. I'm going to what we're doing here. I'm going to don't send certificate for now, because don't send certificate for now, because don't send certificate for now, because we're going to need to actually do this. we're going to need to actually do this. we're going to need to actually do this. So, you see Canonical LXD right here. Uh So, you see Canonical LXD right here. Uh So, you see Canonical LXD right here. Uh we're going to need to generate a we're going to need to generate a we're going to need to generate a certificate. So, all you do is click certificate. So, all you do is click certificate. So, all you do is click right here, generate certificate. right here, generate certificate. right here, generate certificate. Generate and download. And then you can Generate and download. And then you can Generate and download. And then you can see the file there that was generated. see the file there that was generated. see the file there that was generated. So, then at least in Firefox and all the So, then at least in Firefox and all the So, then at least in Firefox and all the instructions for all the web browsers instructions for all the web browsers instructions for all the web browsers are right here. I'm going to copy this, are right here. I'm going to copy this, are right here. I'm going to copy this, go to a new tab, scroll on down to the go to a new tab, scroll on down to the go to a new tab, scroll on down to the point where I have my certificates. I'm point where I have my certificates. I'm point where I have my certificates. I'm going to view a certificate. And we have going to view a certificate. And we have going to view a certificate. And we have my certificates. So, you see I have one my certificates. So, you see I have one my certificates. So, you see I have one right here that I was already right here that I was already right here that I was already kind of testing. But what I'd want to do kind of testing. But what I'd want to do kind of testing. But what I'd want to do is import a certificate, grab the one is import a certificate, grab the one is import a certificate, grab the one that I just downloaded, select that.

  17. that I just downloaded, select that. that I just downloaded, select that. Didn't have a password, so I just hit Didn't have a password, so I just hit Didn't have a password, so I just hit sign in and there it is. So now I'm sign in and there it is. So now I'm sign in and there it is. So now I'm going to grab this and restart our going to grab this and restart our going to grab this and restart our browser, drop our URL in right there. browser, drop our URL in right there. browser, drop our URL in right there. I'm going to hit okay to use the I'm going to hit okay to use the I'm going to hit okay to use the certificate and now we need a trust certificate and now we need a trust certificate and now we need a trust token. So to generate that token, we are token. So to generate that token, we are token. So to generate that token, we are going to copy this command and run it in going to copy this command and run it in going to copy this command and run it in the instance that we want the token the instance that we want the token the instance that we want the token from. So I'm going to paste it in here. from. So I'm going to paste it in here. from. So I'm going to paste it in here. Here is our token. So we're going to Here is our token. So we're going to Here is our token. So we're going to grab that. Much more secure than grab that. Much more secure than grab that. Much more secure than a lot of other a lot of other a lot of other uh self-hosted services, that's for uh self-hosted services, that's for uh self-hosted services, that's for sure. So drop that in. Oh, copy it sure. So drop that in. Oh, copy it sure. So drop that in. Oh, copy it properly. Drop that on in and click on properly. Drop that on in and click on properly. Drop that on in and click on connect. So there we go. We can see our connect. So there we go. We can see our connect. So there we go. We can see our one instance web server right there and one instance web server right there and one instance web server right there and we can see a lot of the stuff that we've we can see a lot of the stuff that we've we can see a lot of the stuff that we've already done. Such as here under already done. Such as here under already done. Such as here under devices, we have our web proxy. We have devices, we have our web proxy. We have devices, we have our web proxy. We have app data, so the additional storage that app data, so the additional storage that app data, so the additional storage that we added to it. Of course our root disk, we added to it. Of course our root disk, we added to it. Of course our root disk, you can see it's some usage information, you can see it's some usage information, you can see it's some usage information, CPU, root file system, so on. All the CPU, root file system, so on. All the CPU, root file system, so on. All the information about it. And over here in information about it. And over here in information about it. And over here in the configuration, this is where we the configuration, this is where we the configuration, this is where we could actually make some changes such as could actually make some changes such as could actually make some changes such as the disks, so we have the mount point the disks, so we have the mount point the disks, so we have the mount point right there. And attaching a disk device right there. And attaching a disk device right there. And attaching a disk device is really easy through the web is really easy through the web is really easy through the web interface. So you can do custom devices, interface. So you can do custom devices, interface. So you can do custom devices, for example, you can create volumes for example, you can create volumes for example, you can create volumes through here or you can mount a host through here or you can mount a host through here or you can mount a host path. So for example, if you set up a path. So for example, if you set up a path. So for example, if you set up a like a NSF or NFS share on your system, like a NSF or NFS share on your system, like a NSF or NFS share on your system, connected it with uh FS tab or however connected it with uh FS tab or however connected it with uh FS tab or however you want to do it, you could mount that

  18. you want to do it, you could mount that you want to do it, you could mount that directory right in here, which that directory right in here, which that directory right in here, which that might be helpful for like a home lab use might be helpful for like a home lab use might be helpful for like a home lab use case where you're using one of these case where you're using one of these case where you're using one of these containers to maybe manage a R stack containers to maybe manage a R stack containers to maybe manage a R stack media server, whatever it may be, you media server, whatever it may be, you media server, whatever it may be, you can attach your storage from a NAS right can attach your storage from a NAS right can attach your storage from a NAS right into here and uh check everything out into here and uh check everything out into here and uh check everything out that way. So let's close this out. We that way. So let's close this out. We that way. So let's close this out. We have our network, uh GPU right here. have our network, uh GPU right here. have our network, uh GPU right here. Right now GPU pass-through it uh they Right now GPU pass-through it uh they Right now GPU pass-through it uh they have support for Nvidia GPUs. I asked have support for Nvidia GPUs. I asked have support for Nvidia GPUs. I asked them about Intel and they say their team them about Intel and they say their team them about Intel and they say their team hasn't specifically tested it, so that's hasn't specifically tested it, so that's hasn't specifically tested it, so that's something that I am going to attempt or something that I am going to attempt or something that I am going to attempt or try to do. And then we have some proxy try to do. And then we have some proxy try to do. And then we have some proxy stuff here, so this is what we set up in stuff here, so this is what we set up in stuff here, so this is what we set up in the terminal earlier where we are the terminal earlier where we are the terminal earlier where we are listing on TCP to this address at this listing on TCP to this address at this listing on TCP to this address at this port or it's sending that out and it's port or it's sending that out and it's port or it's sending that out and it's connecting the local basically Nginx connecting the local basically Nginx connecting the local basically Nginx instance there. And you can add proxy instance there. And you can add proxy instance there. And you can add proxy devices through here and all of this is devices through here and all of this is devices through here and all of this is also available with just YML also available with just YML also available with just YML configurations. So it'd be really easy configurations. So it'd be really easy configurations. So it'd be really easy to save and like export your to save and like export your to save and like export your configurations for all your various configurations for all your various configurations for all your various containers and things. If we go over containers and things. If we go over containers and things. If we go over here to storage, we can see our actual here to storage, we can see our actual here to storage, we can see our actual pools, which again we saw in the pools, which again we saw in the pools, which again we saw in the terminal as well as the volumes terminal as well as the volumes terminal as well as the volumes including this app data volume that we including this app data volume that we including this app data volume that we created. If you click on it, you get a created. If you click on it, you get a created. If you click on it, you get a lot more details, a lot more on the lot more details, a lot more on the lot more details, a lot more on the configuration, so you can easily change configuration, so you can easily change configuration, so you can easily change the size of these things directly the size of these things directly the size of these things directly through here. You could set up through here. You could set up through here. You could set up snapshots. You can upload custom ISOs if snapshots. You can upload custom ISOs if snapshots. You can upload custom ISOs if you'd like to, which again this does you'd like to, which again this does you'd like to, which again this does support virtual machines, but I'm not support virtual machines, but I'm not support virtual machines, but I'm not really going to dive too far into that.

  19. really going to dive too far into that. really going to dive too far into that. I'm focusing more on the I'm focusing more on the I'm focusing more on the Linux containers here. Under buckets, I Linux containers here. Under buckets, I Linux containers here. Under buckets, I don't have any buckets set up. If I go don't have any buckets set up. If I go don't have any buckets set up. If I go over to images, this is that Ubuntu over to images, this is that Ubuntu over to images, this is that Ubuntu image that downloaded for us. And then image that downloaded for us. And then image that downloaded for us. And then we have the full configuration for like we have the full configuration for like we have the full configuration for like the default. So when you you probably the default. So when you you probably the default. So when you you probably noticed when I spun up that first Ubuntu noticed when I spun up that first Ubuntu noticed when I spun up that first Ubuntu container, it didn't really ask me how I container, it didn't really ask me how I container, it didn't really ask me how I wanted to set up networking, where I wanted to set up networking, where I wanted to set up networking, where I wanted the storage to be, resource wanted the storage to be, resource wanted the storage to be, resource limitations or anything like that. And limitations or anything like that. And limitations or anything like that. And all that is managed through profiles all that is managed through profiles all that is managed through profiles right here. So right here if I click on right here. So right here if I click on right here. So right here if I click on the default profile, go to default, I the default profile, go to default, I the default profile, go to default, I can edit my default network can edit my default network can edit my default network configuration right here and again configuration right here and again configuration right here and again everything is available in a simple YML everything is available in a simple YML everything is available in a simple YML file. And just as an example, if I go to file. And just as an example, if I go to file. And just as an example, if I go to my instances here and let's create one my instances here and let's create one my instances here and let's create one for I I gave the Plex example, let's for I I gave the Plex example, let's for I I gave the Plex example, let's create a one for Jellyfin. Granted I'm create a one for Jellyfin. Granted I'm create a one for Jellyfin. Granted I'm not going to add hardware transcoding, not going to add hardware transcoding, not going to add hardware transcoding, but just to show you how easy it is and but just to show you how easy it is and but just to show you how easy it is and a use case is if I create this instance, a use case is if I create this instance, a use case is if I create this instance, let's call this Jellyfin media streaming let's call this Jellyfin media streaming let's call this Jellyfin media streaming server. We can pick our base image, use server. We can pick our base image, use server. We can pick our base image, use custom files, but if I browse images, custom files, but if I browse images, custom files, but if I browse images, it's going to load them up and it's it's going to load them up and it's it's going to load them up and it's going to give me a huge amount of going to give me a huge amount of going to give me a huge amount of options including other distributions options including other distributions options including other distributions too. So we have Debian, Gentoo, NixOS, too. So we have Debian, Gentoo, NixOS, too. So we have Debian, Gentoo, NixOS, bunch of different things that we can bunch of different things that we can bunch of different things that we can run right here. Ubuntu desktop, which is run right here. Ubuntu desktop, which is run right here. Ubuntu desktop, which is cool. And they are LXD images, but I am cool. And they are LXD images, but I am cool. And they are LXD images, but I am going to go up and I'm just going to use going to go up and I'm just going to use going to go up and I'm just going to use this one that I already have downloaded.

  20. this one that I already have downloaded. this one that I already have downloaded. For a cluster group, default is all we For a cluster group, default is all we For a cluster group, default is all we have. Again, this is incredibly have. Again, this is incredibly have. Again, this is incredibly scalable, so you can have different scalable, so you can have different scalable, so you can have different groups of clusters that still are kind groups of clusters that still are kind groups of clusters that still are kind of intertwined and you can pick what of intertwined and you can pick what of intertwined and you can pick what group things are installed on. Cool group things are installed on. Cool group things are installed on. Cool stuff. Cluster member, default is any, stuff. Cluster member, default is any, stuff. Cluster member, default is any, so I'm just going to let it drop so I'm just going to let it drop so I'm just going to let it drop wherever it needs to. And here the the wherever it needs to. And here the the wherever it needs to. And here the the we have the default profile. If I wanted we have the default profile. If I wanted we have the default profile. If I wanted to remove that, I can add a profile, to remove that, I can add a profile, to remove that, I can add a profile, which I'll just keep that as is. Instead which I'll just keep that as is. Instead which I'll just keep that as is. Instead of hitting next, you're going to have to of hitting next, you're going to have to of hitting next, you're going to have to go over here and kind of select exactly go over here and kind of select exactly go over here and kind of select exactly what we want to do. So we have remote, what we want to do. So we have remote, what we want to do. So we have remote, the size by default is unlimited. We the size by default is unlimited. We the size by default is unlimited. We have our network, GPU, proxy. So I would have our network, GPU, proxy. So I would have our network, GPU, proxy. So I would actually want to add a proxy device. actually want to add a proxy device. actually want to add a proxy device. Jellyfin is going to be on 8096. So for Jellyfin is going to be on 8096. So for Jellyfin is going to be on 8096. So for listening, let's do 000 at 8096. And for listening, let's do 000 at 8096. And for listening, let's do 000 at 8096. And for this we'll do 127001 at 8096. Right here on bind, you can at 8096. Right here on bind, you can select just bind it directly to the host select just bind it directly to the host select just bind it directly to the host or the specific instance if you'd like or the specific instance if you'd like or the specific instance if you'd like to, but this should kind of work as is. to, but this should kind of work as is. to, but this should kind of work as is. Under other, this is where we're going Under other, this is where we're going Under other, this is where we're going to attach custom devices and here I'm to attach custom devices and here I'm to attach custom devices and here I'm going to give it two cores and then two going to give it two cores and then two going to give it two cores and then two gigs of RAM and I mean that that should gigs of RAM and I mean that that should gigs of RAM and I mean that that should be uh just about good enough when it be uh just about good enough when it be uh just about good enough when it comes to everything. You can go through comes to everything. You can go through comes to everything. You can go through and customize a lot more, but if I just and customize a lot more, but if I just and customize a lot more, but if I just say create and start, give that just a say create and start, give that just a say create and start, give that just a little bit to run. You can see the little bit to run. You can see the little bit to run. You can see the creation has begun. We have one creation has begun. We have one creation has begun. We have one operation going here, but if I go over operation going here, but if I go over operation going here, but if I go over to instances, you could see it's setting to instances, you could see it's setting to instances, you could see it's setting up and just like that it is running. So up and just like that it is running. So up and just like that it is running. So now if I click on Jellyfin, we can see a now if I click on Jellyfin, we can see a now if I click on Jellyfin, we can see a lot of the same information that we saw lot of the same information that we saw lot of the same information that we saw in our web server, in our web server, in our web server, but if I go up to the terminal, this is

  21. but if I go up to the terminal, this is but if I go up to the terminal, this is where we can kind of begin to set things where we can kind of begin to set things where we can kind of begin to set things up. Now I'm just going to make directory up. Now I'm just going to make directory up. Now I'm just going to make directory of movies. I'm not actually going to put of movies. I'm not actually going to put of movies. I'm not actually going to put anything in there just so we can select anything in there just so we can select anything in there just so we can select it in a minute. And for installation on it in a minute. And for installation on it in a minute. And for installation on Linux, we can just run this Jellyfin we Linux, we can just run this Jellyfin we Linux, we can just run this Jellyfin we can run the script for Ubuntu as simple can run the script for Ubuntu as simple can run the script for Ubuntu as simple as dropping that on in, hitting enter. as dropping that on in, hitting enter. as dropping that on in, hitting enter. All this looks good, so let's hit enter. All this looks good, so let's hit enter. All this looks good, so let's hit enter. There we go, everything's downloaded, so There we go, everything's downloaded, so There we go, everything's downloaded, so now we're installing and there we go. So now we're installing and there we go. So now we're installing and there we go. So it's waiting for Jellyfin to start up it's waiting for Jellyfin to start up it's waiting for Jellyfin to start up and look at that. The the Jellyfin and look at that. The the Jellyfin and look at that. The the Jellyfin service is active. So what I'm going to service is active. So what I'm going to service is active. So what I'm going to do is leave the terminal real quick. do is leave the terminal real quick. do is leave the terminal real quick. Looks like this is running on micro one. Looks like this is running on micro one. Looks like this is running on micro one. So if I head over to micro one's IP So if I head over to micro one's IP So if I head over to micro one's IP address, we go to 80 address, we go to 80 address, we go to 80 96, 96, 96, we have Jellyfin. If you guys are we have Jellyfin. If you guys are we have Jellyfin. If you guys are interested in seeing an actual like full interested in seeing an actual like full interested in seeing an actual like full kind of home lab server setup using kind of home lab server setup using kind of home lab server setup using microcloud, that that is something I'd microcloud, that that is something I'd microcloud, that that is something I'd be interested in trying to get going. be interested in trying to get going. be interested in trying to get going. But regardless, that is an example just But regardless, that is an example just But regardless, that is an example just kind of showing how easy it is to get kind of showing how easy it is to get kind of showing how easy it is to get some of this stuff spun up. And that is some of this stuff spun up. And that is some of this stuff spun up. And that is microcloud. Do let me know what you microcloud. Do let me know what you microcloud. Do let me know what you think. Is this something that you could think. Is this something that you could think. Is this something that you could actually see yourself using? Maybe actually see yourself using? Maybe actually see yourself using? Maybe replacing a current solution like replacing a current solution like replacing a current solution like Proxmox. I do know that Proxmox is much Proxmox. I do know that Proxmox is much Proxmox. I do know that Proxmox is much more mature and its development has a more mature and its development has a more mature and its development has a lot more like community helper scripts lot more like community helper scripts lot more like community helper scripts and things like that. But if you're and things like that. But if you're and things like that. But if you're somebody who already has like an Ubuntu somebody who already has like an Ubuntu somebody who already has like an Ubuntu server or really any Linux server in server or really any Linux server in server or really any Linux server in production, you want to start utilizing production, you want to start utilizing production, you want to start utilizing LXD containers, virtual machines, this LXD containers, virtual machines, this LXD containers, virtual machines, this is a really efficient way to go about is a really efficient way to go about is a really efficient way to go about it. We didn't really dive into VMs in it. We didn't really dive into VMs in it. We didn't really dive into VMs in this video because they

  22. this video because they this video because they my environments were already in the VMs, my environments were already in the VMs, my environments were already in the VMs, but again, I'm going to make a whole but again, I'm going to make a whole but again, I'm going to make a whole dedicated video on actually setting up a dedicated video on actually setting up a dedicated video on actually setting up a cluster using microcloud, so do cluster using microcloud, so do cluster using microcloud, so do subscribe so you won't miss that. And subscribe so you won't miss that. And subscribe so you won't miss that. And when that video, we'll set up a couple when that video, we'll set up a couple when that video, we'll set up a couple different VMs for some different different VMs for some different different VMs for some different purposes. But overall, I really enjoy purposes. But overall, I really enjoy purposes. But overall, I really enjoy the product. We're going to see how the product. We're going to see how the product. We're going to see how difficult it is to do things like difficult it is to do things like difficult it is to do things like hardware acceleration, which it hardware acceleration, which it hardware acceleration, which it shouldn't be too bad. It should be shouldn't be too bad. It should be shouldn't be too bad. It should be pretty easy to figure out. But if I can pretty easy to figure out. But if I can pretty easy to figure out. But if I can get hardware acceleration personally on get hardware acceleration personally on get hardware acceleration personally on my own and get a better understanding of my own and get a better understanding of my own and get a better understanding of OVN to really understand how networking OVN to really understand how networking OVN to really understand how networking works, I will I'll be pretty pretty works, I will I'll be pretty pretty works, I will I'll be pretty pretty proficient. Right now I do have Proxmox proficient. Right now I do have Proxmox proficient. Right now I do have Proxmox running on a Minisforum kind of mini PC running on a Minisforum kind of mini PC running on a Minisforum kind of mini PC and I might just go ahead and throw and I might just go ahead and throw and I might just go ahead and throw Ubuntu microcloud on it because I don't Ubuntu microcloud on it because I don't Ubuntu microcloud on it because I don't really have too many services running on really have too many services running on really have too many services running on that as I've switched a lot of my media that as I've switched a lot of my media that as I've switched a lot of my media stuff to Unraid and a lot of my other stuff to Unraid and a lot of my other stuff to Unraid and a lot of my other like proxy stuff and things like that like proxy stuff and things like that like proxy stuff and things like that over to kind of my dedicated uh over to kind of my dedicated uh over to kind of my dedicated uh bare-metal Linux server. Which hell, bare-metal Linux server. Which hell, bare-metal Linux server. Which hell, that might even be a pretty good place that might even be a pretty good place that might even be a pretty good place to throw microcloud. Uh we'll see. Time to throw microcloud. Uh we'll see. Time to throw microcloud. Uh we'll see. Time will tell. Subscribe so you know what will tell. Subscribe so you know what will tell. Subscribe so you know what time tells. With all that, big thank you time tells. With all that, big thank you time tells. With all that, big thank you to Canonical for helping me put this to Canonical for helping me put this to Canonical for helping me put this video together. You guys are awesome. I video together. You guys are awesome. I video together. You guys are awesome. I appreciate the support through my appreciate the support through my appreciate the support through my journey and if you're interested in journey and if you're interested in journey and if you're interested in checking this out, again I'll go ahead checking this out, again I'll go ahead checking this out, again I'll go ahead and link to all the resources that I and link to all the resources that I and link to all the resources that I mentioned in this video. And with all mentioned in this video. And with all mentioned in this video. And with all that, I do hope you have an absolutely that, I do hope you have an absolutely that, I do hope you have an absolutely beautiful day and good bye.

Summary

The main theme is Canonical's Microcloud, a lightweight solution for managing Linux containers and virtual machines. The technology relies on LXD for containers, Ceph for storage, and OVN for networking, offering a familiar interface for Proxmox users and enabling easy deployment on existing infrastructure. The practical takeaway is that Microcloud provides a scalable and efficient way to build your own cloud on any Linux distribution.

View original episode ↗