Self-Host Nextcloud with Docker: Complete Setup Guide

Nextcloud is the king of self-hosted cloud storage. Here's how to set it up.

Docker Compose Setup

services:
  db:
    image: mariadb:10.11
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: dbpass
    volumes:
      - db-data:/var/lib/mysql

  app:
    image: nextcloud:stable
    restart: unless-stopped
    ports:
      - "8080:80"
    depends_on:
      - db
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: dbpass
    volumes:
      - nextcloud-data:/var/www/html

volumes:
  db-data:
  nextcloud-data:

Running It

docker compose up -d

Visit http://your-server:8080 and create your admin account.

Recommended Apps

  • Calendar
  • Contacts
  • Notes
  • Tasks

Mobile Apps

Download Nextcloud apps for iOS/Android to sync files automatically.

You now own your cloud storage. Welcome to data freedom!