Cloud Network
cloud_sync SELF-HOSTED PRODUCTIVITY

Your data.
Nobody else's.

Nextcloud is the ultimate open-source alternative to Google Drive and Office 365. Host your files, contacts, and calendars on your own server.

One Ecosystem, Infinite Uses

More than just file storage.

https://cloud.myhomelab.local/apps/files
Path: / Documents / Projects / 2026
folder Budget
folder Assets
description Report.pdf
Design.jpg
Conversations
A
Admins
Server update done?
F
Family
Video call at 8?
Just uploaded the logs to Nextcloud. Can you see them?
I see it now. Great work on the Docker setup!
Project_Proposal.odt - Nextcloud Office
3 Users Editing

Project Proposal: HomeLab Expansion

Date: October 30, 2025

Objective: To migrate all public cloud dependencies to self-hosted infrastructure.

1. Infrastructure

We will utilize 3 nodes running ZimaOS for storage redundancy.

"Should we mention the backup strategy here?" - Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Why choose Nextcloud?

You are not the product. You are the administrator.

cloud_off Public Clouds

  • Your files are scanned for ads.
  • Subscriptions that keep rising.
  • Risk of account lockout (AI bans).
  • Servers located in foreign countries.

verified_user Nextcloud Hub

  • Encryption and full control.
  • Free forever (Open Source).
  • Unlimited storage (your own disk).
  • Your data stays at home.

Get started in 5 minutes

The easiest installation via Docker Compose.

docker-compose.yml
version: '3'

services:
  db:
    image: mariadb:10.6
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=strongpassword
      - MYSQL_PASSWORD=strongpassword
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=strongpassword
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

volumes:
  nextcloud:
  db:

Run: docker compose up -d and open your browser at http://localhost:8080

docker-compose.yml
services:
  nextcloud-db:
    image: mariadb:latest
    container_name: nextcloud-db
    environment:
      MYSQL_ROOT_PASSWORD: 'change-root-pw'
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: 'change-db-pw'
    volumes:
      - ./db:/var/lib/mysql
    restart: unless-stopped

  nextcloud:
    image: nextcloud:latest
    container_name: nextcloud
    ports:
      - "8080:80"
    environment:
      MYSQL_HOST: nextcloud-db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: 'change-db-pw'
    volumes:
      - ./html:/var/www/html
    depends_on:
      - nextcloud-db
    restart: unless-stopped

Then run:

docker compose up -d
lightbulb

This pairs Nextcloud with a MariaDB database. Change all passwords before deploying.