Skip to content

Nextcloud

Overview

Nextcloud 33 (Apache-based) provides file sync, share, and collaboration.

FieldValue
Imagenextcloud:33-apache
Domaincloud.cadenceworks.tech
Local Port127.0.0.1:9080
DatabasePostgreSQL 16 (container)
CacheRedis 7 (container)

Docker Compose

Path: ~/nextcloud/docker-compose.yml

yaml
services:
  db:
    image: postgres:16
    restart: always
    volumes:
      - ./db:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: nextcloud
      POSTGRES_USER: nextcloud
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U nextcloud"]
      interval: 10s
      timeout: 5s
      retries: 5

  redis:
    image: redis:7-alpine
    restart: always
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

  app:
    image: nextcloud:33-apache
    restart: always
    ports:
      - 127.0.0.1:9080:80
    volumes:
      - ./data:/var/www/html/data
      - ./config:/var/www/html/config
      - ./custom_apps:/var/www/html/custom_apps
    environment:
      POSTGRES_HOST: db
      POSTGRES_DB: nextcloud
      POSTGRES_USER: nextcloud
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      NEXTCLOUD_ADMIN_USER: ${NEXTCLOUD_ADMIN_USER}
      NEXTCLOUD_ADMIN_PASSWORD: ${NEXTCLOUD_ADMIN_PASSWORD}
      NEXTCLOUD_TRUSTED_DOMAINS: cloud.cadenceworks.tech
      OVERWRITEPROTOCOL: https
      TRUSTED_PROXIES: 0.0.0.0/0
      PHP_UPLOAD_LIMIT: 10G
      PHP_MEMORY_LIMIT: 512M
    depends_on:
      db:
        condition: service_healthy
      redis:
        condition: service_healthy

Environment Variables

Secrets are stored in a .env file alongside the compose file.

VariablePurpose
POSTGRES_PASSWORDDatabase password
NEXTCLOUD_ADMIN_USERInitial admin username
NEXTCLOUD_ADMIN_PASSWORDInitial admin password

Key Configuration

  • Upload limit: 10 GB
  • PHP memory limit: 512 MB
  • HTTPS enforced via OVERWRITEPROTOCOL
  • Trusts all proxies (TRUSTED_PROXIES: 0.0.0.0/0) for Caddy reverse proxy
  • Data stored in bind-mounted ./data directory

Northeast Systems · Aux Server · Infra Server