Đến nội dung chính
Infra Notes
DOCS / UTF-8
Reference // Tra cứu kỹ thuậtnextcloud

Nextcloud AIO — Vận hành và backup

DOC PATH reference/nextcloud/aio-operations

Doc Type
Reference
Technology
nextcloud
Status
Active
Tags
nextcloud-aioOperationsBorgBackupDocker

Endpoint, occ, health checks, BorgBackup, retention và quản lý secrets. Đọc theo thứ tự các chương hoặc chọn mục cần tra cứu trong mục lục.

Trang này dùng để tra cứu nhanh trong quá trình vận hành Nextcloud AIO. Khi restore hoặc chạy lệnh có thể ảnh hưởng dữ liệu, cần làm theo runbook và kế hoạch thay đổi đã được phê duyệt.

Thành phần Chức năng chính
nextcloud-aio-mastercontainer Điều phối và quản lý cấu hình AIO thông qua Docker socket.
nextcloud-aio-apache Backend HTTP dành cho reverse proxy.
nextcloud-aio-nextcloud Ứng dụng Nextcloud PHP.
nextcloud-aio-database PostgreSQL lưu dữ liệu ứng dụng và metadata.
nextcloud-aio-redis Cache, file locking và hỗ trợ notify_push.
nextcloud-aio-notify-push High Performance Backend for Nextcloud Files.
nextcloud-aio-borgbackup Backup và restore bằng BorgBackup.
nextcloud-aio-collabora Nextcloud Office tùy chọn.
nextcloud-aio-clamav Thành phần chống mã độc tùy chọn.
Hạng mục Giá trị tham khảo Ghi chú
HTTPS từ client 443 Nginx HA nhận kết nối từ client.
Quản trị AIO 8080 Chỉ cho mạng quản trị hoặc bastion host.
Backend Apache AIO 11000 Chỉ cho phép các node reverse proxy truy cập.
Tên miền Nextcloud https://<nextcloud-domain>/ Tên miền nội bộ đã được phê duyệt.
Endpoint notify_push https://<nextcloud-domain>/push Kiểm tra sau khi restore hoặc thay đổi proxy.
/root/nextcloud-aio/
├── compose.yaml
└── data/
└── nextcloud/

Thư mục dữ liệu thực tế có thể được cấu hình khác. Phải ghi nhận thư mục dữ liệu, named volume và mount point trong hồ sơ hạ tầng để tránh backup hoặc restore nhầm vị trí.

APACHE_PORT: 11000
APACHE_IP_BINDING: <all-interfaces>
SKIP_DOMAIN_VALIDATION: "true"
Biến Ý nghĩa
APACHE_PORT Port backend Apache mà reverse proxy kết nối tới.
APACHE_IP_BINDING Địa chỉ IP mà Apache bind vào để nhận kết nối từ reverse proxy.
SKIP_DOMAIN_VALIDATION Bỏ qua xác minh tên miền mặc định cho mô hình tên miền nội bộ; vẫn phải tự kiểm tra HTTPS và định tuyến.

Danh sách phải khớp với các proxy thực sự chuyển tiếp request đến Nextcloud:

<loopback-address>
<ipv6-loopback-address>
<aio-docker-network-cidr>
<reverse-proxy-vip>
<reverse-proxy-node-01>
<reverse-proxy-node-02>
<nextcloud-backend-ip>

Đọc cấu hình:

Terminal window
docker exec --user www-data nextcloud-aio-nextcloud \
php occ config:system:get trusted_proxies

Thiết lập một mục:

Terminal window
docker exec --user www-data nextcloud-aio-nextcloud \
php occ config:system:set trusted_proxies <INDEX> \
--value="<proxy-address>"

Chỉ thêm địa chỉ proxy đã được xác minh. Không dùng giá trị đại diện cho toàn bộ Internet.

Terminal window
docker ps
docker compose -f /root/nextcloud-aio/compose.yaml ps
docker logs --tail 100 nextcloud-aio-mastercontainer
docker exec --user www-data nextcloud-aio-nextcloud php occ status
docker exec --user www-data nextcloud-aio-nextcloud php occ app:list
df -h
free -h

