Categories: Linuxopen source

How to Install Nextcloud All-in-One on Linux

What is Nextcloud?

Nextcloud is an awesome open-source platform that gives you exactly that. Think of it as your own personal cloud storage, like Dropbox or Google Drive, but with a super cool twist: you’re in charge!

Here’s why Nextcloud rocks:

  • You are the boss: Your data, your rules! With Nextcloud, you control who sees your stuff and how they see it.
  • Bend it to your will: Need a feature? Don’t wait around! Nextcloud lets you add or remove features to perfectly fit your needs.
  • Always getting better: The Nextcloud community is constantly buzzing with ideas and improvements, so your cloud just keeps getting better.
  • Teamwork makes the dream work: Built-in chat, video conferencing, and document sharing make working with others a breeze.
  • Work offline, no worries: Forgot your password to Wi-Fi? No problem! Nextcloud lets you access your files anytime, anywhere.
  • Fort Knox for your data: Top-notch security features like encryption and two-factor authentication keep your data safe and sound.
  • Save your bucks: Running Nextcloud yourself can be much cheaper than paying for cloud storage, especially in the long run.

But before you jump in, here are a few things to consider:

  • Techie Time: Setting up Nextcloud takes a little more know-how than clicking a button.
  • Be Your Own IT: You’ll be responsible for keeping your server up-to-date and running smoothly.
  • Mobile Apps Ahoy (but not quite there yet): The Nextcloud mobile apps are good, but they might not be as fancy as some other cloud storage apps.
  • Help When You Need It: While the Nextcloud community is great, they might not be available 24/7 like some big-name customer service teams.
  • Speed Demon or Speedy Gonzales? Depending on your setup, your self-hosted Nextcloud might not be quite as fast as giant cloud providers.

In the end, the choice is yours!

If you value privacy, control, and flexibility, and are up for a little challenge, Nextcloud is a fantastic option. If super-easy setup and instant help are most important, you might be happier with a traditional cloud storage service.

Nextcloud on a Budget: Minimum Requirements for Ubuntu 20.04 LTS

Want to ditch the big cloud guys and host your own private cloud with Nextcloud? “Nextcloud All-in-One” (AIO) makes it easy, even for tech newbies. But before you blast off, make sure your server has the muscle to handle it. Here’s what you’ll need for a smooth ride:

The Brains:

  • CPU: Think of it as the engine. Two cores will do the basics, but a beefier Intel Core i3 or AMD Ryzen 3 will give you more oomph.
  • RAM: The memory bank. 4GB gets you started, but 8GB will keep things zippy when you’re juggling files and collaborating.
  • Storage: Your digital warehouse. 50GB is the bare minimum, but consider how much stuff you plan to store and what apps you’ll use.

The Software Stack:

  • Ubuntu 20.04 LTS: Your operating system, like the foundation of your house. This stable version of Ubuntu is perfect for Nextcloud.
  • Docker: Imagine it as a container ship for your apps. The latest stable version is all you need.
  • Docker Compose (optional): Think of it as the harbor master, making container management a breeze. Not essential, but handy.

Don’t Forget the Network:

  • Internet: A reliable connection is key. Aim for at least 10 Mbps upload speed for smooth syncing and collaboration.

