Nextcloud – SSD Nodes https://www.ssdnodes.com VPS Cloud Hosting For Hundreds Less Wed, 11 Mar 2026 16:43:03 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.1 https://www.ssdnodes.com/wp-content/uploads/2024/09/fav.svg Nextcloud – SSD Nodes https://www.ssdnodes.com 32 32 Nextcloud vs Seafile vs Syncthing vs OwnCloud: Best Self-Hosted Dropbox Alternatives https://www.ssdnodes.com/blog/nextcloud-vs-seafile-dropbox-alternative/ https://www.ssdnodes.com/blog/nextcloud-vs-seafile-dropbox-alternative/#respond Fri, 13 Feb 2026 10:00:07 +0000 https://blog.ssdnodes.com/blog/?p=2826 Looking for the best open-source Dropbox alternative? In this article, I will go through a detailed Seafile vs NextCloud vs Syncthing vs OwnCloud comparison to help you decide.

Dropbox is an extremely popular file-sharing platform that comes with a free plan, but its functionality is fairly limited and might not suit everyone's requirements. So, in this post, we'll be taking a look at the very best Dropbox alternatives out there and help you find the best option...

After all, one great way to get incredible value out of your cloud server is by self-hosting your own open-source Dropbox alternative for cloud storage and file-syncing.

Looking for a quick overview of all available options? Check out our comprehensive guide to the best Nextcloud alternatives for self-hosted storage.

Worth Noting

While Seafile and Syncthing each serve distinct purposes, NextCloud in my experience offers the most well-rounded solution, especially for those just starting their self-hosting journey. It combines Dropbox-like simplicity with powerful features you can grow into. If you're looking to host your own cloud storage, you'll be pleased to know NextCloud deploys instantly on our high-performance SSD and NVMe VPS servers, at a fraction of typical hosting costs. See our surprisingly affordable plans →

Nextcloud vs Seafile vs Syncthing vs OwnCloud

Open-Source Dropbox Alternatives

There are a lot of alternatives to Dropbox out there, each of them generally fits a specific use case best. However, three of the self-hosted open-source Dropbox alternatives stand out: NextCloud vs Seafile vs Syncthing vs OwnCloud.

Seafile vs. NextCloud vs. Syncthing vs. OwnCloud

In a nutshell, Syncthing is a decentralized file synchronization solution. Seafile is a focused and efficient option for file syncing and sharing. Nextcloud offers a broader range of features including collaboration tools and third-party integrations. OwnCloud is Nextcloud's predecessor, offering similar functionality with a more enterprise-focused, stable approach.

Seafile vs. Syncthing

Seafile provides centralized file syncing with more advanced file syncing and sharing features, while Syncthing offers decentralized file synchronization focused on peer-to-peer sharing without relying on a central server. So, if you need to sync your files on multiple servers and locations, go with Syncthing. On the other hand, go with Seafile for straightforward file syncing.

NextCloud vs. Seafile

Nextcloud offers a broader range of features including collaboration tools and integration options, whereas Seafile is more focused on efficient file syncing and sharing. In my experience, Seafile is better if you only require a direct file synchronization tool. On the other hand, go with NextCloud if you need third-party integrations such as email clients and Moodle.

NextCloud vs. OwnCloud

OwnCloud is actually where Nextcloud originated. Nextcloud was forked from OwnCloud in 2016. While they share similar codebases and features, they've evolved differently over the years. OwnCloud focuses on enterprise stability with a more conservative release cycle, while Nextcloud prioritizes rapid feature development and community-driven innovation.

In my experience, OwnCloud offers better stability for large enterprise deployments where proven reliability matters more than cutting-edge features. The release cycle is slower and more tested, which means fewer unexpected bugs but also slower adoption of new capabilities. OwnCloud also has stronger enterprise support options and a more mature approach to multi-tenancy.

Choose OwnCloud over Nextcloud if you're running an enterprise environment where stability and predictable updates are critical. Stick with Nextcloud if you want faster feature development, a more active community, and the latest integrations.

Detailed Comparison: Seafile vs. NextCloud vs. Syncthing vs. OwnCloud

All of these file-syncing Dropbox alternatives have features to access, sync, and share data across various devices. On top of that, each of them provides services like audio/video/text chat, or the calendar/contact/mail integration, and much more.

But before we dive deep into the features, it's important to note that Syncthing is a lightweight peer-to-peer synchronization solution. That means there's no central third-party server holding a copy of all your data. Syncthing synchronizes files directly between all the machines which need access to those files.

On the contrary, both NextCloud and Seafile need a centralized server (your VPS) to sync data with all your connected machines and devices.

That alone might be enough to swing you in one direction or another, but let’s get on with the features grid!

  NextCloud Seafile Syncthing OwnCloud
License Open source Open source/Enterprise License Open source Open source/Enterprise License
Large file support Yes Yes Yes Yes
Self-hosted Yes Yes Yes
Server OS Linux/Windows/MacOS Linux/Windows Linux/Windows
Docker Support Yes Yes Yes Yes
Language PHP C, Python GO PHP
Mobile Clients iPhone/Android/Windows iPhone/Android Android iPhone/Android
Desktop Clients Mac/Windows/Linux Mac/Windows/Linux Mac/Windows/Linux Mac/Windows/Linux
Single Sign-On Yes No No Yes
Sync local folder Yes Yes Yes Yes
LAN Synchronization No Yes Yes No
Multi-Tenant No Yes No Yes
File Versioning Yes Yes Yes Yes
Audio/Video/Text chat Yes No No No
Calendar/Contact/Mail integration Yes Calendar and Contact No Calendar and Contact
Active Directory Support Yes Yes No Yes
Online Office Yes In Seafile professional server No Yes (Enterprise edition)
File Locking Yes Yes Yes Yes
File Access Control Yes Yes Yes Yes
Centralized Yes Yes No Yes

