It can be an ip address, if you have a static ip. If you’re planning to host this on the open internet and have a dynamic ip (home internet is most likely for this), or static and don’t want to pay for a top level domain you can use a service like noip.com for a free address like “test.ddns.net”
You can also change this after the initial setup in Nextcloud’s config.php as well as as additional domain names/ip addresses that can reach the server.
and just to get this right, if i want to acess it outside of my lan, i cant use my ip? i dont think my ip changes, has been the same as long as i remember
You can purchase one, or as a first step you can use duckdns.org which is entirely free! Then when you think you want your own domain name you could just switch :-)
If you only need nextcloud on your local network, a quick and dirty way of assigning hostnames to machines is the hosts file. Obviously, this has to be done on every computer from which you wish to access nextcloud. Also, nonrooted mobile OSs don't let you edit the hosts file.
Alternatively, you can set up a local DNS server. Pihole also has that capability (I personally had mixed results with Pihole, not sure if I did something wrong). Some routers may have that too.
If you need it public on the internet, yes, you need a domain name. Some providers offer free domains (but it will be a subdomain of the provider). Something to keep in mind is that your IP is probably dynamic. When you connect to the Internet, the ISP assigns you a random IP address from their pool of IPs. To keep the domain up to date, you will need to setup a dynamic DNS solution. This is a simple script/program that periodically checks your IP, and if it changes, updates that domain automatically.
What is the reason you do not want a domain? it is not that DNS-domains are that expensive these days.
The cheapest option I found is .ovh (which is one of the major cloud-providers in France), which is 3 euro / year (+VAT). You can then put as much hosts or subdomains under it, and it supports dynamic IP.
Agreed, .ovh is not the most "professional" looking domain, but it depends on what you want to do. If your goal is simply to have something for yourself / family / friends, then this is good enough.
BTW. Having your own domain for a nextcloud instance has additional advances: you can get a real https/tls certificate from letsencrypt, and -if you put a reverse proxy in front of your NC- it shields you from people who just scan the complete IP-space of the internet but who do not know your domain.
And once you have you domainname, you can do the following:
set up a reverse reverse proxy (apache, nginx) in front of nextcloud
in the configuration of apache/bginx use virtual hosts.
make sure that the default virtualhost (in apache, that is the the one that does not have "ServerName") first in the configuration. Point that to a local website with just an empty directory
then, AFTER the default virtual host, add the reverse-proxy configuration of your nextcloud instance.
What this does, is that if somebody addresses your website with a URL that does not contain the exact hostname of your nextcloud, the webquery will go to the empty website and simply return a 404. A hacker who does a webrequest to "https://your-ip-address/login" will just get a "404 not found" and not reach your nextcloud instance.
This keeps people who just scan the internet for vulnerable systems and try out all kind of URLs to try to get in out of your nextcloud.
Of course, this only works if you keep the full hostname of your instance to yourself and do not post it somewhere (including social media, mailing-lists, ...)
Depending on what you are trying to do, not necessarily. NextCloud itself doesn’t really care, as far as I know, as long as it’s address doesn’t change. AIO on the other hand is setup in such a way that it needs a resolvable domain name and a valid certificate for https.
This could be done by spinning up your own certificate authority and dns server, but that is a lot of extra work and would be local network access only.
Another way would be to use a free domain and a free certificate from let’s encrypt. The downside here is that the domain authority could yank your domain at any time, for any reason (as happened to all of the free .ml domains recently). At which point your certificate would also stop working resulting in a situation where you may have to nuke and pave.
If you want to be local access only, I would pick an install path other than AIO.
If you want to be able to access NextCloud remotely, purchase a domain name.
A VPN, such as TailScale would be considered local network in this situation.
You don't need to especially not in your local network, but if you want to expose it to the internet then it would definitely make sense since you need a domain in order to use SSL encryption.
I'm not very familiar with NextCloud but you can use something like duckDns to direct traffic to your ip for free. Still an actual domain is a bit nicer if you want to share the URL.
Someone linked linuxserver.io docker image that you can use with local IP. Then if you want nextcloud for yourself or just a few family members, you can setup VPN and still use local IP from anywhere. No need to buy a domain, but you need some (free) service like duckdns that tracks your public IP so you can connect to your home network anytime. You can also set your custom domain using reverse proxy (made up domain name for local use, still not payed one), but you will have to allow it in your nextcloud config
Buying domain and setting up certificates is what Im going to do just to get rid of cert warnings in a browser on my phone
I'm not sure how nextcloud handles it, but as long as you can resolve the domain then you can put whatever you want.
You usually purchase a domain so it appears in the internet with the major DNS', but if you only have the site in your internal network then you can put whatever you want as long as you update your internal DNS.
Usually you can do this by manually updating the hosts file in your machines.
But a better way is to have something like PiHole, in which you can set your local DNS to resolve to your own IP.
After that the only annoyance are the SSL certificates which will be selfsigned since browsers show a warning but some services don't have a way to work with them.
for the nextcloud instance on my local LAN , I use the .local domain (multicast DNS).
Just enable avahi on your server and you can use hostname.local on your network without having to deal with local DNS on your router and so on.