Brief Summary
This video provides a comprehensive guide on setting up Nextcloud using Nextcloud AIO (All-in-One) on a Linode server. It covers everything from initial server setup and domain configuration to installing Docker, running Nextcloud AIO, and basic usage. The guide emphasizes the performance and compatibility benefits of using Nextcloud AIO with Docker compared to other installation methods like manual installs or snap packages.
- Setting up Nextcloud AIO on a Linode server.
- Configuring domain settings and DNS records for Nextcloud.
- Installing Docker and running Nextcloud AIO containers.
- Basic Nextcloud setup, including user login and password changes.
NextCloud AIO
The video introduces Nextcloud AIO (All-in-One) as a relatively new and improved method for setting up Nextcloud, highlighting its superior performance and compatibility compared to manual installations or snap packages, especially for office server applications. The tutorial will guide viewers through setting up Nextcloud AIO on Linode, though most steps are applicable to other environments like home labs or other cloud providers. The presenter also mentions a promotional offer for a $100 60-day credit for Linode, encouraging viewers to follow along.
Linode Setup
The presenter walks through the initial setup of a Linode server, selecting Ubuntu 22.04 LTS as the operating system, choosing a server region, and opting for the Nanode 2GB plan. A label is assigned to the Linode instance, and a strong root password is set. The presenter also mentions having a separate video for setting up an Ubuntu server on local hardware.
Domain Setup
The video explains how to set up a domain name for the Nextcloud instance to enable SSL certificates. While using a domain name is optional, it's recommended for security. The presenter uses Hopkey.net as the domain and guides viewers on adding A records to point the subdomain nextcloud.hopkey.net to the Linode server's IP addresses (both IPv4 and IPv6). It's noted that DNS propagation may take between 30 minutes to a day.
Connecting via SSH
The presenter demonstrates how to connect to the Linode server via SSH using the root account. The SSH access information is copied from the Linode dashboard, and the presenter connects to the server using a terminal, accepting the server's authenticity and entering the root password.
Limited sudo user
To enhance security, a limited sudo user is created. The presenter uses the adduser
command to create a new user named "Brandon," setting a strong password and skipping the optional personal information prompts. This new user is then added to the sudo group using the usermod
command, granting them administrative privileges. The presenter then exits the root SSH session and reconnects using the newly created user.
Updating Server
The presenter emphasizes the importance of updating the server to ensure it has the latest security patches. The commands sudo apt update
and sudo apt upgrade
are used to update the package lists and upgrade the installed packages. The presenter confirms the installation of security updates and acknowledges that a kernel update is available, which will require a reboot later.
Changing Hostname
The video guides viewers through changing the server's hostname from the default "localhost" to the desired domain name. The hostname
command is used to check the current hostname, and then the /etc/hostname
file is edited using sudo nano -c
to set the new hostname to "nextcloud.hopkey.net."
Changing Timezone
The presenter explains how to change the server's timezone using the timedatectl
command. The current timezone is checked, and then the timedatectl list-timezones
command is used to find the correct timezone. Finally, the sudo timedatectl set-timezone
command is used to set the timezone to "America/Los_Angeles." The presenter notes the importance of matching the server's timezone to the selected region in Linode.
Checking DNS
Before rebooting the server, the presenter demonstrates how to check if the DNS has propagated correctly using the nslookup
command. By querying the subdomain "nextcloud.hopkey.net," the presenter verifies that the IP address is correctly resolved, indicating that the DNS settings are properly configured.
Disable Root SSH
To further enhance security, the presenter disables SSH login for the root user. This is done by editing the /etc/ssh/sshd_config
file using sudo nano
. The PermitRootLogin
option is changed from "yes" to "no," and the SSH service is restarted using sudo systemctl restart sshd
. This prevents direct root login via SSH, forcing users to log in with a limited user account and then escalate privileges using sudo
.
Opening Ports
The video details the process of opening the necessary ports in the server's firewall to allow access to Nextcloud. The presenter first enables the UFW (Uncomplicated Firewall) using sudo ufw enable
. Then, specific ports are opened using sudo ufw allow
, including ports 80, 443, 8080, and 3478, covering HTTP, HTTPS, and Nextcloud Talk functionalities.
Installing Docker
The presenter begins the Nextcloud AIO installation by installing Docker. This is done using a curl command to download and execute a script from get.docker.com, which automates the installation process. The presenter references the Nextcloud AIO GitHub page for more information and recommendations.
Running NextCloud
With Docker installed, the presenter runs the Nextcloud AIO master container using a sudo docker run
command. This command pulls the Nextcloud AIO image from Docker Hub, sets up port mappings, defines volumes for persistent data, and configures the container to restart automatically. The presenter explains the importance of the port configurations and volume settings for the proper functioning of Nextcloud AIO.
Accessing AIO
After running the Docker container, the presenter explains how to access the Nextcloud AIO interface. Depending on whether a domain name is used, the interface can be accessed via the server's internal IP address at port 8080 or via the domain name at port 8443. The presenter navigates to the domain name with the specified port, emphasizing the need to use HTTPS. The initial password for the AIO instance is displayed in the Docker container logs, which the presenter copies and saves.
NextCloud Initial Setup
The presenter logs into the Nextcloud AIO setup dashboard using the initial password obtained from the Docker container logs. The initial setup involves entering the domain name (nextcloud.hopkey.net) and selecting either OnlyOffice or Collabora as the office suite. The presenter chooses the default Collabora option and starts the containers, which initiates the deployment of various Docker containers for Nextcloud AIO.
Logging into NextCloud
Once the containers are running, the presenter navigates to the Nextcloud instance and logs in using the initial username and password provided in the AIO dashboard. The presenter notes that the initial load may be slow but performance improves after the first load.
Changing Password
After successfully logging in, the presenter recommends changing the default password. This can be done in the settings under security.
Quick Office Demo
The presenter provides a quick demo of Nextcloud Office, highlighting its performance and responsiveness compared to previous installation methods like Snap. The presenter opens a document and demonstrates the typing speed and lack of delay, emphasizing the improved user experience.
Deploy it on Linode!
The video concludes with a thank you to the sponsor, Linode, and a reminder of the $100 60-day credit available through the link in the description. The presenter reiterates the benefits of using Linode for hosting Nextcloud and other services, mentioning the availability of one-click installers and the performance advantages of using Docker. The presenter encourages viewers to leave comments for more Nextcloud guides and provides a link to a text version of the video's steps.