Skip to content

Nextcloud

Nextcloud offers a self-hosted file storage and sync platform with powerful collaboration capabilities with desktop, mobile and web interfaces.

References


Make directory

Terminal window
mkdir -p {{{DOCKER_PATH_VAR}}}/nextcloud && cd {{{DOCKER_PATH_VAR}}}/nextcloud

docker-compose.yml

Terminal window
nano docker-compose.yml
docker-compose.yml
services:
nextcloud:
image: lscr.io/linuxserver/nextcloud:latest
container_name: nextcloud
ports:
- 8443:443
depends_on:
- nextcloud_db
- nextcloud_redis
networks:
- nextcloud_network
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_HOST: ${POSTGRES_HOST}
NEXTCLOUD_ADMIN_USER: ${NEXTCLOUD_ADMIN_USER}
NEXTCLOUD_ADMIN_PASSWORD: ${NEXTCLOUD_ADMIN_PASSWORD}
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: 6379
REDIS_HOST_PASSWORD: ${REDIS_HOST_PASSWORD}
volumes:
- ./config:/config
- ./data:/data
restart: unless-stopped
nextcloud_db:
image: postgres:alpine
container_name: nextcloud_db
networks:
- nextcloud_network
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- nextcloud_pgdata:/var/lib/postgresql/data
restart: unless-stopped
nextcloud_redis:
image: redis:alpine
container_name: nextcloud_redis
networks:
- nextcloud_network
volumes:
- nextcloud_redis:/data
restart: unless-stopped
networks:
nextcloud_network:
name: nextcloud_network
driver: bridge
volumes:
nextcloud_pgdata:
name: nextcloud_pgdata
nextcloud_redis:
name: nextcloud_redis

.env

Terminal window
nano .env
.env
PUID=1000
PGID=1000
TZ=America/New_York
POSTGRES_DB=nextcloud
POSTGRES_USER=nextcloud
POSTGRES_PASSWORD=password
POSTGRES_HOST=nextcloud_db
NEXTCLOUD_ADMIN_USER=admin
NEXTCLOUD_ADMIN_PASSWORD=password
REDIS_HOST=nextcloud_redis
REDIS_HOST_PASSWORD=password

Start container

Terminal window
docker compose up -d

Open web ui

http://localhost:8443 or http://{{{IP_ADDRESS_VAR}}}:8443

After completing the web-based installer, restart the Nextcloud container to apply default memory caching and transactional file locking configurations.

Restart container

Terminal window
docker compose restart

Alternatively, you can apply your own configurations by editing config.php.

Modify config.php

Terminal window
nano ./config/www/nextcloud/config/config.php
./config/www/nextcloud/config/config.php
'redis' => [
'host' => 'nextcloud_redis',
'port' => 6379,
],
'memcache.local' => '\\OC\\Memcache\\APCu',
'filelocking.enabled' => true,
'memcache.locking' => '\\OC\\Memcache\\APCu',
'upgrade.disable-web' => true,