a google logo sitting on top of a computer keyboard

Nextcloud Hub: Self-Hosted Google Workspace Alternative

Productivity 2026-03-04 · 4 min read nextcloud file sync collaboration self-hosted docker google workspace alternative office calendar open-source
By Selfhosted Guides Editorial TeamSelf-hosting practitioners covering open source software, home lab infrastructure, and data sovereignty.

Nextcloud started as a file sync tool (like Dropbox) and has grown into a full collaboration platform. Nextcloud Hub adds Calendar, Contacts, Talk (video/messaging), Office (document editing), and Mail to the core file sync. The result is a credible Google Workspace alternative that runs on your infrastructure.

Photo by BoliviaInteligente on Unsplash

What Nextcloud Hub Includes

Files: File sync and share. Desktop sync clients (Windows, Mac, Linux), mobile apps, web interface. Versioning, trash, sharing with links or user accounts.

Calendar: CalDAV-compatible calendar. Sync with iOS Calendar, Android, macOS, Thunderbird. Create, share, and subscribe to calendars.

Contacts: CardDAV contact storage. Sync with phone contacts, macOS Contacts, Thunderbird.

Talk: Video/audio calls, chat, and group messaging. Screen sharing. No external infrastructure needed — runs on your server.

Collabora Online / Nextcloud Office: Real-time collaborative document editing (Writer, Calc, Impress). Either self-hosted Collabora or the lighter-weight Nextcloud Office.

Mail: Webmail client connecting to your existing IMAP accounts.

Deck: Kanban boards for project management.

Photos: Photo viewing with albums and memories timeline.

Docker Compose Deployment

Nextcloud with PostgreSQL and Redis:

services:
  nextcloud:
    image: nextcloud:28-apache
    restart: always
    ports:
      - 8080:80
    volumes:
      - nextcloud-data:/var/www/html
      - /path/to/your/data:/var/www/html/data  # External data directory
    environment:
      POSTGRES_HOST: nextcloud-db
      POSTGRES_DB: nextcloud
      POSTGRES_USER: nextcloud
      POSTGRES_PASSWORD: change-this
      NEXTCLOUD_ADMIN_USER: admin
      NEXTCLOUD_ADMIN_PASSWORD: change-admin-password
      NEXTCLOUD_TRUSTED_DOMAINS: nextcloud.yourdomain.com
      REDIS_HOST: nextcloud-redis
      PHP_MEMORY_LIMIT: 512M
      PHP_UPLOAD_LIMIT: 512M
    depends_on:
      - nextcloud-db
      - nextcloud-redis

  nextcloud-db:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_DB: nextcloud
      POSTGRES_USER: nextcloud
      POSTGRES_PASSWORD: change-this
    volumes:
      - nextcloud-db:/var/lib/postgresql/data

  nextcloud-redis:
    image: redis:7-alpine
    restart: always

  # Cron job for background tasks
  nextcloud-cron:
    image: nextcloud:28-apache
    restart: always
    volumes:
      - nextcloud-data:/var/www/html
    entrypoint: /cron.sh
    depends_on:
      - nextcloud-db
      - nextcloud-redis

volumes:
  nextcloud-data:
  nextcloud-db:

Note: Put your actual data on an external path (not a named volume) if you have a large storage volume mounted. The /var/www/html volume is for app code; /var/www/html/data is user files.

Initial Setup

After starting, navigate to your URL and Nextcloud will complete the admin setup (unless you set NEXTCLOUD_ADMIN_USER in environment variables, in which case it's already done).

Post-install tasks:

  1. Set up a reverse proxy with HTTPS (required for mobile sync)
  2. Configure email for notifications: Settings → Basic settings → Email server
  3. Set up cron: ensure the cron container is running (replaces Nextcloud's webcron)
  4. Configure Redis memcache (should be automatic from the compose above)

Want more productivity guides? Get guides like this in your inbox — Self-Hosted Weekly delivers one free deep-dive every week.

Performance: The Critical Tweaks

Nextcloud can be slow without tuning. Key changes:

APCu for local cache (add to nextcloud container environment):

environment:
  PHP_OPCACHE_ENABLE: 1

PHP-FPM instead of Apache mod_php: The nextcloud:fpm image uses PHP-FPM with Nginx, which is faster:

image: nextcloud:28-fpm

This requires a separate Nginx container configured as a frontend.

Redis for file locking (already in compose above — ensure REDIS_HOST is set).

Nextcloud config.php optimizations:

docker exec -u www-data nextcloud php occ config:system:set memcache.local --value='\OC\Memcache\APCu'
docker exec -u www-data nextcloud php occ config:system:set memcache.locking --value='\OC\Memcache\Redis'
docker exec -u www-data nextcloud php occ config:system:set maintenance_window_start --value=1

Default phone region (fixes warnings):

docker exec -u www-data nextcloud php occ config:system:set default_phone_region --value='US'

occ Command Line Interface

Nextcloud's CLI (occ) is essential for administration:

# Run as www-data user in the container
docker exec -u www-data nextcloud php occ <command>

# Common commands:
docker exec -u www-data nextcloud php occ status
docker exec -u www-data nextcloud php occ upgrade
docker exec -u www-data nextcloud php occ files:scan --all        # Re-scan for file changes
docker exec -u www-data nextcloud php occ user:list
docker exec -u www-data nextcloud php occ app:list                # Installed apps
docker exec -u www-data nextcloud php occ maintenance:mode --on   # Enable maintenance mode

Mobile Clients

File sync: Nextcloud iOS and Android apps. Set up server URL (your HTTPS domain), log in, enable auto-upload for photos.

Calendar: iOS — Settings → Calendar → Accounts → Add Account → Other → CalDAV. URL: https://nextcloud.yourdomain.com/remote.php/dav/

Contacts: iOS — Settings → Contacts → Accounts → Add Account → Other → CardDAV. Same URL format.

The CalDAV/CardDAV auto-discovery works if your server is accessible via HTTPS.

Nextcloud Office (Collaborative Editing)

For collaborative document editing without a full Collabora installation:

  1. Install the "Nextcloud Office" app (lighter weight, built-in)
  2. Or install "Collabora Online" app and connect a Collabora instance

Nextcloud Office is simpler — it's bundled and requires no separate service. Collabora Online has better compatibility with complex documents.

Key Apps Worth Installing

From the App Store (Settings → Apps):

Backups

# 1. Enable maintenance mode
docker exec -u www-data nextcloud php occ maintenance:mode --on

# 2. Backup database
docker exec nextcloud-db pg_dump -U nextcloud nextcloud > nextcloud_$(date +%Y%m%d).sql

# 3. Backup data directory
rsync -av /path/to/your/data/ backup/

# 4. Backup config
docker exec nextcloud cat /var/www/html/config/config.php > nextcloud_config.php

# 5. Disable maintenance mode
docker exec -u www-data nextcloud php occ maintenance:mode --off

Hardware Requirements

Users RAM CPU
1-5 2GB 2 cores
5-20 4GB 4 cores
20+ 8GB+ 4+ cores

Nextcloud is PHP-based and memory-hungry. File transfers and photo thumbnailing are CPU-intensive. On a $20/month VPS (2vCPU, 4GB RAM), Nextcloud runs smoothly for a family of 5.

Get free weekly tips in your inbox. Subscribe to Self-Hosted Weekly

More productivity guides

One focused tutorial every week — no spam, unsubscribe anytime.

Opens Substack to confirm — no spam, unsubscribe anytime.

Before you go...

Get a free weekly guide from Self-Hosted Weekly — one focused topic, delivered every week. No spam.

Opens Substack to confirm — no spam, unsubscribe anytime.