Licenses and Pricing

Licenses - syncthing vs seafile vs nextcloud vs owncloud

Nextcloud emerged as a fork of ownCloud in 2016. OwnCloud provides two versions: an open-source community edition and a proprietary enterprise edition designed for large organizations with enhanced capabilities. Nextcloud takes a different approach, maintaining a single open-source version released under the GNU AGPLv3 license, while offering paid enterprise support contracts separately.

Seafile offers two editions: a free community edition and a professional edition with additional features for enterprise environments. The developers release the community edition under the terms of the GNU Affero General Public License v3. Seafile releases its professional version under a proprietary license.

Syncthing has only one version, a free community edition released under the license GNU AGPLv3 initially, which they changed to MPL V2 (Mozilla Public License) at a later stage.

Docker-Based Installation

open source dropbox alternatives - Docker
The convenience of deploying Docker-based applications have convinced many developers to adopt Dockerfiles and Docker images as a way of helping users install their software.

Using NextCloud's pre-built Docker image, you can get up and running within minutes. Seafile, Syncthing, and OwnCloud also support Docker-based setups, which means you can install any of these four Dropbox alternatives in your VPS environment quickly. OwnCloud's Docker deployment is particularly well-documented for enterprise environments.

Mobile Apps

A mobile sync client enables file and folder synchronization between your smartphone and server, ensuring you have current versions of your data regardless of location. For anyone seeking a comprehensive Dropbox alternative, mobile sync functionality is likely an essential requirement.

NextCloud offers mobile clients for both Android and iOS. Seafile offers mobile clients for iOS and Android and, Syncthing provides a mobile client for Android only.

Desktop App Support/Compatibility

Like mobile clients, you can sync files and folders from your desktop to the file sync server using the desktop clients offered by each of them.

All of them provide desktop clients for Windows, Linux, and Mac OS. So, we don’t find any significant differences regarding OS compatibility for desktops.

But, comparing Seafile vs NextCloud, Seafile has the edge since it offers drive and sync clients separately for desktop platforms. It also beats Syncthing in this department. Apart from desktop clients, Seafile also provides a terminal client on various Linux distributions to sync files and folders using a terminal.
NextCloud vs Seafile vs Syncthing: The NextCloud web interface

Security and Performance

Security concerns frequently motivate the search for open-source Dropbox alternatives. While Dropbox is a major corporation with sophisticated security infrastructure, you're ultimately entrusting your valuable and potentially sensitive data to a third-party company's control.

These solutions let you control your own data on your own server. So how do Seafile vs NextCloud vs Syncthing compare when it comes to keeping your data safe?

NextCloud offers robust security measures, including server-side storage encryption, client-side end-to-end encryption, and encrypted data transfer. NextCloud’s authentication scheme includes LDAP, SAML, Active Directory, Kerberos, and it all works out of the box.

Seafile also offers the same level of encryptions as found in NextCloud, but it does not deliver on features like LDAP and Active Directory.

Syncthing does not employ a traditional authentication mechanism through usernames and passwords but instead uses a certificate-based authentication scheme to determine its Device ID. Syncthing then shares this ID with all the other devices that you want to connect. Beyond that, TLS security/encryption encrypts all device-to-device communication. I’d argue that not needing a centralized server is a security benefit as well since there’s no centralized location to be attacked.

Syncthing's Go-based architecture provides a performance advantage compared to NextCloud and Seafile. NextCloud's web interface can exhibit sluggish performance on certain systems, particularly ARM devices or lower-spec hardware. While I haven't conducted formal benchmarks across these platforms, my experience shows Seafile delivers superior transfer speed and reliability, especially when handling large datasets. NextCloud occasionally produced failed file transfers during my testing.

Based on my experience, I’d say Syncthing has the edge over Nextcloud and Seafile from a performance and security point of view.

NextCloud vs. Seafile vs. Syncthing: The Seafile web interface

Multi-Tenancy

The multi-tenancy feature of any cloud storage/file syncing solution is designed to help you host multiple, completely segregated customers from a single instance. One can create multiple organizations that are separated from each other, and, of course, users between the organizations can’t share files and folders.

Right now, only Seafile offers multi-tenancy, so if you’re planning to host multiple organizations on your self-hosted file syncing instance, then Seafile is your only choice

It’s important to note when comparing Seafile vs NextCloud, that NextCloud can host multiple users on a single instance, which still works if you’d like to invite friends or family to use your self-hosted syncing solution. In this case, these users all share the same database, which doesn’t offer nearly the security and segregation of true multi-tenancy.

NextCloud vs. Seafile vs. Syncthing: The Syncthing web interface

Which Dropbox Alternative Is Easiest To Install?

Let’s check the difficulty level installing each of these solutions on your VPS.

NextCloud

The prerequisites for installing Nextcloud is a LAMP or LEMP stack. If you have already configured a LAMP/LEMP stack, then you only need to create a database and tweak a few settings in PHP and Apache/Nginx to complete the NextCloud installation with ease. Check out our How To Install Nextcloud With Docker guide to install Nextcloud on your VPS.

Seafile

Seafile is written using Python, so you need both the Python libraries, along with a MySQL/MariaDB database, as prerequisites to install. Luckily, none of that is very complicated.

