# 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](https://docs.nextcloud.com/).

## 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](https://docs.speedbits.io/books/2-beginner-path/page/4-traefik-reverse-proxy-essential "4: Installing Traefik - Your Reverse Proxy (Essential)")) for secure HTTPS and domain routing
- ✅ **Docker running** (from [Chapter 3](https://docs.speedbits.io/books/2-beginner-path/page/3-setting-up-your-foundation "3: Setting Up Your Foundation"))
- ✅ **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 &amp; HEALTH → STATUS**. You should see Nextcloud and its database running.

## Step 10: Recommended Next Steps

- ✅ **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

- [Official Nextcloud documentation](https://docs.nextcloud.com/)
- [Nextcloud desktop &amp; mobile clients](https://nextcloud.com/install/#install-clients)