Putting it All Together - Docker, Docker-Compose, NGinx Proxy Manager, and Domain Routing - How To.

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] it's open source advocate and i wanted to do a video about putting everything together that i've kind of been showing you guys over the last year really using the tools that we just kind of seem to repeat every time so that you can always come back and reference this video if you need help and really we're going to start with docker and then right under that docker compose so so these two guys are related sometimes we just run it straight up out of docker sometimes we do a docker compose and bring things up especially when there's multiple containers involved that we want to have networked but these these are really important to a lot of the stuff that i show you especially self-hosted things really once you get used to docker and docker compose it gets a lot easier after that then i definitely want to talk about routing so depending on how you run these things and where you run them if you run them into vps you route your traffic to that in one way and if you're running it on a server at your home that's behind your home router then you then you want to route traffic in a slightly different way um and then no matter how you route that traffic the next step is really something like nginx proxy manager which i really like this is a really great um project that somebody made so that they they could make it easier to set up nginx without having to do a bunch of config files and really gave you a nice gui to work from so this is a cool project and i use it all the time and i highly recommend it it it does work and it works really well for for for the most part there's a few situations where it's not the ideal tool but for the most part it's been really great for me and then finally you know using these things in combination and knowing how to get to this point once you're inside your network or if you're on a machine where nginx proxy manager is running and you have a bunch of virtual machines running on there through docker you really use this to point to those either those separate machines on your network that are running different services or to the different docker instances if that's what you want to consider these things as well so really this is kind of what i want to talk about i'm i see a lot of people do kind of power pointy type videos i promise this is it we're at the end of this one and we're going to get started on this stuff so we're going to start with docker and docker compose and we're going to talk a little bit about what these are and then i'm going to show you how to install them on a ubuntu or debian based system that's kind of what i use for the most part so if you want to install this on windows they have kind of a you know a wizard where you run like it through a normal graphical install mac os 10 they've got an installer that you can run if you want to run this on other linux distros just go out there and look there's instructions on how to install them on all of them i promise i just happen to use ubuntu and debian so that's what i'm going to talk about after i do this part then we're going to talk about routers and and vps's you know whether you're working inside your network or using something like digitalocean or linux or ssd nodes or you know just tons and tons of others out there that have their you know their vps setups that you can use um you know once we've kind of talked about routing then i'm going to do a piece on nginx proxy manager itself one installing it and two actually setting it up and using it to help you get to the services that you're running in docker so i mean really this could almost just make a loop back to here so you start here you route through here and then you use this to kind of loop back around and get to it from the outside world but same you know by the same token inside your network you could have multiple machines running things and this is your gatekeeper so you have a firewall that's your first set and inside of your router and you just want to forward ports from the firewall only to this nginx proxy manager server and that's it and then let it do its job and let it route the traffic and decide is this a valid request or not so that's that's kind of what we're going to talk about so a lot of people ask you know what is docker the simplest thing i can tell you is docker is a virtualization system for servers to run web applications or applications so when docker first came out i really didn't get it either and people didn't explain it super well for me so i'm going to do my best to explain this for you but if you think of having a physical machine that you can walk over to and push the power button on and then you maybe you have an entire rack of machines that you can run over and push the power buttons on and each one of those machines runs some other website maybe you have a wordpress site maybe you have a ghost blog maybe you have a discourse site maybe you're running you know who knows what right just any kind of different servers or services that have web front ends especially think of that being an iraq system now i want you to imagine that you take that rack system and you say you know what i'm going to take all of these separate servers and i'm just going to combine them into one really good server so now you've got one server but it's running a bunch of different services and there's lots of ways to do that you can try to split those things out using virtual networks and virtual lands and all kinds of crazy stuff but what docker does is it says hey we get it you want to run things a little bit easier and you want to run them on a virtualized server and you want it to just have the bare minimum things that you need to run that service so think of docker being that rack that you're going to mount those servers in so here this is your rack and each one of these little containers as they call them is a server okay so that container can actually hold more than one server but let's just assume for now that it's a server so when you run docker on on anything when you run a docker container that's your server it's running in a virtual system in a virtual rack basically so one of the best ways that i can imagine to kind of show you this is to show you a pertainer install so i'm going to go out here to my pertainer that i run on ssd nodes and this is this is just a front end gui for docker it's really nice i have videos out there on it and you can go find those they're really easy to find on my channel but you can have multiple pertainer instances on actual different servers that you can look at from one as well but i'm just using this one and you can see i've got 19 containers so when i open this up imagine this is my rack this is all of my different servers in my rack and you can see that they're running that they're on or that they're stopped just depending and i stop them sometimes on purpose they'll tell you if it's healthy if it has a health check capability that kind of stuff so here i can see all of the information about ports that they're running on and what their ip addresses are and what you know just just all kinds of information about these different servers that i'm running inside of this docker ship and each of these containers is on my ship so that's what docker is docker is just a vessel to hold all of your different servers or con you know in this case containers running different applications so sometimes you have an application that needs more than one container so for instance nginx proxy manager actually uses two different containers there's there's several containers so wordpress uses two different containers so as you look down through here you'll see different things that are running so jitsi i think jitsu uses four or five containers so i'm not running all of these as separate servers some of these are one server but it needs multiple containers to really run because those applications use multiple different kinds of services and systems to to make them run so when i talk about docker that's what we're talking about we're going to take docker and we're going to set it up and then we can start running our different containers so i'm going to go spin up a digital ocean server here all right we're going to create a droplet and we will get in here and actually just use this ubuntu 2004 is fine five dollars and i'm going to keep moving down i'm going to pick new york that's close to me you should always pick one that's physically close to you we'll keep moving down i'm going to do a password and it's going to ask you to create a password and they have some rules about passwords so when you create your password just make sure to watch and make sure you get a nice strong password and you have all the boxes checked here if you don't then it's not going to enable the create button and then we're going to call this docs.open source is awesome.com me double check my spelling yeah and we're going to move down i'm going to hit create so when you when you give this name if you're ever using theater lotion make you know if you're going to give it a url go ahead and use the url for the host name that you want as well so while we're waiting on that i'm going to go over to digital ocean install docker ubuntu 20.04 so that's the way that i do this i just search for it it always comes up as the top hit and then we've got our instructions right here and i'll make this just a little bit bigger so it's easier to read and really i just go through and highlight and copy all of these things and what what i've actually done is i've created a script so now when i do this i just push the script up and run the script and it does all of these commands in order and i don't have to run through and do them one at a time but if if you're doing this just once you can absolutely just highlight and copy so let's go back to our digital ocean here and now we have an ip address so we're going to copy that and we're going to go here and we're going to say ssh root at and we're going to paste in that ip address we're going to say yes permission denied again we'll give it just a second because it may still be setting up our passwords so if you ever get this just wait you know 10 20 seconds and then try again there's nothing wrong with being a little patient so to try again just hit the up arrow key on the linux terminal and it'll refill the stuff in i think windows actually does the same thing there we go now we get our prompt so type in your pseudo password there we go i'm going to clear that out so the first thing i always do is sudo apt update sudo apt upgrade dash y and i let that run now i'm logged in as root so i don't need sudo but it's just a habit to type sudo so don't sweat that part but this is kind of step one is just make sure that your system is up to date so you want to update and run the upgrade part so the update says go get all the packages upgrade says and install those packages for me so we're going to let it run that real quick and then we'll continue all right our update's done it installed a lot of stuff and it took a little longer than i've normally come to expect but that's okay it solved a couple of kernel updates so that's good but after you run the update you should always do a reboot so we're gonna do sudo reboot it's gonna boot us out of here we'll give it about 20 seconds and then we'll log back into it and then we'll be ready for the next part which is install docker and docker compose and this again is really just copy paste it's very straightforward i've got it on a lot of my site as well as a lot of my pages out there on shownotes.opensourcesawesome.com so you can get it from there but you can also just create a script that you keep and that makes it a lot easier so i'll show you how to do that as well yeah it's ready for us that's one great thing about digitalocean i mean the reboots are just so fast okay so in order to install docker really what i do is i just come out here now we just did the update so we don't have to do that step again but i just copy these things and just ctrl c and then come back to the terminal you can middle click on your little mouse wheel in linux and that'll paste it or you can do and i'll show you this too when you paste or copy in the in the terminal you have to use control and shift so in this case i'll do control shift and v like victor and that paste it in as well so either way whatever makes it easier for you and then we'll we'll run this command here so i'm going to put a dash y that way it doesn't prompt me it'll just install these things it's really quick so that was fast okay so we did that one now we're just going to come down here and get this curl command and make sure to include that little hyphen there at the end we're going to do a control c copy and then control shaft v control shift v to paste it's done it doesn't take any time it just gives you a little okay and then we're going to go here and we're going to add the repository so make sure you grab everything when you copy and then we're going to paste that in and it kind of does its own little update but it's good to go ahead and rerun the update after this so we're gonna do sudo apt update one more time and that's even in the instructions back here right there and then we're going to do this one right here the apt cache policy so we'll copy that we're going to come back in here and i'll clear this so it's easier for you to see we're going to do that one okay it's all done and then we'll skip right down here to the bottom where it says sudo apt install docker ce this one's the one that we really want and yes all right docker is installed so technically we're done but there's more that you can do to make it easier to use docker as well so if you just do docker v you'll see the docker version that's installed here now we can clear this out so the next step is is down here as well and it's good to do this especially if you're not logged in currently as the root user which you shouldn't be technically so going down here under step two which they say is optional grab this little command right here just copy it and again paste it into the terminal now if you're logged in as root it's not going to matter but if you're logged in as the non-root user what this does is it adds your user to the docker group which means whenever you're trying to run docker commands you won't have to use sudo so this is done now as root you don't have to run it as sudo anyways but if you're logged in as your normal user then this makes it so you don't have to use sudo to run the docker commands it just makes it a little bit simpler so it takes out a little typing um finally we want to install docker compose so that is just sudo apt install docker hyphen compose and then just do a hyphen y and it won't prompt you and i'll just go and go and do it and this one's usually a pretty quick install and now we can do docker hyphen compose dash v and there's the version of docker compose that we have so we've got everything set up now for using docker and docker compose so we can clear this out you can do docker ps and it's going to show you nothing because we haven't actually started any docker containers but this is how you would list the running containers on docker so we're done docker's installed you're set you're ready to go start running some some docker containers now that's a whole other thing and i've got lots of videos on all kinds of different docker things you can run um how to install them how to set them up so get out there and you can watch those things but the next thing we want to tackle or that i want to tackle is how to deal with your network or your vps so that you can have a domain pointing to those servers because it's important to have that and know how to set that up you may not be ready to create the domain yet but but i want to talk about it all right i want to talk about how to set up a domain first of all from your domain registrar if you're going to run something like we are right now like in digital ocean or linux or ssd nodes or any of those vps systems so that you can get your own domain name and point it at these different servers or services you're running and a lot of times you want to set up not only the domain name but a sub domain that allows you to run things like that so i own this domain open sourcesawesome.com and i use hover for for setting this up but it doesn't matter if you use hover or gandhi.net or godaddy or whoever so as long as you can get in there and set the settings for dns and things like that this is going to apply to you so the first thing i'm going to say is if you're just going to run a single subdomain or a single domain you just need to set up an a record for that thing and it's it's just easier so you go into your dns now it's a little different for each system depending on who you use but you should have dns options that you can go to and then you should have an option somewhere that says add a record now it may say add a record like a in this case we have a it just defaults to it but here i have also 4a cname mx txt srv okay i think godaddy even has more than that but what you really want is the a record so remember we set up the the name docs dot open source is off well we just want docs so in this case i'm just setting up a subdomain of open sources awesome.com so i'm just going to tell it this is docs it'll know that's going to be docs.opensourcesawesome.com i'm going to go over here to digitalocean i'm going to copy this ip address again and then i'm just going to paste that into the ip address space and i'm going to set this to five minutes now certain just different domains like godaddy sets it down i think 30 minutes is the fastest you can do unless you pick a custom time and then i do 10 minutes sometimes but hover lets you do five so i pick five then you just hit save now what you should see is that you should now have an entry in your list that says docs and it should have the ip address that you pointed it to and it'll take about five minutes for this to update dns and depending on who you're getting dns from it could take longer than that you know they're doing their best to push that out as fast as they can so now you've set this up which is great so i can get to that server and it's going to go to that ip address but if i actually try to go to that address i'm not running any servers there so docs.open source is awesome.com it's not going to give me anything there's no page to go to that's okay that's what docker's for we can run a server inside of docker to get to a page if we want to so we've set up our subdomain which is great this is this is how you do it now this is if you're running out on a vps so let's say that i'm not running on a vps and that instead i'm running on a server at home that's inside of my firewall so your router should be running a firewall for your home network first thing you need to do is be is know how to do port forwarding on your router and i can't tell you how to do that because there are a thousand different makes and models of routers and every brand has a slightly different user interface but there should be something let's just look at linksys they're a popular brand right something that lets you do port forwarding on your router so if you look at this here's a here's a video on youtube i don't want to use somebody else's content that's not cool um let's see there should be images i clicked on videos that's why i got that yeah here we go so in linksys this is kind of what it looks like you basically go in here and you say hey i need to forward a port and i want to use udp or tcp and all that means is udp says i send a signal and i i hope that it made it tcp means i'm going to make a connection and stay connected to that other endpoint as long as i can so usually the instructions for what you need to forward will tell you um in in the case of 80 and 443 just set it to both and don't sweat it but you tell it i need to i need to set 80 and 80 for my ports here so so the same so it's just setting one port 80 to be whatever you want and then here you tell it what your ip address is for the machine you want it to go to so that's how you set up port forwarding and what that says is when i get a request at my home's public ip address for a website if it's on the right domain and the right port which is 80 or 443 i'm going to pass that through to a certain machine that's all it's saying it says if i get a request on port 80 it's going to pass that through to a certain machine if somebody sends a request on port 81 this firewall should bounce that back and tell them i'm sorry you can't get in you don't know the secret knock right 80 is the secret knock or 443 is a secret knock 81 ain't good enough it bounces it back so that's that's kind of the best i can do and and the reason i say these are all different um is because they are so if you look at let's just look at nick gear here's another popular brand at least here in the us i don't know what all the brands are for everybody else in the world but yeah so netgear it's a little bit different page you just same thing though it's port forwarding and you want to put in again the ports you want so 80 and then where does that point to and you put in the ip address of the machine on your local network that you want that to go to so you have to do port forwarding um euro is even different because you can only run it on your phone you can't even get to it through a browser so um they're all different all right so let's just say now that i want so i have a i have a domain i run at my house called routemehome.org so what happens when i go to routmehome.org is it automatically forwards me to my home ip address my public ip and then when it hits my firewall my firewall goes oh you asked for something on port 80. okay let me pass you through to the machine that's running the nginx proxy manager which is kind of the next step that we have to get to and nginx proxy manager says hey you asked me for routemehome.org but i don't actually have an entry for that i just have my my plain old main page so it just tells me hey you reached me good job that's it i could type anything in here that is not already a domain that i run so i could type in anything.routemyhome.org and i'm going to get the same page until i type in something that is a domain that i'm running on my machine you're just going to get that so if i type in analytics dot routemyhome.org now i'm going to get a login page because nginx proxy manager says oh you asked me for something i recognize let me forward you to that particular machine to that server in this case this is a server that's running docker okay so i want to talk about setting up the nginx proxy manager that's kind of our next thing but port forwarding is important if you want your home router to work so we're going to talk about routemyhome.org real quick so what i did was i created an a record just like you saw a while ago i created an a record for romneyhome.org and instead of putting in an ip address or a host name i put in star so just the asterisk that's it and then i put in my home's public ip address where it says ip address and then i hit save and what that does is it tells the dns system like hey anything comes to in this case routemyhome.org go to this ip address so let's get into the installation of internetx proxy manager next so this is the github project site of nginx proxy manager and right here i just like to go to the quick setup page and it just tells you right here exactly what you need to do so this is a little small don't worry i'm going to make it a little bit bigger for you guys you're just going to copy this text right here i'm going to copy it and i'm going to go back to my server that i'm running right here i'm going to clear this out and i'm going to say make a directory called npm you can call this nginx proxy manager you can call it whatever you want if this confuses you because there's no package manager or some other ones right in fact let's call this in proxy how's that i'm going to move into that directory now i'm going to create a file i'm going to use nano config.json make sure you spell this correctly and in here i'm going to paste that text that i just got now i have to change some of this stuff okay i don't want to leave these defaulted to this this is not safe so you want to change this so the database name you can call this whatever you want you can leave that npm if you want to but the user let's call this brian and the password let's just give this a better password okay p-a-s-s-w-0-r-d-1 exclamation point okay so that's not a strong password you should not use that password you should pick a really strong password that has upper and lowercase letters numbers and symbols and it's not a word okay not even based on a word but for our purposes this will work now you want to remember what these values are okay this is important because you're going to use these in the next step but to save i'm going to do control o and then i'm going to check the name i'm going to hit enter if it looks good to save it and i'm going to do control x to get out of nano now the next part of this is i need to create a docker compose file so i'm going to take this whole section right here all the way to the end i'm going to copy it i'm going to go back into my server and i'm going to say nano and this time i'm going to call it docker hyphen compose.yml okay this is going to be a yaml file again ctrl shift v like victor to paste now you see right here there are a couple of things we need to change because we changed this on the config file so i need this to match okay and this i changed as well so anything you changed you need to you need to update it here now the last thing is on the config file we did not set the root password but here we're going to set it and we're going to set it to something strong so just you know whatever okay something strong now this is assuming that we can use all of these characters for my sequel i don't know about the semicolon since it means something in my sequel but there we go that's not based on a word it's a strong password i don't need to know it so that's important up here this we definitely want do not change these 80 81 and 443 whatever machine you run this on you need to make sure that your host allows these ports and and that they're not already used by something else okay so these need to stay the same sometimes i tell you to change these values in this case you should not change these values and you should make sure that these ports are available on this machine there's nothing else in here to change okay everything else stays the same we're going to hit ctrl o check the name docker hyphen compose.yml make sure it's spelled correctly and then hit enter to save control x to get out of that file okay we're done now we're going to run this to get nginx proxy manager up and running so we're going to say docker hyphen compose up after the space and then hyphen d so just like this and then we're going to run it all right when it's finished you should see something like this where it says db underscore 1 and app underscore 1 and they should both have a done next to them and you're gonna get an id for what's running now you can check this to see if it's running by doing docker ps and here we can see that they're running and how long they've been running so that's good that's what we want it's kind of a mess because the terminal's so big but it's there and it's running it's not empty anymore so now if i go to and we'll just open up a new tab here if we go to docs docs.open sourcesawesome.com we get the crack congratulations page that nginx proxy manager takes us to automatically now if i want to get to the actual configuration page i would do colon81 this is going to bring me to the admin page and here the first time you need to do admin at example.com and c-h-a-n-g-e change me all together log in don't save that because you're going to change it anyways now you want to put in an email address that makes sense save it and then you want to put in the old password c-h-a-n-g-e-m-e change me and then put in a new password that's strong and then save those changes as well once you've done that go over here and say no i don't want to save it right now go here to your admin click sign out and then sign back in with your correct credentials now and if you get logged in you did a good job everything's up and running you're ready to add host to nginx proxy manager now people have asked me how do i secure nginx proxy manager itself so that other people can't just get here and it's not a secured page so you can see that well this is how you can do that you're going to set this up with its own sub domain so we're going to go back over here so what i want to do is i want to go back into hover and i want to add another entry so i'm going to create an a record and i'm going to call this manage docs how about that and i'm going to give it the ip address from digitalocean that i got earlier there we go i'm going to copy that i'm going to paste it right here and again i'm going to tell it five minutes and i'm going to save it so now i have manage docs and it has the same ip address now you could have just created a c name and pointed it to here it's fine either way um it's it's less to update if this ip ever changes but it's a static ip so i don't expect it to change now that we've got that we're going to go back to nginx proxy manager we're going to add a host so we're going to go into the hosts section we're going to say add a host and we're going to create this one so this is manage docs.open source is awesome.com there we go okay so now that i've got this in here i want to go find out what the docker ip address is for this server so in order to do that i'm going to try ifconfig it may not be installed it's not so you can install ifconfig if you prefer to use it but i can just do ip80dr show and then docker 0. it's going to show me the docker 0 stuff and here's what i want this is the ip address that i want to copy so i'm going to copy this ctrl shift c to copy i'm going to go back to my browser i'm going to paste it in there and then this is definitely running at 81 so that's the port that i want this to go to when i go to this site and i'm going to say block common exploits and i'm going to hit save so i just want to test and make sure this actually works so i'll click it and there we go i got right to my page like i expected which is great so i'm going to close that tab i'm going to go in here now and i'm going to click on this three dots and i'm going to hit edit and i can make this a little larger for you guys i'm sorry about that so i'm going to go over to ssl now and i'm going to say i want to request a certificate i want to force ssl whenever this comes up there's a new option that i haven't seen before so that's cool um it has my email address already in it from where i logged in and i'm gonna say i agree to let's encrypt certificate uh terms of service i'm gonna click save and it's gonna go out and run a challenge to see if it can reach the site through port 80 so that it can issue the certificate for ssl if it goes away with no errors you should be good you can just click here again to make sure that it opens up and now it is secured okay so no more going through this route now i'm going to use the secured route and brian at right there and fill in my correct password for this thing that's strong there we go now you can tell the save if you want to if it's your machine but you'll see you have the one host so now you can come in and you've got that secured which is great okay so that's how you secure nginx proxy manager you kind of create inception you you secure it to itself kind of a cool little trick right but it really works so we've got nginx proxy manager setup okay the reason that i did this is because i don't want this going out and coming back to the public i p address i want to use the internal address on the server and since nginx proxy manager is running on the same server as my docker i'll just point it there and i'll do the same thing for everything else i install through docker on this server i'll just point it to this address and the correct port number and then that will get everything routed the correct way so as i assign more new different domains and urls they're always just pointing to this machine inside of this internal docker zero network and everything can get secured that way and there's nothing going back out to the internet and back in so that's nginx proxy manager now if you're inside of your own network at your home so i'm going to log into a different one here and this is going to be my local one and on this one i don't have it forwarded i just use it like this because it's inside my network and i don't forward port 81 you should not forward port 81 on your network only eighty and four four three so i'm going to log in and here you can see i've got six hosts so on my internal network this is the only machine that's not part of that server that i'm running nginx proxy manager on but that's okay because what happens is when i go to the url here nginx proxy manager gets the request on my main server and it says oh you want this other machine let me send you over there and it sends me over to that machine at the correct port and then i get a nice secured connection to this url so it's running inside my network it never goes back out to the internet so it's all secured inside my network behind my firewall so that's how i work this and you can do this too if you want to run servers on different machines out of your home so that's the way that i put everything together and that's kind of the same thing that i do every week when i bring you a new video especially when it's something that's hosted now sometimes i'm just giving you an application that you just install and run sometimes i'm going to give you an application that there's not a docker image or docker container out there yet for but most of the time if there's something available on docker that's the way that i'm going to try to run it and that's the way that i'm going to set it up i'm going to set it up in docker i'm going to give it a domain name if i set it up at my house it's going to have the wildcard routemyhome.org already and i'm just going to use nginx proxy manager to create a new subdomain that i'll use to access it i don't even have to go create an a record in that case because the a record says for anything that's not specified go to my home ip address which is awesome after i've got that set up i've got a secure site to a server that i'm running inside of a docker container inside of my network and everything feels so much more secure to do it that way the old way of saying oh i've got this machine over here and i'm going to run this server on port 2731 and i'm going to open that port up on my firewall and now i've got a machine over here and i'm going to run that you know i'm going to run that server on port 10822 and i'm going to open up that one on my firewall suddenly you've got a firewall that's basically open for anybody to try to get into and do stuff with um so i really like using the nginx proxy manager route for my home network especially because i'm only opening 80 and 443 and nginx proxy manager handles all those requests that come into that and it says oh yeah you can go over here or oh yeah you can go over there you know really nothing extra or anything special to be done there uh nginx proxy manager hand sort of handles it all so that's pretty great so this is kind of the way that i will do anything and everything moving forward um unless it's an application or unless there's not a docker container available for it and even then the only modification we make is how we install the server once the server is installed i'm still going to use a proxy manager to actually set up the domain and make sure that i'm getting my ssl certificates and everything like that so we'll go through that stuff when it when we hit that you know we'll jump off that bridge when we get to it but i hope that this is really helpful to you i hope that you enjoyed this video hope you get a lot out of this video if you do please like subscribe tell your friends about it so then come along the journey with us and i'll talk to you next time [Music] you
Info
Channel: Awesome Open Source
Views: 36,321
Rating: 4.9735394 out of 5
Keywords: open, source, opensource, open-source, self, hosted, selfhosted, self-hosted, free, libre, software, server, web, internet, browser, linux, mac, macos, os x, windows, microsoft, unix, bsd, ios, android, pi, raspberry, desktop, digital, ocean, digitalocean, vps, tutorial, how to, setup, installation, instructions, cli, command line, terminal, interface, open source software, open source news, open source projects, docker, docker-compose, nginx proxy manager, domain, subdomain, dns, routing
Id: cjJVmAI1Do4
Channel Id: undefined
Length: 38min 39sec (2319 seconds)
Published: Tue Oct 06 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.