One advantage of Seafile is that the upgrade process is very smooth and easy. You can usually upgrade NextCloud via the built-in upgrader or the command line, but I’ve found that NextCloud is more likely to break if I have lots of apps enabled. I’ve had to fiddle around with the database, folder permissions, or web server settings on a few occasions.

Syncthing

The Syncthing installation, outline in its documentation, is a bit different than the other two. Syncthing uses a single binary that you download and run from the command line on your VPS. That binary boots up Syncthing and a web server for you to access and configure which folders you want to share, and with which other machines.

OwnCloud

OwnCloud’s installation requirements are nearly identical to Nextcloud’s. Both need a LAMP or LEMP stack. Since OwnCloud is Nextcloud’s predecessor, the setup process is very similar. You’ll need to configure a database, adjust PHP settings, and set up your web server.

The main advantage with OwnCloud is that their enterprise documentation is more detailed for complex deployments, making it slightly easier if you’re setting up a large-scale multi-tenant environment. For basic installations, the complexity is identical to Nextcloud.

Seafile vs NextCloud vs Syncthing vs OwnCloud – Which Is The Best?

Choosing between these four solutions depends on your specific needs:

Choose Seafile if:

  • You need the fastest file transfers and best performance
  • You’re syncing large files regularly
  • You want multi-tenancy support for hosting multiple organizations
  • Performance is your top priority

Choose Nextcloud if:

  • You need the broadest app ecosystem and integrations
  • You want built-in collaboration tools (Talk, Calendar, Contacts)
  • You value rapid feature development and an active community
  • You’re comfortable with more frequent updates

Choose OwnCloud if:

  • You want Nextcloud-like features with better long-term stability
  • You’re running an enterprise environment requiring proven reliability
  • You prefer fewer but more thoroughly tested updates
  • You need strong enterprise support options

Choose Syncthing if:

  • You want decentralized, peer-to-peer synchronization
  • You don’t want to manage a central server
  • Privacy and security without centralized dependencies are paramount
  • You’re comfortable with a more technical, minimalist approach

Personally, I’m impressed with Syncthing’s decentralized approach. Not requiring a centralized server for storing and syncing data makes it more secure and minimizes privacy risks. You can still use your VPS as one of many destinations for your files without being forced to route all traffic through it.

For most users just starting with self-hosted storage, Nextcloud offers the best balance of features and ease of use. For enterprise deployments prioritizing stability, OwnCloud is the safer choice. For performance-focused teams, Seafile can’t be beat. And for privacy advocates, Syncthing’s peer-to-peer model is unmatched.

]]>
https://www.ssdnodes.com/blog/nextcloud-vs-seafile-dropbox-alternative/feed/ 0
How To Install Nextcloud on Debian 12 with Snap and Let’s Encrypt https://www.ssdnodes.com/blog/install-nextcloud-on-debian-12-lets-encrypt/ https://www.ssdnodes.com/blog/install-nextcloud-on-debian-12-lets-encrypt/#respond Mon, 18 Aug 2025 08:00:51 +0000 https://blog.ssdnodes.com/blog/?p=7425 Looking for a tutorial on how to install Nextcloud on Debian 12 and secure it with a Let's Encrypt SSL certificate? You're in the right place!

Install Nextcloud on Debian with Let's Encrypt

Nextcloud is an open source platform that offers a modern content collaboration platform for managing your files, with capabilities such as real-time document editing, video chat & groupware on mobile, desktop and web. Nextcloud is similar to Dropbox and Google Drive, and was forked from the ownCloud open source software by some of the original ownCloud developers.

Installing Nextcloud on Debian 12 with Let's Encrypt

To install Nextcloud on Debian 12 with a Let's Encrypt certificate, you'll first update the package index, install the Snap package manager for Debian, use it to install Nextcloud, configure a Nextcloud administrative account, then you'll set up Let's Encrypt using the nextcloud.enable-https command.

Note

If you want to skip all the technical steps of setting up Nextcloud on your server and have it installed in minutes, you can use our tried and tested 1-click Nextcloud application. Just choose a server, and while prompted to choose the operating system, choose Nextcloud from the dropdown menu. This will set up Nextcloud in minutes! However, if you prefer to get your hands dirty, keep reading.

Prerequisites

To follow this tutorial, you'll need:

  • A Debian 12 server. Get your VPS hosting from a reputable and trustworthy provider like SSD Nodes. We offer powerful Debian servers and the best deals. Take a look at our offerings and prepare for your mind to be blown 🤯.

Check out our How to access your server using SSH guide to learn how to access your server and create a sudo user.

Step 1: Updating the Package Cache

Start by updating the packages in the package manager cache to the latest available versions using the following command:

sudo apt update

Step 2: Installing Nextcloud on Debian 12

To install Nextcloud, we can take advantage of the Snap packaging tool, which allows software organizations to publish software in a single package with all dependencies, configurations, and auto-updating features.

First, install the Snap packaging tool with the following command:

sudo apt install snapd -y

Run the following command to install the Nextcloud snap package:

sudo snap install nextcloud

This will download and install Nextcloud on your system, and you will receive an output similar to the following:

nextcloud installed on debian

To confirm that the installation was successful, run the following command:

snap changes nextcloud

You should receive the following output:

debian snap changes nextcloud

For more information on the Nextcloud package, you can use the following command:

snap info nextcloud

snap nextcloud info command

This will give you information such as the publisher, contact information, commands, services, and other metrics.