Kiểm tra endpoint:

Terminal window
curl -I https://<nextcloud-domain>/

Kiểm tra ứng dụng notify_push:

Terminal window
docker exec --user www-data nextcloud-aio-nextcloud \
php occ app:list | grep notify_push

Thiết lập endpoint:

Terminal window
docker exec --user www-data nextcloud-aio-nextcloud \
php occ notify_push:setup https://<nextcloud-domain>/push

Self-test:

Terminal window
docker exec --user www-data nextcloud-aio-nextcloud \
php occ notify_push:self-test

Nếu self-test thất bại, lần lượt kiểm tra DNS, certificate, các header chuyển tiếp, WebSocket, firewall và trạng thái container.

Ví dụ mount point và repository:

Backup mount point: /mnt/nextcloud-backup
Borg repository: /mnt/nextcloud-backup/borg

Không chỉnh sửa thủ công nội dung bên trong repository Borg.

Backup AIO cần bao phủ tối thiểu:

  • Database PostgreSQL.
  • File user.
  • Cấu hình mastercontainer.
  • Trạng thái và cấu hình cần cho restore hệ thống.
  • Khóa mã hóa nếu sử dụng SSE.

File backup thiếu khóa hoặc metadata cần thiết có thể không đủ để restore hoàn chỉnh.

Scheduler nội bộ của AIO sử dụng UTC. Ví dụ quy đổi tham khảo:

04:00 UTC = 11:00 Asia/Ho_Chi_Minh
20:00 UTC = 03:00 Asia/Ho_Chi_Minh ngày hôm sau

Xác nhận múi giờ trong lịch vận hành trước khi thông báo thời gian backup cho user.

--keep-within=7d
--keep-weekly=4
--keep-monthly=6

Chính sách trên chỉ là mẫu. Cần điều chỉnh theo RPO/RTO, dung lượng storage và yêu cầu lưu giữ dữ liệu.

AIO có chức năng kiểm tra tính toàn vẹn của repository Borg. Nên chạy kiểm tra:

  1. Sau backup đầu tiên.
  2. Sau khi thay đổi storage hoặc mount point.
  3. Theo lịch kiểm tra định kỳ.
  4. Trước khi sử dụng một restore point quan trọng.

Tra cứu repository bằng Borg nếu quy trình vận hành cho phép:

Terminal window
borg list "$BORG_REPO"
borg info "$BORG_REPO"
borg check "$BORG_REPO"

Borg passphrase phải lấy từ password manager hoặc secret file, không đặt trong Git, file Compose hay log.

Các thao tác sau không chủ động xóa named volumes:

Terminal window
docker restart nextcloud-aio-nextcloud
systemctl restart docker
reboot
shutdown -h now

Trước khi khởi động lại, cần đánh giá tác động đến session của user, các tác vụ upload đang chạy, notify_push và backup.

Lệnh Docker Compose down thông thường không xóa named volume. Tuy nhiên, không dùng down/up làm quy trình vận hành hằng ngày cho toàn bộ hệ thống AIO; ưu tiên giao diện web của AIO để quản lý các sibling container.

Terminal window
docker compose down -v
docker volume rm <volume-name>
docker system prune --volumes

Không lưu các thông tin sau trong repository:

  • Mật khẩu quản trị AIO.
  • Borg passphrase.
  • Private key của certificate.
  • Thông tin mount backup.
  • Token hoặc thông tin xác thực của dịch vụ tích hợp.
  • Log có chứa header hoặc thông tin bí mật.

Hồ sơ hạ tầng nên lưu riêng:

  • Tên miền Nextcloud.
  • Địa chỉ backend và reverse proxy.
  • Thư mục dữ liệu và ánh xạ volume.
  • Mount point backup và repository.
  • Lịch backup, retention policy và người phụ trách.
  • Restore point gần nhất đã kiểm tra.