for initial OS setup like docker install see nextcloud 30
./nextcloud_update.sh
#!/bin/bash docker compose -f nextcloud.yml ps docker compose -f nextcloud.yml down ; docker compose -f nextcloud.yml up -d --build --force-recreate; docker compose -f nextcloud.yml ps docker compose -f nextcloud.yml logs --follow |
nextcloud.yml
services:
db:
image: mariadb:10.11.7
container_name: cloud-db
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=mysqld-bin --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed --log_bin_trust_function_creators=true
volumes:
- /storage/docker/nextcloud/mariadb:/var/lib/mysql:rw
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- type: tmpfs
target: /tmp
environment:
- MYSQL_ROOT_PASSWORD=db_admin_pass
- MYSQL_PASSWORD=db_user_pass
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MARIADB_AUTO_UPGRADE=yes
- REDIS_HOST=redis
- REDIS_PORT=6379
redis:
image: redis:alpine
container_name: cloud-cache
restart: always
server:
image: nextcloud:31.0.5
container_name: cloud-server
hostname: cloud.example.com
restart: always
ports:
- 8880:80
links:
- db
- redis
volumes:
- /storage/docker/nextcloud/html:/var/www/html:rw
- /storage/docker/nextcloud/scripts:/scripts:rw
- /storage/docker/nextcloud/scripts-post-upgrade:/docker-entrypoint-hooks.d/post-upgrade:rw
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- type: tmpfs
target: /tmp:exec
devices:
- /dev/dri:/dev/dri
environment:
- MYSQL_PASSWORD=db_user_pass
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
- OVERWRITEHOST=cloud.example.com
- OVERWRITEPROTOCOL=https
- NEXTCLOUD_ADMIN_USER=nc_admin_user
- NEXTCLOUD_ADMIN_PASSWORD=nc_admin_pass
- NEXTCLOUD_UPLOAD_LIMIT=100G
- PHP_UPLOAD_LIMIT=100G
- PHP_MEMORY_LIMIT=8G
- APACHE_BODY_LIMIT=0
|