Step 3: Configuring your Nextcloud Administrative Account

Although you can configure your Nextcloud admin account on the web interface, it is best to avoid making your unsecured Nextcloud configuration accessible on the Internet.

You can use the nextcloud.manual-install command to configure a Nextcloud admin account directly from the command line by passing it a username and a password like so:

sudo /snap/bin/nextcloud.manual-install your_user password

Make sure to replace your_user and your_password with your preferred username and password.

As a result, you should see the following output:

Nextcloud was successfully installed

With this, you now need to add your server's domain name and IP address to your Nextcloud trusted domains.

Step 4: Configuring Trusted Domains

By default, Nextcloud only responds to web requests that are sent to the localhost hostname. This makes us unable to access Nextcloud via our server's IP address or our domain name. To solve this and make Nextcloud accessible to the outside world, we’ll need to change the trusted domains setting.

To add an additional trusted domain to Nextcloud on Debian, run the following command:

sudo /snap/bin/nextcloud.occ config:system:set trusted_domains 1 --value=example.com

Repeat this command for each domain name of yours with an incremented number, and make sure to replace example.com with your domain name or IP address. For example to add another domain:

sudo /snap/bin/nextcloud.occ config:system:set trusted_domains 2 --value=cloud.example.com

And to add your IP address:

sudo /snap/bin/nextcloud.occ config:system:set trusted_domains 3 --value=your_ip_address

Note the increments in the trusted_domains parameter.

To see all your trusted domains, use the following command:

sudo /snap/bin/nextcloud.occ config:system:get trusted_domains

nextcloud trusted domains on debian server

Next, you'll secure your Nextcloud web server using HTTPS with a Let's Encrypt SSL certificate.

Step 5: Nextcloud Let's Encrypt Setup on Debian

To secure your Nextcloud server with HTTPS, add a Let's Encrypt SSL certificate to your installation using the following command:

sudo /snap/bin/nextcloud.enable-https lets-encrypt

You'll be presented with a few requirements:

letsencrypt for nextcloud on debian

Make sure your server meets these requirements and hit Y. Next, type in your email and domain name.

successful nextcloud letsencrypt setup

Restart Nextcloud:

sudo snap restart nextcloud

With this, you can now access your Nextcloud server throughout the Web via a secure HTTPS protocol.

Step 6: Using the Nextcloud Web Interface

With Nextcloud configured, navigate to your domain name or IP with your web browser:

https://your_domain_or_IP

Note: You may temporarily see a message informing you that Nextcloud is in Maintenance Mode, wait for a few minutes while Nextcloud sets things up, and refresh the page.

You should be moved to a login screen. Use the username and password you configured earlier.

nextcloud user interface

Congrats

You've successfully installed Nextcloud on your Debian 12 server, and secured it with a Let's Encrypt SSL certificate. You can now upload your files and collaborate with others on the cloud, using your own private VPS server.

For more on information on Nextcloud, check out their official website

Reader Alert!

If you feel that the technical instructions in this tutorial are time-consuming, or beyond your expertise, you can choose a very convenient and practical solution, ready-made, fully and professionally tested, and developed by SSD Nodes (That is us 😊). Just visit our website, choose the server’s specifications that fit your needs, and while prompted to choose among the operating systems and the 1-Click Applications we have, choose Nextcloud from the dropdown menu, complete your checkout, and in a couple of minutes our algorithms will take care of all the technical aspects smoothly and effortlessly, just for you!

Installing Nextcloud on Ubuntu

To install Nextcloud on Ubuntu, take a look at our How To Install and Configure Nextcloud on Ubuntu article.

FAQ

Does Nextcloud support end-to-end encryption?

Yes, Nextcloud supports end-to-end encryption for securing data. This feature encrypts files on the client side before they are uploaded to the server, ensuring that only the user has access to the unencrypted data.

What are the best practices for Nextcloud backups?

Regularly back up the Nextcloud data directory and database. Use tools like rsync for file backups and mysqldump for database dumps. Automate the process and store backups in a separate, secure location.

]]>
https://www.ssdnodes.com/blog/install-nextcloud-on-debian-12-lets-encrypt/feed/ 0
How to Install Nextcloud on Ubuntu 24.04 with Snap and Let’s Encrypt https://www.ssdnodes.com/blog/install-and-configure-nextcloud-on-ubuntu-24-04/ https://www.ssdnodes.com/blog/install-and-configure-nextcloud-on-ubuntu-24-04/#respond Fri, 16 Aug 2024 09:00:15 +0000 https://blog.ssdnodes.com/blog/?p=7228 Ready to install Nextcloud on Ubuntu 24.04 with Let's Encrypt? In this tutorial, I'll simplify this process and provide you with clear instructions to set up and configure your server with Nextcloud using the Snap package manager.

Nextcloud on Ubuntu 24.04 with Let's Encrypt

Nextcloud is an open source platform that offers a modern content collaboration platform for managing your files, with capabilities such as real-time document editing, video chat & groupware on mobile, desktop and web. Nextcloud is similar to Dropbox and Google Drive, and was forked from the ownCloud open source software by some of the original ownCloud developers.

Installing Nextcloud on Ubuntu 24.04 with Let's Encrypt

To install Nextcloud on Ubuntu 24.04 with a Let's Encrypt certificate, you'll first update the package index, use the Snap package manager to install Nextcloud, then configure a Nextcloud administrative account using the command line. Finally you'll set up Let's Encrypt using the nextcloud.enable-https command.

Note

