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.
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
- ✅ 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
- Go to 📱 APPLICATIONS
- Select Nextcloud
- 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.comfiles.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.
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
No comments to display
No comments to display