7. ☁️ NEXTCLOUD
7.1. Tạo thư mục và cấu hình
bash
mkdir -p ~/nextcloud && cd ~/nextcloud
7.2. Tạo file docker-compose.yml
yaml
version: '3.8'
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: Your_Password
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: Your_Password
volumes:
- db_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
networks:
- nextcloud_network
redis:
image: redis:7-alpine
container_name: nextcloud_redis
restart: unless-stopped
command: redis-server --requirepass Your_Password
volumes:
- redis_data:/data
networks:
- nextcloud_network
app:
image: nextcloud:stable
container_name: nextcloud_app
restart: unless-stopped
ports:
- "8081:80"
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=Your_Password
- REDIS_HOST=redis
- REDIS_HOST_PORT=6379
- REDIS_HOST_PASSWORD=Your_Password
- NEXTCLOUD_ADMIN_USER=admin
- NEXTCLOUD_ADMIN_PASSWORD=Your_Password
- NEXTCLOUD_TRUSTED_DOMAINS=192.168.3.5:8081 cloud.huancoc.com
volumes:
- nextcloud_data:/var/www/html
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
networks:
- nextcloud_network
volumes:
db_data:
redis_data:
nextcloud_data:
networks:
nextcloud_network:
driver: bridge
7.3. Khởi chạy
bash
docker compose up -d
7.4. Sửa cấu hình cho HTTPS
bash
docker exec -it nextcloud_app bash apt update && apt install nano -y nano config/config.php
Thêm vào trước dòng );:
php
'overwrite.cli.url' => 'https://cloud.huancoc.com',
'overwriteprotocol' => 'https',
'trusted_proxies' =>
array (
0 => '192.168.3.5',
),
Restart:
bash
docker restart nextcloud_app
7.5. Cấu hình trên Nginx Proxy Manager
- Domain:
cloud.huancoc.com - Scheme:
http - Forward IP:
192.168.3.5 - Forward Port:
8081 - SSL: Request Let’s Encrypt và bật Force SSL