If you want to skip all the technical steps of setting up Nextcloud on your server and have it installed in minutes, you can use our tried and tested 1-click Nextcloud application. Just choose a server, and while prompted to choose the operating system, choose Nextcloud from the dropdown menu. This will set up Nextcloud in minutes! However, if you prefer to get your hands dirty, keep reading.

Prerequisites

To follow this tutorial, you'll need:

  • An Ubuntu 24.04 server with a non-root user with sudo privileges.  If you haven't noticed, we offer extremely powerful Ubuntu servers at the globe's absolute lowest price. Take a look at our offerings and prepare for your mind to be blown 🤯.

Check out our How to access your server using SSH guide to learn how to access your server and create a sudo user.

Step 1: Updating the Package Cache

Start by updating the packages in the package manager cache to the latest available versions using the following command:

sudo apt update

Step 2: Installing Nextcloud on Ubuntu Using Snap

To install Nextcloud, we can take advantage of the Snap packaging tool for Ubuntu, which allows software organizations to publish software in a single package with all dependencies, configurations, and auto-updating features.

Run the following command to install the Nextcloud snap package:

sudo snap install nextcloud

This will download and install Nextcloud on your system, and you will receive an output similar to the following:

nextcloud installed

To confirm that the installation was successful, run the following command:

snap changes nextcloud

You should receive the following output:

nextcloud snap changes

For more information on the Nextcloud package, you can use the following command:

snap info nextcloud

snap info nextcloud
This will give you information such as the publisher, contact information, commands, services, and other metrics.

Step 3: Configuring your Nextcloud Administrative Account

Although you can configure your Nextcloud admin account on the web interface, it is best to avoid making your unsecured Nextcloud configuration accessible on the Internet.

You can use the nextcloud.manual-install command to configure a Nextcloud admin account directly from the command line by passing it a username and a password like so:

sudo nextcloud.manual-install your_user your_password

Make sure to replace your_user and your_password with your preferred username and password.

As a result, you should see the following output:

Nextcloud was successfully installed

With this, you now need to add your server's domain name and IP address to your trusted domains.

Step 4: Configuring Trusted Domains

By default, Nextcloud only responds to web requests that are sent to the localhost hostname. This makes us unable to access Nextcloud via our server's IP address or our domain name. To solve this and make Nextcloud accessible to the outside world, we’ll need to change the trusted domains setting.

To add an additional trusted domain to Nextcloud, run the following command:

sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com

Repeat this command for each domain name of yours with an incremented number, and make sure to replace example.com with your domain names or IP address. For example to add another domain:

sudo nextcloud.occ config:system:set trusted_domains 2 --value=cloud.example.com

And to add your IP address:

sudo nextcloud.occ config:system:set trusted_domains 3 --value=your_ip_address

Note the increments in the trusted_domains parameter.

To see all your trusted domains, use the following command:

sudo nextcloud.occ config:system:get trusted_domains

nextcloud trusted domains

With this, you can now install a Let's Encrypt SSL certificate.

Step 5: Nextcloud Let's Encrypt Setup for Ubuntu Servers

It is important to secure your Nextcloud server with HTTPS. To do so, add a Let's Encrypt SSL certificate to your Nextcloud installation using the following command:

sudo nextcloud.enable-https lets-encrypt

You'll be presented with a few requirements:

nextcloud let's encrypt requirements

Make sure your server meets these requirements and hit Y. Next, type in your email and domain name.

Restart Nextcloud:

sudo snap restart nextcloud

With this, you can now access your Nextcloud server throughout the Web via a secure HTTPS protocol.

Step 6: Using the Nextcloud Web Interface

With Nextcloud configured, navigate to your domain name or IP with your web browser:

https://your_domain_or_IP

Note: You may temporarily see a message informing you that Nextcloud is in Maintenance Mode, wait for a few minutes while Nextcloud sets things up, and refresh the page.

You should be moved to a login screen. Use the username and password you configured earlier.

Nextcloud running on an Ubuntu server

You will be greeted with a message that suggests you take advantage of different Nextcloud features with different recommended file templates.

In the Nextcloud web dashboard, you can manage your files, set your location for weather data and customize your Nextcloud experience. You can explore different features and pages in the user interface to learn more about what you can accomplish with Nextcloud.

Congrats

You've successfully installed Nextcloud on your Ubuntu 24.04 server with a Let's Encrypt SSL certificate, and you can now manage your files and collaborate with others on the cloud, using your own private server. For more on information on Nextcloud, check out their official website.

Reader Alert!

If you feel that the technical instructions in this tutorial are time-consuming, or beyond your expertise, you can choose a very convenient and practical solution, ready-made, fully and professionally tested, and developed by SSD Nodes (That is us 😊). Just visit our website, choose the server’s specifications that fit your needs, and while prompted to choose among the operating systems and the 1-Click Applications we have, choose Nextcloud from the dropdown menu, complete your checkout, and in a couple of minutes our algorithms will take care of all the technical aspects smoothly and effortlessly, just for you!

Installing Nextcloud on Debian

To install Nextcloud on Debian, check out our How To Install and Configure Nextcloud on Debian article.

FAQ

How can Nextcloud be deployed using Kubernetes?

Nextcloud can be deployed on Kubernetes by using Helm charts or custom manifests. This allows for scalable and manageable installations across various environments, leveraging Kubernetes' orchestration capabilities.

What are the system requirements for installing Nextcloud on Ubuntu 24.04?

Nextcloud requires a server running Ubuntu 24.04, with at least 2 GB of RAM and 500 MB of storage for the base installation.

