I think I found a Dropbox replacement with Nextcloud...

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
so you've decided to start self-hosting some stuff at home you've been moving services out of the public cloud and slowly moving them into your self-hosted private cloud and while doing all of this you've been searching for a productivity platform one that you can use to collaborate with others and one that you can use to share some files [Music] hey welcome back so i'm techno tim and today we're going to talk about self-hosting a productivity platform with nexcloud as a quick reminder i stream every tuesday thursday and saturday so if you want to continue the conversation about self-hosting some services there we can so let's talk about self-hosting nexcloud so what is nexcloud well nexcloud is a productivity platform that you can self-host it puts you in control of your data and how you want them to be shared you can share and collaborate documents send and receive email manage your calendar and even do some video chatting if you'd like and it's able to do all of this while keeping that data on your network in your control and in theory this platform could be used to replace many of the services that you use in the public cloud things like google drive google docs hangouts slack or any other chat client and even something like dropbox and while some of these features are core to the product the others come in the form of a third-party integration using their app store and while this might seem pretty complicated to set up we're going to walk through setting it up and we'll get you going here in a couple of minutes now my choice for installing and managing services is docker and kubernetes and i get that capability from something called rancher if you're not familiar with rancher rancher is an easy way to get docker and then kubernetes i have a step-by-step tutorial that walks through setting up docker rancher and kubernetes in just a couple of minutes and after that you'll have a platform not only for nexcloud but for all of your docker and kubernetes needs and so with that out of the way let's get started well the first thing you might need is rancher well i just talked about how to set that up but if you decide to go with plain old docker we'll walk through that too so then we're going to need a docker image i typically choose linux server.io for all of my docker images they build and maintain most of my favorite ones and if we go into documentation and we go under next cloud we should see our docker image here under usage we'll see the docker commands here and later we'll map this to a rancher config but if we go under docker cli we'll see the commands here to spin it up with plain old docker here we'll see docker run where we're going to run it as a daemon next we'll use the name flag which will set the name of our container when it spins up then we'll send an environment variable of puid and pgid now these map to the user that has daca privileges and it helps with permissions and we'll talk about how to get that here in a second next we're going to pass an environment variable of tz and that's your time zone then we're going to use p to publish or expose some ports and you can see here that they expose port 443 or ssl next we're going to map a volume to our config and on the left side that's a path to the data we're going to persist and on the right is a path within the container and the same goes with the next volume we're going to mount which is data on the left will be the path we're going to persist and on the right is going to be the path within the container and this will help us persist both our config and our data in the next flag restart unless stop is going to restart the container if it crashes this will help make sure that our container is always up unless we stop it and the last argument is linux server next cloud and this is the docker org image name that we're going to use now take note you don't see a tag here at the end this then assumes we're going to use the latest tag if you don't want to pin the latest you'll need to look in docker hub to see what the version is you want to pin to after that add it to the end so now back in our rancher server let's create a workload so let's click on deploy first we're going to name our workload let's name it next cloud next we'll set the docker image and this is going to be the docker org the image name so let's use linux server next cloud and just to illustrate what i meant about latest if you don't specify a tag it's actually passing in latest as the tag but we don't need to use that next let's add our port so let's click add port and for port mapping we'll have to map our https port now here i've named it https and we're going to publish the container port of 443 to the host port of 9700 this is because we don't want to use 443 on our host because it's already taken next we'll add a few environment variables the two environment variables we need are puid and pgid they suggest the value of a thousand but this may not be the id of your user or the group so in order to define that let's ssh into this node and find our id first we'll ssh into our node once we're in we'll just type id and you can see here in the output my uid is 1001 and my g id is 1001 so let's put that in the form next we'll need to map some volumes so let's click add volume and here since i only have one node i'm going to choose buy mount a directory from the node if you're using more than one node or you have a different storage strategy you'll want to choose that option there but i'm going to mount the file system directly from the node so i'll choose that so the two values we know right now are the volume name which i'm naming config and then the mount point which is slash config which is slash config within that container the one we don't have yet is the python node so in order to get that let's ssh back into our server let's create a folder and let's add it here so here i'm going to make a directory called nextcloud and then let's cd in here and let's create two folders one called config and one called data and if we do an ls we should see the output so these are the folders that are going to house both our data and our config and you'll want to remember the path on node so that we can use it so the path on node for me for config is slash home techno tim next cloud slash config and let's add our data volume now so again add volume bind mount a directory from a node and here we're going to use volume name of data the path on node is slash home slash techno tim slash next cloud slash data and then the path within the container is slash data so after that there's one more thing we might want to change and that's our scaling policy if we're using a single node and host port we'll need to choose a different option so in scaling an upgrade policy we'll want to change this to kill all pods then start new and you can choose this option if you're not using a single node but i think this is our only option if we are using a single node in host port because two pods can't occupy the same port and then we'll launch and we can see here it's spinning up it's creating our container and we can see it's up and running so let's go into the logs if we look in the logs it looks like it spun up okay it created a self-signed certificate for us to use and it ran a lot of startup scripts so now it's ready to use let's go check out nexcloud so once we go to the ip address and the port we specified we'll get a self-signed certificate error now this is normal because it's a self-signed certificate so we can advance here and now we can see our next cloud installation so the first thing we'll need to do is create an account for obvious reasons you should choose a secure username and password here next you might notice the warning about using sqlite and it tells you that you should only use this for minimal installations now for home use this is totally fine but if you plan on using this in a small business or a home with lots of users you might want to choose a different storage option and so if we drop down in storage and database we have the option to change out our database the default is using sqlite data and that's mapped to our container's volume but we have the option to switch to mysql and mariadb as well as postgresql but for our installation we're going to choose sqlite and use the container storage the next option you see is to install some recommended apps and i'm going to choose yes here but we can install them later if we like and after that we can click finish setup so this is now creating our account configuring our database as well as installing the recommended applications and these are ones recommended by nexcloud and once in you'll be greeted with the dashboard we can see the new next cloud hub some marketing information about nexcloud and here's our dashboard so we'll start out with recommended files talking mentions important mail and upcoming events we can choose the customizer dashboard here we can choose to include additional widgets and we can choose to change our background in the recommended files we'll see files that they've uploaded but we'll visit that here in a second and if we want we can go into settings and we can install some more applications so here we'll see all of the recommended applications that were installed along with some that come with next cloud we can see which ones are disabled we can see different app bundles we can see some of the featured applications some customizations dashboard apps files games you name it if we wanted to download a new app we would just click download and enable it will pull down this new application and then enable it so we install this analytics application and it looks like it's for our dashboard so let's go back to our dashboard and if we go back to customize we should see this reports option and it's blank now but it will generate some data soon so going into our files we actually have a file browser here as well as a previewer here too we can preview a pdf or any of the file types that we upload now we can create or upload files here and this is how i use it as a dropbox replacement so if you want to use this for collaboration you can you can share out these files or edit these files remotely but if you want to use it more as a dropbox replacement here's how i do it so first i'll create a folder i'll call this public and in this public folder i'm going to add a file and let's upload this image now we can preview the image from here but we want to share this and so what i typically do is create a share link to this whole entire folder now you can create a share link directly from this file or you can create one from the folder and if you click public share and copy the link we'll see that when going to that link we can get to that file and because this is a public link anyone can get to it now you might have noticed that it's going to copy the url from your server and this is a private ip so at some point you'll want to make your server public so that it's accessible through the internet but before you do let's do a couple of things first we'll want to go into settings then we'll want to change a few things in security now i highly recommend using a secure password here now you should have already set one up but just in case make a secure password here after ensuring you have a secure password let's turn on two-factor authentication so we'll go into administration security and then we'll go under two-factor authentication so we'll want to turn this on we'll want to make sure that this is turned on for admins then we'll save this then we'll want to go back into apps then we'll go under security then we'll want to search for totp and this is a two-factor totp provider let's download and enable then we'll go back into security for our user here we'll turn on the totp authenticator app let's enable it and now we can scan this barcode so here you'll want to use the google authenticator or something like authy and scan this barcode then we'll enter a password then we'll verify and now we're verified so let's sign back out and let's sign back in now we'll be greeted with the two factor auth prompt now we'll enter a code and now we can get in okay so now we're ready to host this publicly and that's a really big topic but i've already solved this in another video in a previous video i showed you how to set up traffic in metal lb to self-host all your services securely this will help you set up an ssl certificate as well as dynamic dns and after you get that installed and set up you can switch over this workload to use the metal lb and traffic load balancer that will enable you to host this service securely and after that you'll have a securely self-hosted collaboration platform where you could share files collaborate chat and even set up email and calendar events and the app store has more and more apps every day which gives you more and more capabilities within nexcloud and so the next time you go to share a large file with a friend maybe your ftp server isn't the greatest choice and so what do you think about nexcloud what do you think spinning up your own self-hosted collaboration site what do you think about using this to replace something like dropbox is it scary self-hosting some of your services in the cloud if so let me know in the comments section below and while you're down there don't forget to give this video a thumbs up and consider subscribing if you haven't already and if you have more questions you can always join my live stream i stream every tuesday thursday and saturday so if you have a question about this video or any of my other videos hop in my stream and i'd love to have you so thanks so much for watching and until next time stream on my friends don't look at my lipstick when i drink because it doesn't really show up that well isn't that crazy it totally can so weird and the lipstick is like so precise like do i have lipstick on my teeth do i have lipstick on my teeth anyone isn't that so crazy how precise it is oh anyways okay
Info
Channel: Techno Tim
Views: 45,909
Rating: undefined out of 5
Keywords: techno tim, selfhosted, self host, nextcloud, nextcloud setup, docker, rancher, kubernetes, k8s, dropbox replacement, Google apps replacement, home server, 2fa nextcloud, auth, google authenticator, totp, mariabdb, postgresql, open source, productivity platform, nextcloud tutorial, dif, linuxserver, privacy, collaboration, collabora, nextcloud talk, security, securing nextcloud, 2 factor authentication, I found a dropbox replacement, alternative to, personal cloud, private cloud, at home
Id: nt__J9Yr8_w
Channel Id: undefined
Length: 12min 45sec (765 seconds)
Published: Sat Nov 07 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.