Open the Gates (Ports):

  • 22: This is the backdoor for server management. Keep it locked tight!
  • 8080/TCP: Mastercontainer Interface with self-signed certificate (works always, also if only access via IP-address is possible, e.g. https://ip.address.of.this.server:8080/)
  • 80/TCP: redirects to Nextcloud (is used for getting the certificate via ACME http-challenge for the Mastercontainer)
  • 8443/TCP: Mastercontainer Interface with valid certificate (only works if port 80 and 8443 are open/forwarded in your firewall/router and you point a domain to your server. It generates a valid certificate then automatically and access via e.g. https://public.domain.com:8443/ is possible.)
  • 443/TCP: will be used by the Apache container later on and needs to be open/forwarded in your firewall/router
  • 443/UDP: will be used by the Apache container later on and needs to be open/forwarded in your firewall/router if you want to enable http3
  • 3478/TCP and 3478/UDP: will be used by the Turnserver inside the Talk container and needs to be open/forwarded in your firewall/router

Remember: These are the bare bones. If you have a bigger team or plan to store tons of data, you might need to upgrade your hardware for optimal performance. Check out the Nextcloud docs and community for tips on getting the most out of your setup.

So, ditch the data dragons and take control of your digital life with Nextcloud! With a little planning and the right gear, you’ll be hosting your own private cloud in no time.

Install Docker and Docker Compose:

apt update && 
apt upgrade -y &&
curl -fsSL https://get.docker.com -o get-docker.sh &&
sudo sh get-docker.sh &&
curl -SL https://github.com/docker/compose/releases/download/v2.13.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose &&
chmod +x /usr/local/bin/docker-compose &&
apt-get install docker-compose-plugin

Installation Nextcloud All-in-One:

Run Master Container:

Run the command below in order to start the container on Linux and without a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) already in place:

sudo docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest

Explanation of the command:

  • sudo docker run This command spins up a new docker container. Docker commands can optionally be used without sudo if the user is added to the docker group (this is not the same as docker rootless, see FAQ below).
  • –init This option makes sure that no zombie-processes are created, ever. See https://docs.docker.com/engine/reference/run/#specify-an-init-process
  • -sig-proxy=false This option allows to exit the container shell that gets attached automatically when using docker run by using [CTRL] + [C] without shutting down the container.
  • –name nextcloud-aio-mastercontainer This is the name of the container. This line is not allowed to be changed, since mastercontainer updates would fail.
  • –restart always This is the “restart policy”. always means that the container should always get started with the Docker daemon. See the Docker documentation for further detail about restart policies: https://docs.docker.com/config/containers/start-containers-automatically/
  • –publish 80:80 This means that port 80 of the container should get published on the host using port 80. It is used for getting valid certificates for the AIO interface if you want to use port 8443. It is not needed if you run AIO behind a web server or reverse proxy and can get removed in that case as you can simply use port 8080 for the AIO interface then.
  • –publish 8080:8080 This means that port 8080 of the container should get published on the host using port 8080. This port is used for the AIO interface and uses a self-signed certificate by default. You can also use a different host port if port 8080 is already used on your host, for example –publish 8081:8080 (only the first port can be changed for the host, the second port is for the container and must remain at 8080).
  • –publish 8443:8443 This means that port 8443 of the container should get published on the host using port 8443. If you publish port 80 and 8443 to the public internet, you can access the AIO interface via this port with a valid certificate. It is not needed if you run AIO behind a web server or reverse proxy and can get removed in that case as you can simply use port 8080 for the AIO interface then.
  • –volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config This means that the files that are created by the mastercontainer will be stored in a docker volume that is called nextcloud_aio_mastercontainer. This line is not allowed to be changed, since built-in backups would fail later on.
  • –volume /var/run/docker.sock:/var/run/docker.sock:ro The docker socket is mounted into the container which is used for spinning up all the other containers and for further features. It needs to be adjusted on Windows/macOS and on docker rootless. See the applicable documentation on this. If adjusting, don’t forget to also set WATCHTOWER_DOCKER_SOCKET_PATH! If you dislike this, see https://github.com/nextcloud/all-in-one/tree/main/manual-install.
  • nextcloud/all-in-one:latest This is the docker container image that is used.

fter the initial startup, you should be able to open the Nextcloud AIO Interface now on port 8080 of this server.

E.g. https://ip.address.of.this.server:8080

How does it work?

Imagine Nextcloud AIO as a handy robot captain managing your personal cloud ship. Inspired by other helpful tools, it talks directly to Docker to build and launch all the containers needed for your Nextcloud island. This means with one command, you get a full-featured Nextcloud set up, ready to sail!

Updates are a breeze too, no more waiting for clunky system updates because everything lives in its own container. And to top it off, you get a simple dashboard to easily manage your cloud island like a true captain!

This version avoids technical jargon like “docker daemon” and “docker socket” and uses a relatable nautical theme to explain the concept. It also emphasizes the user-friendly aspects and avoids plagiarism. I hope it’s easier to understand!

Watch Video Tutorial:

Confused about setting up your own Nextcloud? Ditch the dry guides and watch my video tutorial

  • Clear, concise instructions in Urdu/Hindi with English subtitles for everyone.
  • Visual demonstration makes every step crystal clear.
  • Time-saving guide gets you up and running fast.
kash

Recent Posts

How to Install Rallly with Docker Compose

What is Rallly? Rallly is an open-source scheduling and collaboration tool designed to make it…

2 weeks ago

How to Install OpenProject: A Step-by-Step Guide for Beginners

Introduction OpenProject is a project management tool designed to help teams organize, collaborate, and track…

2 months ago

Part 2: Jitsi Meet Host Authentication & JWT Token Configuration

Hey there! Welcome back to the website, and today we're diving deeper into Jitsi Meet.…

7 months ago

Self-Hosted Chat: Set Up Your Own Mattermost Server with Ease

Introduction Boost your team's collaboration and productivity with Mattermost, a secure and versatile communication platform.…

9 months ago

How to install n8n in Linux using Docker-Compose

Introduction n8n.io is your secret weapon for workflow automation! It's a user-friendly platform that lets…

10 months ago

How to install Chatwoot on Ubuntu using Script

Introduction Taming the Inbox Beast: What is Chatwoot and How Can it Save You From…

12 months ago