How do I set up a reverse proxy for Nextcloud?

A reverse proxy for Nextcloud can be set up using Nginx or Apache. Configure the proxy to forward requests to the Nextcloud server, enhancing security and load balancing. Ensure SSL is configured for secure connections.

 

]]>
https://www.ssdnodes.com/blog/install-and-configure-nextcloud-on-ubuntu-24-04/feed/ 0
How To Install Nextcloud With Docker and Docker Compose https://www.ssdnodes.com/blog/installing-nextcloud-docker/ https://www.ssdnodes.com/blog/installing-nextcloud-docker/#comments Mon, 15 Apr 2024 07:00:24 +0000 https://blog.ssdnodes.com/blog/?p=1912 In this tutorial, we'll look at how to install Nextcloud using Docker and Docker Compose.

Specifically, we'll be installing Nexcloud along with an Nginx reverse proxy and Let’s Encrypt SSL in a CentOS, Ubuntu, or Debian dockerized environment.

Why Install Nextcloud With Docker and Docker Compose?

Nextcloud is an open source software suite for storing and synchronizing data, sort of like a free alternative to Dropbox or Google Drive.

Plus, with Nextcloud, you get an open system architecture that gives you additional functionality and full control of your data.

With Nextcloud, you can:

  • Store files, contacts, calendars and more on your server, and synchronize them across various devices
  • Share your data with others to view and collaborate on
  • Expand your Nextcloud installation with apps from the Nextcloud App Store,
  • Or build your own apps and integrate them with Nextcloud.

install nextcloud with docker

Install Nextcloud with Docker: Prerequisites

  • A VPS running Ubuntu 24.04, CentOS or Debian.  If you don't have one, no worries! We offer the best priced, most reliable, and fastest VPS servers in the market 🙂
  • A working Docker installation—for information about how to install Docker, check out our getting started with Docker tutorial.

Note

If you want to skip all the technical steps of setting up Nextcloud on your server and have it installed in minutes, then I have some great news for you! Our team of engineers has prepared a ready-to-use 1-Click Nextcloud application for your convenience. Just choose a server, and while prompted to choose the operating system, choose Nextcloud from the dropdown menu. This will set up Nextcloud in minutes, which means you don't even need this tutorial. Save time and save money with our Nextcloud 1-Click solution.

Step 1. Install Docker

Ubuntu 24.04/Debian 12
For both Ubuntu and Debian servers, the latest versions of Docker CE may not be available in the repositories. We need to install the prerequisite packages:

sudo apt-get update

sudo apt-get install curl gnupg2 apt-transport-https ca-certificates software-properties-common 

Next, we add the GPG keys, Docker repositories and finally install Docker. Here is where it gets different for both Ubuntu and Debian:

Ubuntu:

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Then install docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Debian:

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Now install Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Other Linux Distributions

If you are using another Linux distribution, check out the official Docker documentation.

Step 2. Install Docker Compose

To install Docker Compose, first determine the latest version from the releases page. At the time of writing, the current stable version is 2.26.0.

Create a new directory for Docker Plugins:

mkdir -p ~/.docker/cli-plugins/

Download the Docker Compose binary (Make sure to change 2.26.0 to the latest version):

curl -SL https://github.com/docker/compose/releases/download/v2.26.0/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose

Set execute permissions to make the binary executable:

chmod +x ~/.docker/cli-plugins/docker-compose

Verify the installation:

docker compose version

You should see the version you installed:

Docker Compose version v2.26.0

Step 3. Install Nextcloud using Docker and Docker Compose

We can now install Nextcloud with Docker and Docker Compose.

Before we start defining services in the docker-compose.yml file, we create a network so that containers can communicate. Run the following command in the terminal:

$ docker network create nextcloud_network

Since we want to containerize Nextcloud along with other containers associated with it, we will define and knit all the services together in the docker-compose.yml file incrementally.

For this tutorial, we’ll define the services one by one, starting with the Nginx reverse proxy:

  • Nginx reverse proxy
  • Let’s Encrypt
  • MariaDB
  • Nextcloud

Create the docker compose file where we will define all the services.

$ nano docker-compose.yml

Step 4. Configure the Nginx Reverse Proxy Container

In the file you just created, paste the following:

version: '3'  

services:

  proxy:
    image: jwilder/nginx-proxy:alpine
    labels:
      - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true"
    container_name: nextcloud-proxy
    networks:
      - nextcloud_network
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./proxy/conf.d:/etc/nginx/conf.d:rw
      - ./proxy/vhost.d:/etc/nginx/vhost.d:rw
      - ./proxy/html:/usr/share/nginx/html:rw
      - ./proxy/certs:/etc/nginx/certs:ro
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
    restart: unless-stopped

Let’s look at the configuration created in the above docker-compose.yml file in detail. The service for proxy uses the image from jwilder/nginx-proxy. The label "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy" is used so that the Let’s Encrypt container knows which nginx proxy container to use for certificate generation.Then, there is network by the name nextcloud_network, which is used by the containers to communicate among themselves. The Volumes section is used by the container to configure the Nginx virtual host and to access certificates generated by Let’s Encrypt companion container. The /etc/localtime:/etc/localtime:ro is used to duplicate the host timezone inside the container.

Step 5. Configure the Let’s Encrypt Container

