Skip to main content

11: Nextcloud - Private Cloud

Nextcloud is a self-hosted cloud platform for files, photos, calendars, and more — think of it like your own private Dropbox or Google Drive. For full usage instructions and advanced features, please refer to the official Nextcloud documentation.

What is Nextcloud? (Simple Explanation)

Nextcloud lets you store and share files, view photos, sync calendars and contacts, and access everything from mobile and desktop apps — all running on your own server, under your control.

  • Store and share files with family, friends, or your team
  • Access anywhere using web, desktop, and mobile apps
  • Sync calendars and contacts across devices
  • Extend with apps like Photos, Notes, Tasks, and more
  • You own your data — everything stays on your server

Prerequisites

Before installing Nextcloud, make sure you have:

  • Traefik installed (from Chapter 4) for secure HTTPS and domain routing
  • Docker running (from Chapter 3)
  • Apprise installed (from Chapter 5) for notifications
  • Borgmatic installed (from Chapter 6) for automated backups (optional but recommended)
  • A domain name (recommended) and an email address for SSL certificates

Interdependencies: Backups for Nextcloud use Borgmatic (Chapter 6). Borgmatic notifications rely on Apprise (Chapter 5). If you skip backups now, you can add them later.

Step 1: Start Infinity Tools

Connect to your server via SSH and start Infinity Tools:

sudo infinity-tools

Using the Infinity Tools GUI

In the main menu, go to the 📱 APPLICATIONS section.

  • Applications are grouped with clear descriptions
  • Status indicators show if apps are installed/running
  • ✅ Navigate with the arrow keys, press Enter to select

Step 2: Open Nextcloud in Applications

  1. Go to 📱 APPLICATIONS
  2. Select Nextcloud
  3. Choose Install Nextcloud

What the installer does

  • Creates a PostgreSQL database
  • Sets up the Nextcloud service
  • Connects to Traefik for HTTPS (if selected)
  • Prepares data folders under /opt/speedbits/nextcloud
  • Generates secure admin and database passwords

Step 3: Choose HTTPS Mode

When asked about SSL/HTTPS:

Use Traefik for SSL? (Y/n)
  • Y (recommended): Uses your domain with automatic SSL via Traefik
  • N: Standalone mode using a direct port (HTTP or self-signed HTTPS)

Step 4: Enter Your Domain (Traefik Mode)

Example domains:

  • cloud.yourdomain.com
  • files.yourdomain.com

If you’re not using a domain, the installer will ask you to pick a port for local access.

Step 5: Set Default Storage Quota

The installer offers to set a default per-user quota.

  • Recommended: Choose per-user quota (e.g., 5 GB to start)
  • You can change quotas later in the web interface
  • This helps prevent your server from running out of disk space

Step 6: Wait for Installation

First-time setup takes about 2–5 minutes. The installer will show progress while Nextcloud initializes.

Step 7: Save Your Admin Credentials

When installation finishes, you’ll see an admin username and password. Write them down and keep them safe.

You can also find them in /opt/speedbits/nextcloud/.env (root-only).

Step 8: Open Nextcloud

  • Traefik mode: Visit https://your-domain (e.g., https://cloud.yourdomain.com)
  • Standalone mode: Visit the IP and port shown by the installer (e.g., http://SERVER_IP:PORT)

Step 9: Verify It’s Running

In Infinity Tools, go to 📊 STATUS & HEALTH → STATUS. You should see Nextcloud and its database running.

  • Set up email in Nextcloud (for password resets and notifications)
  • Install useful apps: Calendar, Contacts, Notes, Deck
  • Configure user quotas (Settings → Users)
  • Enable backups with Borgmatic (Chapter 6)
  • Install mobile apps (iOS/Android) and desktop sync client

Troubleshooting

Can’t access the site

  • Check that Traefik is running: docker ps | grep traefik
  • Verify your domain points to your server (DNS)
  • Wait a few minutes for SSL certificates to be issued
  • Check Nextcloud logs: docker logs nextcloud

Running out of disk space

  • Reduce user quotas or free storage
  • Monitor usage: df -h /opt/speedbits/nextcloud

SSL warning in standalone HTTPS

Self-signed certificates show a browser warning. Click “Advanced → Proceed” to continue, or switch to Traefik with a real domain for trusted HTTPS.

Quick Reference

Check containers:

docker ps | grep -E "nextcloud|nextcloud-db"

View logs:

docker logs nextcloud

Restart service:

cd /opt/speedbits/nextcloud && docker compose restart

Helpful Resources