TL,DR: beginner tries to set up NextCloud via docker components without having a domain. Trying to access via IP doesn’t work. Probably made a few mistakes/missed some important stuff along the way
Hi everyone,
I am completely new to self hosting. Like many others I want to move away from Google, Apple, Microsoft... for my Calendar, Tasks and Contacts, and I thought I would try self hosting all that in NextCloud. I have already tried a 3rd-party hosted NextCloud instance and I feel comfortable with it, so now I want to do the next step and host it myself on a RaspBerry Pi 4 (4GB) that I recently purchased.
I have read around and searched for tutorials, and although I am still a bit lost I decided I would start working on it and see what problems I find along the way, and learn from this. Once I’m done I hope to have learned properly, and I plan to wipe everything and do it again, this time knowing better what I’m doing.
So, to begin with I decided to do it using Docker Compose, as I’ve read it makes setup and troubleshooting easier. I found 2 tutorials that looked good to me: tutorial 1 and tutorial 2, but going through them I see the most frequent case they require that I have my own domain (tutorial 1 has only that option, tutorial 2 offers that option or using an IP address). Do I need to have my own domain to have NextCloud calendar, tasks and contacts shared between my computer and my smartphone? If both options are possible, is one of them more secure than the other? is there some strong reason to avoid one of them?
Since I don’t have a domain (I’m completely new to this), I opted to try tutorial 2 with IP address, but I got stuck in the end, where I am supposed to access my NextCloud Web Interface. Tutorial 2 suggests getting my Raspberry Pi IP address with hostname -I
(step 17), but this way I get five different IP addresses (4 IPv4 and one IPv6), not just one. When I try any of those IPs on a browser (step 18) none of them work. I guess I am missing something basic here, so I’d be grateful if someone can point me in the right direction.
Searching for an answer I found a comment on reddit saying that I can skip getting a domain and host locally (no domain) and set up a VPN.
Would it be necessary in my case to get a domain? If I skip the domain, what steps am I missing to be able to access my current NextCloud docker installation? What mistakes have I made so far, and what resources can I use to learn about what I’m missing? Do you have any other tips for an absolute beginner (who is comfortable around the linux command line)?
The domain makes proper security certificates for HTTPS much more usable and easy to manage.
The reason you are finding it hard to use IP only is because yiu have to disable certain security features ti make it work.
You can get a domain for $1 per year. I would highly suggest getting a domain and setting up a proper reverse proxy which will allow to to easily setup any service you want after that.
Nextcloud is also one of the harder things to setup.
You could start with something easier like a simple dokuwiki site as a test to get the reverse proxy and domain name part working.
There is a reason why this is the "correct" way to do this. It will make all future projects much easier.
There's free domains too. I can't recommend any but I know .tk should be free.
http://www.dot.tk/en/index.html?lang=en
Thank you for your answer. I will look into getting a domain, but I want to try to fight with this a bit more, mainly as a learning experience. I will also look for easier projects for a beginner, like the dokuwiki you recommended.
Don't freak out about a domain, we were all there and tried to get our stuff to work without them. Learn from us, young Padawan. Learn from our mistakes.
I use namecheap and they have been reliable, easy to use, and well, cheap :D
I set mine up with a no-ip dyndns for free. Lots of options here op. But in the long run having any domain is going to smooth out the process. Also don't skip over LetsEncrypt cert.