Now that you have nginx-proxy container set up, you can add the following to your docker-compose.yml file.

  letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: nextcloud-letsencrypt
    depends_on:
      - proxy
    networks:
      - nextcloud_network
    volumes:
      - ./proxy/certs:/etc/nginx/certs:rw
      - ./proxy/vhost.d:/etc/nginx/vhost.d:rw
      - ./proxy/html:/usr/share/nginx/html:rw
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: unless-stopped

The Lets’ Encrypt container depends on our first service (proxy) and is a part of the network nextcloud_network. The restart: unless-stopped allows the containers to be stopped gracefully unless you manually run docker stop letsencrypt or docker-compose down letsencrypt.

Step 6. Configure the MariaDB Container

For Nextcloud to work correctly, we need to connect it to a MariaDB database. Fortunately, we can add that to our docker-compose.yml file as well:

  db:
    image: mariadb
    container_name: nextcloud-mariadb
    networks:
      - nextcloud_network
    volumes:
      - db:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro
    environment:
      - MYSQL_ROOT_PASSWORD=secret
      - MYSQL_PASSWORD=mysql
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    restart: unless-stopped

The service section for MariaDB is pretty self-explanatory. This container is also part of the network nextcloud_network. We have also defined the environment variable for the database name, username, and password that Nextcloud uses to connect to the database.

Step 7. Configure the Nextcloud Docker Container

We’re finally ready to create the Nextcloud Docker container in our docker-compose.yml file. Add the following to the bottom.

  app:
    image: nextcloud:latest
    container_name: nextcloud-app
    networks:
      - nextcloud_network
    depends_on:
      - letsencrypt
      - proxy
      - db
    volumes:
      - nextcloud:/var/www/html
      - ./app/config:/var/www/html/config
      - ./app/custom_apps:/var/www/html/custom_apps
      - ./app/data:/var/www/html/data
      - ./app/themes:/var/www/html/themes
      - /etc/localtime:/etc/localtime:ro
    environment:
      - VIRTUAL_HOST=nextcloud.YOUR-DOMAIN
      - LETSENCRYPT_HOST=nextcloud.YOUR-DOMAIN
      - LETSENCRYPT_EMAIL=YOUR-EMAIL
    restart: unless-stopped

The nextcloud service depends on the other three containers. To make Nextcloud’s data persistent while upgrading, and get access to backups, we use a named Docker volume nextcloud, similar to the way we used a Docker volume named db for the MariaDB data.
Here, we have defined the virtual host, Let’s Encrypt host, and email in the environment variables VIRTUAL_HOST, LETSENCRYPTHOST, and LETSENCRYPT``EMAIL, respectively. The proxy service creates the subdomain and encrypts it with Let’s Encrypt certificates for the container, given you supply valid domains and emails for those three environment variables.

At last, we need defined volumes for both Nextcloud and MariaDB for data persistence followed by networks.

volumes:
  nextcloud:
  db:

networks:
  nextcloud_network:

After combining all the service definitions, your final docker-compose.yml should look like following:

version: '3' 

services:

  proxy:
    image: jwilder/nginx-proxy:alpine
    labels:
      - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true"
    container_name: nextcloud-proxy
    networks:
      - nextcloud_network
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./proxy/conf.d:/etc/nginx/conf.d:rw
      - ./proxy/vhost.d:/etc/nginx/vhost.d:rw
      - ./proxy/html:/usr/share/nginx/html:rw
      - ./proxy/certs:/etc/nginx/certs:ro
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
    restart: unless-stopped

  letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: nextcloud-letsencrypt
    depends_on:
      - proxy
    networks:
      - nextcloud_network
    volumes:
      - ./proxy/certs:/etc/nginx/certs:rw
      - ./proxy/vhost.d:/etc/nginx/vhost.d:rw
      - ./proxy/html:/usr/share/nginx/html:rw
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: unless-stopped

  db:
    image: mariadb
    container_name: nextcloud-mariadb
    networks:
      - nextcloud_network
    volumes:
      - db:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro
    environment:
      - MYSQL_ROOT_PASSWORD=toor
      - MYSQL_PASSWORD=mysql
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    restart: unless-stopped

  app:
    image: nextcloud:latest
    container_name: nextcloud-app
    networks:
      - nextcloud_network
    depends_on:
      - letsencrypt
      - proxy
      - db
    volumes:
      - nextcloud:/var/www/html
      - ./app/config:/var/www/html/config
      - ./app/custom_apps:/var/www/html/custom_apps
      - ./app/data:/var/www/html/data
      - ./app/themes:/var/www/html/themes
      - /etc/localtime:/etc/localtime:ro
    environment:
      - VIRTUAL_HOST=nextcloud.YOUR-DOMAIN
      - LETSENCRYPT_HOST=nextcloud.YOUR-DOMAIN
      - LETSENCRYPT_EMAIL=YOUR-EMAIL
    restart: unless-stopped

volumes:
  nextcloud:
  db:

networks:
  nextcloud_network:

Step 8. Get Everything Running!

Now run the docker compose from the terminal to create the containers:

$ docker compose up -d
Creating nextcloud-mariadb ... done
Creating nextcloud-proxy   ... done
Creating nextcloud-letsencrypt ... done
Creating nextcloud-app         ... done

To confirm all the containers are running, issue the following command:

$ docker ps -a
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS              PORTS                                      NAMES
92222232c4be        nextcloud:latest                         "/entrypoint.sh apac…"   9 minutes ago       Up 9 minutes        80/tcp                                     nextcloud-app
89e96fe10ee6        jrcs/letsencrypt-nginx-proxy-companion   "/bin/bash /app/entr…"   9 minutes ago       Up 9 minutes                                                   nextcloud-letsencrypt
d059517f519c        jwilder/nginx-proxy:alpine               "/app/docker-entrypo…"   9 minutes ago       Up 9 minutes        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nextcloud-proxy
7e0945eb6608        mariadb                                  "docker-entrypoint.s…"   9 minutes ago       Up 9 minutes        3306/tcp                                   nextcloud-mariadb

