Every small business hits the same wall eventually. You start with a free Google account, add a few shared folders in Dropbox, sign up for a calendar tool, maybe a separate contact manager — and before long you’re paying three SaaS subscriptions, your files are scattered across platforms you don’t control, and nobody knows where the latest version of anything lives.
It doesn’t have to be that way.
Nextcloud is an open source cloud platform that combines file sharing, calendar, contacts, document editing, task management, and dozens of other features in a single self-hosted instance. Think of it as your own private Google Workspace — except you own the server, you control the data, and there’s no monthly per-seat fee.
In this guide, we’ll walk through what Nextcloud actually replaces, how to set it up with Docker, and what it costs compared to the SaaS alternatives it displaces.
What Nextcloud Replaces
Before we get into the technical setup, let’s be clear about the scope. Nextcloud isn’t just a Dropbox clone — it’s a full collaboration platform that grows through its app ecosystem. Here’s what it can replace in a typical small business stack:
| SaaS Tool | What It Does | Nextcloud Replacement |
|---|---|---|
| Google Drive / Dropbox | File storage and sharing | Nextcloud Files |
| Google Calendar | Shared calendaring | Nextcloud Calendar |
| Google Contacts | Contact management | Nextcloud Contacts |
| Google Docs / Sheets | Document collaboration | Nextcloud Office (Collabora) |
| Google Keep / Tasks | Notes and tasks | Nextcloud Tasks + Nextcloud Notes |
| Zoom (basic) | Video calls | Nextcloud Talk |
| Trello (basic) | Kanban boards | Nextcloud Deck |
Not every Nextcloud app is a perfect 1:1 replacement. Nextcloud Talk, for instance, works well for internal team calls but isn’t trying to compete with Zoom’s webinar features. Nextcloud Deck covers basic kanban workflows but won’t replace a dedicated project management tool for complex teams. The point is that for a small business — say 5 to 50 people — Nextcloud can consolidate five or six separate subscriptions into one platform.
Why Self-Host Instead of Using Nextcloud Cloud?
Nextcloud offers a hosted cloud option through their partners, so you could pay someone else to run it. But self-hosting gives you three things the hosted version can’t:
- Full data sovereignty. Your files never leave your server. For businesses handling client contracts, financial documents, or regulated data, this matters.
- No per-user pricing. Whether you have 5 users or 500, the software cost is the same — zero. You only pay for the server hardware and electricity.
- Total control over apps and config. You decide which apps are enabled, how authentication works, and what integrations you run. No vendor deciding to deprecate a feature you depend on.
The trade-off is that you’re responsible for updates, backups, and security. We’ll cover those in the setup guide below.
Hardware Requirements
Nextcloud is not lightweight. It’s a full web application with a database, a PHP backend, and optionally a document editing server. Here’s what you need:
Minimum (up to 15 users):
- 2 CPU cores
- 4 GB RAM
- 50 GB storage (depends on your files)
- Ubuntu 22.04 or 24.04 LTS
Recommended (15–50 users):
- 4 CPU cores
- 8 GB RAM
- 500 GB+ storage (SSD preferred)
- Ubuntu 22.04 or 24.04 LTS
You can run this on a dedicated mini PC (like an Intel NUC or Beelink), a rented VPS (Hetzner, OVH, DigitalOcean), or a spare server you already have. If you’re already running other self-hosted services — maybe you followed our guides on self-hosting Invoice Ninja or ERPNext — you can run Nextcloud alongside them on the same machine if you have the RAM.
Setting Up Nextcloud with Docker Compose
The cleanest way to run Nextcloud is with Docker Compose. This gives you Nextcloud itself, a MariaDB database, and Redis for caching — all in containers that are easy to update and back up.
Step 1: Create the Docker Compose File
Create a directory for your Nextcloud deployment and add this docker-compose.yml:
version: "3.8"
services:
db:
image: mariadb:10.11
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- ./db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=change_this_strong_password
- MYSQL_PASSWORD=nextcloud_db_password
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
networks:
- nextcloud-net
redis:
image: redis:alpine
restart: unless-stopped
networks:
- nextcloud-net
app:
image: nextcloud:apache
restart: unless-stopped
depends_on:
- db
- redis
ports:
- 8080:80
volumes:
- ./nextcloud_data:/var/www/html
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=nextcloud_db_password
- REDIS_HOST=redis
- NEXTCLOUD_ADMIN_USER=admin
- NEXTCLOUD_ADMIN_PASSWORD=change_this_admin_password
- NEXTCLOUD_TRUSTED_DOMAINS=cloud.yourdomain.com
networks:
- nextcloud-net
networks:
nextcloud-net:
Before you start: change every password in this file. Use a password manager — we recommend Vaultwarden — to generate and store strong passwords.
Step 2: Start the Stack
cd /opt/nextcloud
docker compose up -d
After 30–60 seconds, Nextcloud will be running on port 8080 of your server. Open http://YOUR_SERVER_IP:8080 in a browser and you should see the Nextcloud setup screen. If you used the environment variables above, the admin account is already configured.
Step 3: Set Up HTTPS with a Reverse Proxy
Running Nextcloud over HTTP is fine for testing, but you should never expose it to the internet without TLS encryption. The easiest way to add HTTPS is with Caddy, which automatically provisions Let’s Encrypt certificates.
Create a Caddyfile:
cloud.yourdomain.com {
reverse_proxy localhost:8080
}
Then run Caddy in a container alongside your Nextcloud stack:
docker run -d --name caddy --restart unless-stopped \
-p 80:80 -p 443:443 \
-v /opt/nextcloud/Caddyfile:/etc/caddy/Caddyfile \
-v caddy_data:/data \
-v caddy_config:/config \
caddy:latest
Point your domain’s DNS A record to your server’s IP address, and Caddy will handle the rest — certificate provisioning, HTTPS redirection, and proxying requests to Nextcloud.
Step 4: Install the Apps You Need
Nextcloud ships with file sharing enabled by default. The other features — calendar, contacts, tasks, document editing — are apps you install through the web interface. Log in as admin, click your profile icon → Apps, and install:
- Calendar — shared calendars with CalDAV support
- Contacts — contact management with CardDAV support
- Tasks — task lists synced across devices
- Deck — kanban-style project boards
- Nextcloud Office (requires Collabora or OnlyOffice) — collaborative document editing
For Nextcloud Office, you’ll need to run a separate Collabora CODE container. Add this to your docker-compose.yml:
collabora:
image: collabora/code
restart: unless-stopped
ports:
- 9980:9980
environment:
- aliasgroup1=https://cloud.yourdomain.com
- extra_params=--o:ssl.termination=true --o:ssl.enable=false
networks:
- nextcloud-net
Then in Nextcloud, go to Administration Settings → Nextcloud Office and point it to https://cloud.yourdomain.com:9980 (or through your reverse proxy).
Cost Comparison: Self-Hosted Nextcloud vs SaaS
Let’s put real numbers on this. Here’s what a 15-person business might pay for the SaaS tools Nextcloud replaces:
| Service | Monthly Cost (15 users) |
|---|---|
| Google Workspace Business Starter | $107.85 ($7.19/user) |
| Dropbox Business Standard | $225.00 ($15/user) |
| Calendly Teams (basic scheduling) | $96.00 ($8/user) |
| Total SaaS | ~$429/month |
And here’s what self-hosted Nextcloud costs:
| Item | Monthly Cost |
|---|---|
| VPS (4 cores, 8 GB RAM, 500 GB SSD) | ~$20–$35 |
| Domain name (annual, amortized) | ~$1 |
| Electricity (if self-hosted on own hardware) | ~$5–$15 |
| Backup storage (e.g., S3-compatible or local NAS) | ~$5–$10 |
| Total self-hosted | ~$31–$61/month |
That’s a savings of roughly $370–$400 per month, or $4,400–$4,800 per year — and the savings scale. At 50 users, the SaaS costs triple while the self-hosted costs barely change (you might upgrade to a larger server for an extra $20/month).
These are back-of-the-envelope numbers. Your actual costs depend on your cloud provider, storage needs, and whether you already have hardware. But the pattern holds: SaaS pricing scales with headcount, and self-hosting doesn’t.
Keeping Nextcloud Secure and Updated
Self-hosting means you’re the IT department. Here’s a practical security checklist:
Updates
Nextcloud releases updates roughly every few months. Update by pulling the new Docker image:
cd /opt/nextcloud
docker compose pull
docker compose up -d
docker compose exec app occ upgrade
The occ upgrade step runs the internal database migrations. Always back up before updating.
Backups
Your Nextcloud data lives in two places: the nextcloud_data volume (files) and the db_data volume (database). Back up both:
# Back up the database
docker compose exec db mysqldump -u root -p nextcloud > nextcloud_db_backup.sql
# Back up the files
tar -czf nextcloud_files_backup.tar.gz ./nextcloud_data
Automate this with a cron job and send backups to off-site storage. We covered backup strategies in detail in our disaster recovery guide — the same principles apply here.
Access Control
- Enable two-factor authentication. Nextcloud supports TOTP apps out of the box. Go to Settings → Personal → Security and turn it on for the admin account, then require it for all users via Administration Settings → Two-Factor TOTP.
- Restrict admin access. Only give admin roles to people who need them. Nextcloud has fine-grained group and share permissions.
- Use strong passwords. Enforce minimum password lengths under Administration Settings → Security.
- Keep the server updated. Run
apt update && apt upgradeon the host OS regularly.
Network Security
- Don’t expose the database or Redis ports to the internet. Only ports 80 and 443 (for the reverse proxy) should be public.
- Use a firewall (UFW on Ubuntu is simplest):
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
- Consider running Nextcloud behind a VPN for internal-only deployments. If your team is remote, something like WireGuard gives you a secure tunnel without exposing Nextcloud to the public internet at all.
Migrating From Google Workspace or Dropbox
Moving your files is the most common migration path, and it’s straightforward:
- Download your files from Google Drive or Dropbox. Google Takeout lets you export everything as a zip archive. Dropbox has a similar export feature.
- Upload to Nextcloud. You can drag and drop through the web interface for small batches, or use the Nextcloud desktop client (available for Windows, macOS, and Linux) to sync large directories.
- Migrate calendars. Export your Google Calendars as
.icsfiles, then import them into Nextcloud Calendar. - Migrate contacts. Export from Google Contacts as vCard (
.vcf) and import into Nextcloud Contacts.
For large migrations (hundreds of GB), use the occ command-line tool to pre-seed files directly on the server, which avoids uploading through the browser:
docker compose exec app occ files:scan --all
This tells Nextcloud to scan its data directory and register any files you’ve copied there manually.
When Nextcloud Is NOT the Right Choice
Self-hosting isn’t always the answer. Here’s when you might want to stick with SaaS:
- You have fewer than 5 users and no technical staff. The setup and maintenance time may exceed the subscription savings. Nextcloud’s hosted plans or a simpler tool like BookStack for document sharing might be a better fit.
- You need advanced real-time collaboration. If your team lives in shared spreadsheets with 20 people editing simultaneously, Google Sheets still handles that better than Nextcloud Office. Collabora is improving, but it’s not there yet for heavy real-time use.
- You have no one to manage backups. If the server dies and there’s no backup, you lose everything. If you can’t commit to a backup routine, the managed SaaS version is safer.
- You’re subject to specific compliance certifications. SaaS providers often have SOC 2, HIPAA, or ISO 27001 certifications. Self-hosted Nextcloud can be configured to meet these requirements, but the audit burden is on you.
For most small businesses with someone who can follow a Docker guide and run a backup script once a week, Nextcloud is a strong fit.
Integrating Nextcloud with Your Automation Stack
Nextcloud doesn’t exist in isolation. It plays well with other open source tools:
- n8n can connect to Nextcloud via its WebDAV API, enabling automated workflows like “when a form is submitted, save the attachment to a Nextcloud folder and notify the team in Mattermost.”
- Ollama can process documents stored in Nextcloud — for example, summarizing uploaded contracts or extracting key terms from invoices.
- ERPNext and Odoo can store generated reports and exports in Nextcloud shared folders, giving your team a single place to find business documents.
Here’s a simple n8n workflow snippet that uploads a file to Nextcloud when it arrives in an email attachment:
[Email Trigger] → [Extract Attachment] → [Nextcloud Upload Node]
→ [Mattermost Notification]
The Nextcloud node in n8n uses WebDAV credentials (username + app password), which you generate under Settings → Personal → Security → Devices & sessions in Nextcloud.
Final Thoughts
Google Workspace and Dropbox are good products. They work, they’re polished, and someone else handles the updates. But they come with a hidden cost: your data lives on someone else’s servers, and the price goes up every time you add a team member.
Nextcloud gives you the same core capabilities — file sharing, calendars, contacts, document collaboration — on infrastructure you control, at a cost that doesn’t scale with headcount. For a small business willing to invest a weekend in setup and an hour a month in maintenance, the payoff is substantial: lower costs, full data ownership, and a platform you can customize to fit your workflow instead of adapting your workflow to fit a SaaS product.
If you’re already self-hosting other tools, Nextcloud is a natural addition. If this is your first self-hosted service, it’s a good place to start — the Docker setup is well-documented, the community is large, and the payoff is immediate.
Ready to Take Control of Your Business Data?
If you’re tired of per-seat SaaS pricing and want to explore what a self-hosted collaboration platform could look like for your business, we can help. ARDOT Consulting specializes in open source automation and infrastructure for small businesses — from initial setup to ongoing maintenance.
Contact us to schedule a free consultation. We’ll assess your current tool stack, identify what you can consolidate, and build a migration plan that fits your team and budget.