В этой статье подробно описывается процесс установки и настройки Nextcloud на Ubuntu с использованием Docker. Мы разберем создание структуры папок, настройку базы данных MariaDB, Redis, запуск самого Nextcloud, а также настройку прав доступа для пользователя nileverus.
Шаг 1: Подготовка структуры папок
mkdir -p /mnt/hdd/docker/nextcloud
cd /mnt/hdd/docker/nextcloud
Структура папок должна соответствовать тем, что указаны в docker-compose.yml.
Шаг 2: Создание docker-compose.yml
services:
db:
image: mariadb:10.11
container_name: nextcloud-db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
environment:
MYSQL_ROOT_PASSWORD: root123
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: nextcloud123
volumes:
- ./db:/var/lib/mysql
networks:
- nextcloud-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 20s
retries: 10
redis:
image: redis:alpine
container_name: nextcloud-redis
restart: unless-stopped
networks:
- nextcloud-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
timeout: 20s
retries: 10
nextcloud:
image: nextcloud:stable
container_name: nextcloud
restart: unless-stopped
ports:
- "8080:80"
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
environment:
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: nextcloud123
REDIS_HOST: redis
REDIS_PORT: 6379
NEXTCLOUD_ADMIN_USER: admin
NEXTCLOUD_ADMIN_PASSWORD: admin123
NEXTCLOUD_TRUSTED_DOMAINS: "localhost ваш-ip-или-домен"
PHP_MEMORY_LIMIT: 512M
PHP_UPLOAD_LIMIT: 10G
PHP_POST_MAX_SIZE: 10G
volumes:
- ./html:/var/www/html
- ./data:/var/www/html/data
- ./config:/var/www/html/config
- ./apps:/var/www/html/custom_apps
- /mnt/hdd/media:/mnt/hdd/media
networks:
- nextcloud-network
networks:
nextcloud-network:
driver: bridge
Шаг 3: Запуск Nextcloud
cd /mnt/hdd/docker/nextcloud
docker compose up -d
После запуска откройте http://ваш-ip:8080 для доступа к Nextcloud.
Шаг 4: Настройка доменов
sudo nano /mnt/hdd/docker/nextcloud/config/config.php
Найдите строку 'trusted_domains' и добавьте ваш IP-адрес:
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'ваш-ip-адрес',
),
Шаг 5: Настройка прав доступа
sudo usermod -aG www-data nileverus
После добавления в группу необходимо выйти из SSH/WinSCP и зайти заново.
sudo setfacl -R -m u:nileverus:rwx /mnt/hdd/docker/nextcloud/data
sudo setfacl -R -d -m u:nileverus:rwx /mnt/hdd/docker/nextcloud/data
sudo find /mnt/hdd/docker/nextcloud/data -type d -exec setfacl -m u:nileverus:rwx,d:u:nileverus:rwx {} \;
sudo find /mnt/hdd/docker/nextcloud/data -type f -exec setfacl -m u:nileverus:rw {} \;
Шаг 6: Перезапуск сервисов
cd /mnt/hdd/docker/nextcloud
docker compose restart