Wait a minute for the SSL certificate generation process to finish, and then load up the domain name you chose in your browser. Enter your chosen admin username and password. Choose MySQL as the database in the configure database section. Type in the username, password, and database name you configured via the MYSQL_USER, MYSQL_PASSWORD, and MYSQL_DATABASE environment variable from earlier. Change the hostname value from localhost to db and click Finish Setup. The system then redirects you to the Nextcloud dashboard.

install nextcloud with docker and docker compose

The containerization of Nextcloud with Docker is complete! You have now learned how to install Nextcloud using Docker and Docker Compose.

Now you can upload files and photos to your drive hosted on your VPS and share them with others.

To extend the functionality of your Nextcloud server, you can now consider installing any number of the available apps, such as Bookmarks, Calendar, Contacts, Tasks, Notes, and more available on the Nextcloud App Store.

]]>
https://www.ssdnodes.com/blog/installing-nextcloud-docker/feed/ 4
Self-Hosting Nextcloud with Docker: Self-hosting handbook https://www.ssdnodes.com/blog/self-hosting-nextcloud/ https://www.ssdnodes.com/blog/self-hosting-nextcloud/#respond Tue, 21 Aug 2018 07:00:12 +0000 https://blog.ssdnodes.com/blog/?p=2461 Welcome to the fifth page of a handbook on self-hosting. Begin here. Read the previous page here. On this page, we’ll cover self-hosting Nextcloud with Docker (docker-compose, more specifically) on top of the stack we’ve built on previous pages.


Table of contents

  1. Self-hosting quickstart: Docker, domains, and DNS (look below!)
  2. A docker-compose tutorial
  3. Using docker-compose to add web apps
  4. Self-hosting administration
  5. Self-hosting Nextcloud with Docker

Topics covered on this page

  1. Why is self-hosting Nextcloud a good idea?
  2. What to add to your docker-compose.yml file
  3. Create your admin user and setup your database

Why is self-hosting Nextcloud a good idea?

My journey into self-hosting began with a simple problem: I wanted to be able to synchronize files between my various machines, a la Dropbox, but I didn’t want to pay yet another monthly SaaS subscription. My VPS-as-VPN experiment wasn’t going well, and so I decided to give my relatively unused VPS some new life.

That’s the great thing about self-hosting with a VPS—you can always pivot how you’re using it, or add something new on top of what you’re already doing (as long as you don’t run out of resources!). That’s a great way to get a return on your VPS investment.

On top of that, self-hosting Nextcloud offers many other benefits. I like the ability to completely control my data instead of handing it off to Dropbox or another cloud drive service like Google One (once Google Drive) or Microsoft’s OneDrive.

I don’t use many of Nextcloud’s features beyond simple file synchronization, but you can also migrate away entirely from Google if you’d like, as it offers everything from contacts, chats, calendars, photo organization, bookmarks, TODOs, and more.

What to add to your docker-compose.yml file

To delpoy a self-hosted Nextcloud server, you need to add three new services to your existing docker-compose.yml file. If you landed here first and you don’t have one, be sure to start at the beginning of this handbook for more details.

Here are the three services in full:

  nextcloud:
    image: nextcloud:apache
    container_name: nextcloud
    restart: unless-stopped
    environment:
      - VIRTUAL_HOST=SUBDOMAIN.DOMAIN.TLD
      - LETSENCRYPT_HOST=SUBDOMAIN.DOMAIN.TLD
      - LETSENCRYPT_EMAIL=EMAIL@DOMAIN.TLD
      - PGID=999
      - PUID=1000
    volumes:
      - ./nextcloud:/var/www/html
    ports:
      - "666:80"
    networks:
      - proxy-tier
      - default
    depends_on:
      - "db"

  db:
    image: mariadb
    container_name: db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: PASSWORD
      MYSQL_PASSWORD: PASSWORD
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
    volumes:
      - ./db:/var/lib/mysql
    ports:
      - "3306:3306"

As with previous examples, begin by replacing SUBDOMAIN.DOMAIN.TLD and code>EMAIL@DOMAIN.TLD with your own domain details and email. You might also want to change the container_name field, depending on your needs. I also highly recommend changing the MYSQL_ROOT_PASSWORD and MYSQL_PASSWORD fields as well.

Once you’ve added these items, you should be able to deploy Nextcloud via a docker-compose up -d. After pulling images and deploying new containers, your Nextcloud server should be up and running on the subdomain of your choice! Hop over there on your browser of choice to see the admin account creation screen.

Create your admin user and setup your database

First, choose a username and (secure) password for your administrator account.

Then click the Storage & database link to see options for configuring a database, and then click on the MySQL/MariaDB button. You’ll need to enter a few pieces of information based on your docker-compose.yml file. If you left the default environment variables in place, you’d use the following:

nextcloud
PASSWORD
nextcloud
db

Hit the button to move forward, and after a few moments, you’ll be dropped into the Nextcloud web interface! You can now configure Nextcloud’s desktop/mobile apps to synchronize files to your self-hosted Dropbox alternative. Pretty sweet, no?

]]>
https://www.ssdnodes.com/blog/self-hosting-nextcloud/feed/ 0