← Back to Blog
2026-08-11

Building a Nextcloud Server with an Idle Computer

NOTE: This article was machine translated from Korean and may contain parts that are awkward in context or mistranslated.

This is a brief memo-style guide rather than a detailed tutorial.

OS Selection

Since Nextcloud is a software-based solution, you need to choose an operating system to install it on.

You can use NAS-specific operating systems like TrueNAS or OpenMediaVault, or general server operating systems.

I chose a minimal Debian installation for the OS because TrueNAS was too slow due to hardware limitations.

Disk Partitioning

In the Debian installation process, I encrypted the disk with LUKS for security.

While the security level increases, the encryption process causes a slight performance drop, so you may want to choose between security and performance.

My partitioning setup is as follows:

# lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS

NAME                        SIZE TYPE  FSTYPE      MOUNTPOINTS
sda                       238.5G disk
├─sda1                      1.9G part  ext4        /boot
├─sda2                      954M part  vfat        /boot/efi
└─sda3                    235.7G part  crypto_LUKS
  └─sda3_crypt            235.7G crypt LVM2_member
    ├─vg0-nextcloud--data 207.7G lvm   ext4        /var/lib/nextcloud-data
    ├─vg0-swap              3.7G lvm   swap        [SWAP]
    └─vg0-root             24.2G lvm   ext4        /
sdc                       119.2G disk
└─sdc1                    119.2G part  ext4

sda is the laptop's built-in SSD, and sdc is the SD card for backup.

A boot partition and an EFI partition were created on sda, and the remaining space was bound with LVM encrypted with LUKS, with 4 GB for swap, 25 GB for root, and the remaining space as a Nextcloud data volume where the actual data would be stored.

In the Debian installation process, the GUI makes it easy to create partitions even if you have limited knowledge. I was new to LVM, so I asked for help while creating the partitions.

Nextcloud Installation

I installed the Nextcloud AIO version using Docker.

The reason for using the AIO (All-in-One) version is that it is literally an All-in-One, so installation is simple because you only need to install one and everything you need will be automatically installed. Additionally, an automatic backup function is included as standard.

Proceed with installation as instructed in GitHub README.

Once the installation is complete, you can access the Nextcloud setup screen by navigating to http://<server IP>:8080 in your browser. The initial Passphrase will be displayed, which you should save temporarily and follow the instructions to complete the component installation.

When setting up, the first thing you'll be asked for is the domain name. If you have a personal domain, you can connect it here. If not, you can issue a *.dedyn.io domain directly from the setup screen.

Additionally, in the component selection process, ClamAV is checked by default, but this causes each file to be scanned individually when uploaded, making uploads very slow when there are many files. I recommend turning it off.

External Access Configuration

External access can be achieved using external services like Tailscale or Cloudflare Tunnel, or through DDNS and port forwarding for a more direct approach.

Tailscale allows only users within the same Tailscale network to connect, making it the most secure option. However, you need to keep the Tailscale app running as a VPN, which is inconvenient if you already use another VPN.

Therefore, I initially used Cloudflare Tunnel for configuration, but ultimately found this method to be very slow and do not recommend it.

Two methods both had issues, so I had no choice but to configure external access through my router's port forwarding. While this is somewhat risky from a security perspective, it is the fastest option.

Account Creation

Nextcloud AIO displays the default admin account password, which you can use to log in. After logging in, you can create a new account.

While you can use the admin account, it is vulnerable to brute-force attacks. I recommend creating a new account with a different name and then disabling the admin account. (Profile icon -> Account -> Admin ... -> Disable account)

Data Migration

I migrated my existing Fastmail calendars and Obsidian vaults from Dropbox to Nextcloud.

If you used Fastmail calendars, you can download all your calendars as files by going to Fastmail settings -> Calendars -> Expert button. Google Calendar or iCloud Calendar might have similar options.

Drag and drop the downloaded files into the Nextcloud dashboard under the calendar section to import them.

For your Obsidian vault stored in Dropbox, simply move the folder to the Nextcloud data folder. On your phone, you can use the Remotely-Save extension to sync with Nextcloud via WebDAV.

The WebDAV address is https://<domain>/remote.php/dav/files/<username>/. Generate a password in Settings -> Security -> App Passwords and enter it in the Remotely-Save settings.

-

This way, after setting it up, I've been using it for a few days and am quite satisfied.

While the laptop's specifications are not very powerful, making it slower than commercial cloud services, it still allows me to configure everything as I want, and the biggest advantage is that I have direct ownership of my data.

Comments