Nextcloud AIO — Vận hành và backup
DOC PATH reference/nextcloud/aio-operations
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.
Môi trường và cấu hình cần biết
Mục có tiêu đề “Môi trường và cấu hình cần biết”Phạm vi
Mục có tiêu đề “Phạm vi”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
Mục có tiêu đề “Thành phần”| 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. |
Ports & Endpoints
Mục có tiêu đề “Ports & Endpoints”| 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. |
Thư mục
Mục có tiêu đề “Thư mục”/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í.
Environment Variables
Mục có tiêu đề “Environment Variables”APACHE_PORT: 11000APACHE_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. |
Kiểm tra dịch vụ và proxy
Mục có tiêu đề “Kiểm tra dịch vụ và proxy”Trusted Proxies
Mục có tiêu đề “Trusted Proxies”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:
docker exec --user www-data nextcloud-aio-nextcloud \php occ config:system:get trusted_proxiesThiết lập một mục:
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.
Kiểm tra nhanh
Mục có tiêu đề “Kiểm tra nhanh”docker psdocker compose -f /root/nextcloud-aio/compose.yaml psdocker logs --tail 100 nextcloud-aio-mastercontainerdocker exec --user www-data nextcloud-aio-nextcloud php occ statusdocker exec --user www-data nextcloud-aio-nextcloud php occ app:listdf -hfree -hKiểm tra endpoint:
curl -I https://<nextcloud-domain>/notify_push
Mục có tiêu đề “notify_push”Kiểm tra ứng dụng notify_push:
docker exec --user www-data nextcloud-aio-nextcloud \php occ app:list | grep notify_pushThiết lập endpoint:
docker exec --user www-data nextcloud-aio-nextcloud \php occ notify_push:setup https://<nextcloud-domain>/pushSelf-test:
docker exec --user www-data nextcloud-aio-nextcloud \php occ notify_push:self-testNế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.
Backup và kiểm tra integrity
Mục có tiêu đề “Backup và kiểm tra integrity”BorgBackup
Mục có tiêu đề “BorgBackup”Backup Storage
Mục có tiêu đề “Backup Storage”Ví dụ mount point và repository:
Backup mount point: /mnt/nextcloud-backupBorg repository: /mnt/nextcloud-backup/borgKhông chỉnh sửa thủ công nội dung bên trong repository Borg.
Dữ liệu
Mục có tiêu đề “Dữ liệu”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.
Backup Schedule
Mục có tiêu đề “Backup Schedule”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_Minh20:00 UTC = 03:00 Asia/Ho_Chi_Minh ngày hôm sauXá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.
Retention Policy
Mục có tiêu đề “Retention Policy”--keep-within=7d--keep-weekly=4--keep-monthly=6Chí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.
Integrity Check
Mục có tiêu đề “Integrity Check”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:
- Sau backup đầu tiên.
- Sau khi thay đổi storage hoặc mount point.
- Theo lịch kiểm tra định kỳ.
- 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:
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.
Restart và bảo vệ dữ liệu
Mục có tiêu đề “Restart và bảo vệ dữ liệu”Khởi động lại và dữ liệu
Mục có tiêu đề “Khởi động lại và dữ liệu”Restart / Shutdown
Mục có tiêu đề “Restart / Shutdown”Các thao tác sau không chủ động xóa named volumes:
docker restart nextcloud-aio-nextcloudsystemctl restart dockerrebootshutdown -h nowTrướ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 Compose down
Mục có tiêu đề “Lệnh Compose down”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.
Destructive Commands
Mục có tiêu đề “Destructive Commands”docker compose down -vdocker volume rm <volume-name>docker system prune --volumesQuản lý secrets
Mục có tiêu đề “Quản lý secrets”Secrets
Mục có tiêu đề “Secrets”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.