Nextcloud
Cài Nextcloud từ Kho ứng dụng, tạo tài khoản quản trị sau khoá thiết lập, cấu hình cron, email và ứng dụng đồng bộ, sao lưu và cập nhật ổ đám mây riêng.
Nextcloud là ổ đám mây tự host: đồng bộ và chia sẻ file qua ứng dụng máy tính và điện thoại, kèm lịch, danh bạ, ghi chú và nhiều ứng dụng mở rộng. Bản trong Kho ứng dụng chạy image Nextcloud chính thức với SQLite, phù hợp cho một người, gia đình hoặc nhóm nhỏ. Chọn Nextcloud khi bạn muốn chuyển file khỏi Google Drive hay Dropbox và giữ chúng trên server của mình.
Yêu cầu
| Mục | Giá trị |
|---|---|
| Image | nextcloud:35-apache (Nextcloud 35, Apache) |
| Giới hạn RAM | 1024 MB, 1 CPU |
| Dung lượng trống khi cài | Khoảng 3,3 GB trên ổ chứa Docker (image cộng 1 GB chừa lại cho server), cộng thêm chỗ cho file của bạn |
| Cơ sở dữ liệu | SQLite, do trình cài đặt tạo |
| Giới hạn upload | 2 GB mỗi request trong container (PHP_UPLOAD_LIMIT); nginx phía trước nhận theo Dung lượng upload của website, đặt 10 GB (10240 MB) khi cài |
File được lưu trên ổ đĩa server trong /var/lib/zopanel-apps, không nằm trong tài khoản hosting, nên không tính vào quota ổ đĩa của tài khoản. Quản trị viên cần theo dõi dung lượng trống của server. Website được tính vào giới hạn số website của tài khoản; khách hàng cần gói có Ứng dụng Docker và còn trống 1024 MB RAM (MB).
Lưu ý: Nextcloud khuyên dùng MySQL/MariaDB hoặc PostgreSQL cho hệ thống lớn. Container không kết nối được máy chủ database của chính server (xem mục Giới hạn mạng bên dưới), nên nếu cả công ty đồng bộ nhiều file, hãy lên phương án triển khai riêng.
Cài Nextcloud
- Trỏ bản ghi A của tên miền (ví dụ
cloud.example.com) về server. - Mở Kho ứng dụng, bấm Cài đặt trên thẻ Nextcloud. Khách hàng thấy Kho ứng dụng trên menu của mình; thẻ trên cùng cho biết hạn mức ứng dụng và RAM của gói.
- Điền các trường rồi bấm Cài đặt. Lần đầu tải image mất vài phút.
| Trường | Nhập gì |
|---|---|
| Tên miền | Tên miền hoặc tên miền phụ cho Nextcloud, không kèm http://. |
| Chủ sở hữu | Chỉ quản trị viên thấy: tài khoản hosting sở hữu ứng dụng. |
| SSL miễn phí (Let's Encrypt) | Giữ bật. |
ZoPanel tự đặt các biến sau cho container:
| Biến | Giá trị | Lý do |
|---|---|---|
NEXTCLOUD_TRUSTED_DOMAINS |
tên miền của bạn | Nextcloud chỉ trả lời trên tên miền tin cậy. |
OVERWRITEPROTOCOL |
https |
Nextcloud chạy sau nginx có SSL và tạo link https://. |
TRUSTED_PROXIES |
172.16.0.0/12 |
Nextcloud tin cậy mạng bridge của Docker và ghi đúng IP thật của người truy cập. |
PHP_UPLOAD_LIMIT |
2G |
Cho phép upload lớn hơn mặc định của image (512 MB). |
ZoPanel cũng đặt dung lượng upload của website là 10 GB (tab Công cụ của website → thẻ Dung lượng upload, trường Upload tối đa (MB)). Nextcloud cài bằng phiên bản ZoPanel cũ hơn vẫn giữ mức 256 MB trước đây cho tới khi bạn tăng ở đó.
Quan trọng: Vì Nextcloud luôn tạo link https://, hãy chờ tới khi chứng chỉ được cấp (tab SSL) rồi mới mở ứng dụng. Trên http://, trang đăng nhập sẽ chuyển hướng tới địa chỉ chưa hoạt động.
Chạy trình cài đặt sau khoá thiết lập
Trình cài đặt của Nextcloud tạo tài khoản quản trị, nên ai mở trước sẽ nắm quyền. ZoPanel khoá ứng dụng cho tới khi bạn làm xong.
- Ở tab Docker, bấm Mở ứng dụng (chỉ mình tôi). Trình duyệt nhận cookie thiết lập (hiệu lực 30 ngày) và mở Nextcloud.
- Trong trình cài đặt, nhập tên và mật khẩu tài khoản quản trị. Dùng mật khẩu mạnh: tài khoản này quản lý mọi người dùng.
- Giữ nguyên thư mục dữ liệu (
/var/www/html/data) và database (SQLite). Nextcloud cảnh báo SQLite chỉ dành cho hệ thống nhỏ; đây là điều bình thường. - Bấm Install. Quá trình cài mất tối đa khoảng một phút.
- Nextcloud gợi ý cài các ứng dụng khuyên dùng (lịch, danh bạ, mail, Talk…). Cài hoặc bỏ qua; bạn thêm ứng dụng sau được ở trang Apps.
- Quay lại tab Docker, bấm Đã thiết lập xong — mở công khai.
Trước bước 6, trình duyệt khác chỉ thấy "This app is being set up", ứng dụng máy tính và điện thoại không kết nối được.
Thiết lập cần làm
Chạy công cụ dòng lệnh occ của Nextcloud bằng quyền root trên server. Container có tên zp-app-<instance>, trong đó <instance> là tên miền với dấu chấm đổi thành gạch ngang (cloud.example.com thành cloud-example-com):
docker exec -u www-data zp-app-cloud-example-com php occ status
Tác vụ nền (cron)
Nextcloud khởi đầu ở chế độ AJAX, chỉ chạy tác vụ nền khi có người đang mở trang. Hãy dùng cron của hệ thống, trong crontab của root trên server:
crontab -e
Thêm dòng:
*/5 * * * * docker exec -u www-data zp-app-cloud-example-com php -f /var/www/html/cron.php
Rồi chuyển Nextcloud sang chế độ cron:
docker exec -u www-data zp-app-cloud-example-com php occ background:cron
Container giữ nguyên tên khi cập nhật, nên dòng cron vẫn chạy đúng.
Cảnh báo ở trang tổng quan
Administration settings → Overview liệt kê các cảnh báo bảo mật và cấu hình. Các cảnh báo thường gặp sau khi cài mới:
# Quốc gia mặc định cho số điện thoại (VN, US, DE…)
docker exec -u www-data zp-app-cloud-example-com php occ config:system:set default_phone_region --value="VN"
# Giờ bắt đầu khung bảo trì 4 tiếng, tính theo UTC (18 = 01:00–05:00 giờ Việt Nam)
docker exec -u www-data zp-app-cloud-example-com php occ config:system:set maintenance_window_start --type=integer --value=18
# Bổ sung index database sau mỗi lần cập nhật
docker exec -u www-data zp-app-cloud-example-com php occ db:add-missing-indices
Với cấu hình này, cảnh báo về SQLite và thiếu bộ nhớ đệm Redis là bình thường.
Nextcloud gửi email đặt lại mật khẩu, thông báo chia sẻ và hoạt động. Trong Administration settings → Basic settings → Email server, chọn SMTP và nhập máy chủ mail: với hộp thư trên server này, dùng tên máy chủ mail, cổng 587 với STARTTLS (hoặc 465 với SSL/TLS), địa chỉ hộp thư và mật khẩu. Bấm Send email để thử; tài khoản quản trị cần có địa chỉ email trong phần cài đặt cá nhân trước.
Ứng dụng máy tính và điện thoại
Cài ứng dụng Nextcloud cho máy tính hoặc iOS/Android, nhập https://<tên miền> làm địa chỉ server và đăng nhập. Lịch và danh bạ đồng bộ qua CalDAV và CardDAV cùng địa chỉ đó.
Thêm tên miền khác
Để Nextcloud trả lời trên tên miền thứ hai (đã thêm làm tên miền phụ của website), thêm vào danh sách tin cậy:
docker exec -u www-data zp-app-cloud-example-com php occ config:system:set trusted_domains 1 --value=files.example.org
Dữ liệu và sao lưu
| Nội dung | Vị trí trên server |
|---|---|
Toàn bộ thư mục Nextcloud: mã nguồn, config/config.php, ứng dụng, file người dùng (data/) và database SQLite (data/<tên>.db) |
/var/lib/zopanel-apps/<instance>/html/ (gắn vào /var/www/html) |
| File biến môi trường (chỉ root đọc) | /var/lib/zopanel-apps/<instance>/.env |
Bản sao lưu tài khoản của ZoPanel không gồm thư mục này. Bản sao lưu đầy đủ và bản sao lưu gia tăng chỉ chứa thư mục website của tài khoản trong /home, database và email. File và database của Nextcloud nằm ở /var/lib/zopanel-apps, ngoài tài khoản, và được sao lưu bằng thẻ Sao lưu trong tab Docker của website. Bản sao lưu cấu hình (.zpb) chỉ khôi phục bản ghi của ứng dụng trong panel.
Bấm Sao lưu ngay trong thẻ Sao lưu. Quản trị viên còn đặt được Lịch (Tắt, Mỗi ngày hoặc Mỗi tuần; mặc định tắt) và số bản Giữ lại (1–60, mặc định 7), rồi bấm Lưu. Mỗi bản sao lưu nén toàn bộ thư mục /var/lib/zopanel-apps/<instance>/ (file, database và .env) thành /var/backups/zopanel-apps/<instance>/YYYYMMDD-HHMMSS.tar.gz, trong thư mục chỉ root đọc được và không tính vào quota ổ đĩa của tài khoản. Container được tạm dừng (pause, không phải stop) trong lúc sao chép, nên bản sao nhất quán; ổ dữ liệu lớn sẽ nén lâu hơn và cần thêm chừng ấy dung lượng trống. Các bản cũ vượt quá số Giữ lại bị xoá, và khi một lần sao lưu theo lịch thất bại, quản trị viên nhận cảnh báo Sao lưu thất bại.
Để khôi phục, quản trị viên bấm Khôi phục cạnh một bản sao lưu. Nextcloud được dừng và thư mục được thay bằng nội dung file nén; dữ liệu hiện tại được giữ riêng tới khi ứng dụng khôi phục khởi động được, và được đặt lại nếu nó không khởi động. Mọi thay đổi sau thời điểm sao lưu sẽ mất. Mỗi bản sao lưu còn có nút xoá (chỉ quản trị viên), và xoá ứng dụng kèm file của nó cũng xoá luôn các bản sao lưu. Khách hàng có thể bấm Sao lưu ngay và xem danh sách; việc đặt lịch và khôi phục do nhà cung cấp thực hiện. Khách hàng cũng có thể giữ bản sao các file quan trọng bằng ứng dụng máy tính.
Các file nén vẫn ở trên cùng server: hãy chép những bản quan trọng ra ngoài (ví dụ bằng scp hoặc rclone từ /var/backups/zopanel-apps/<instance>/) và lưu ở dạng mã hoá, vì chúng chứa file của bạn và các bí mật của Nextcloud. Với ổ dữ liệu rất lớn, vẫn có thể chép thư mục bằng rsync -aH --numeric-ids sang máy khác, hoặc cho một job restic sao lưu đường dẫn này.
Để khôi phục sang server khác, cài Nextcloud với cùng tên miền ở đó, chép file nén vào /var/backups/zopanel-apps/<instance>/ trên server mới rồi bấm Khôi phục trong thẻ Sao lưu của nó. Cách này chỉ làm được khi hai server dùng cùng dải dockremap cho user namespace của Docker (so sánh grep dockremap /etc/subuid).
Cập nhật Nextcloud
Quản trị viên bấm Cập nhật bản mới ở tab Docker. ZoPanel kéo lại nextcloud:35-apache và tạo lại container; thư mục dữ liệu được giữ nguyên. Khi image mới hơn bản đang cài, image tự nâng cấp Nextcloud lúc khởi động (theo dõi ở Log ứng dụng). Sau đó chạy lại occ db:add-missing-indices.
- Bản cập nhật chỉ nằm trong dòng 35. Phiên bản lớn mới hơn chỉ đến khi một bản cập nhật ZoPanel chuyển danh mục sang. Nextcloud chỉ nâng được từng phiên bản lớn một.
- Sao lưu (Sao lưu ngay) trước mỗi lần cập nhật.
- Cập nhật các ứng dụng của Nextcloud ở trang Apps trong Nextcloud.
Khách hàng không thấy nút Cập nhật bản mới; hãy nhờ nhà cung cấp.
Giới hạn mạng
Container ứng dụng bị chặn khỏi mạng nội bộ của server. Với Nextcloud, điều đó có nghĩa:
- Không dùng database hay Redis của server. MySQL/MariaDB, PostgreSQL và Redis của server không kết nối được, nên Nextcloud dùng SQLite và bộ nhớ đệm có sẵn.
- External storage (SMB, SFTP, FTP, WebDAV, S3) chỉ dùng được với địa chỉ công khai. Thư mục chia sẻ trong mạng nội bộ (
192.168.x,10.x) và SFTP tới chính server này bị từ chối. Bucket S3 của ZoPanel dùng được khi lưu trữ S3 đã mở ra một tên miền (HTTPS cổng 443). - Email gửi được tới server này qua cổng 25, 465, 587, và tới mọi nhà cung cấp mail trên internet.
- App store của Nextcloud, liên kết federation và xem trước link tới địa chỉ công khai hoạt động bình thường.
Xử lý sự cố
| Hiện tượng hoặc thông báo | Cách xử lý |
|---|---|
| Ứng dụng máy tính hay điện thoại không kết nối được; trình duyệt hiện "This app is being set up" | Khoá thiết lập vẫn bật. Bấm Đã thiết lập xong — mở công khai ở tab Docker. |
| "Access through untrusted domain" | Bạn mở Nextcloud bằng địa chỉ chưa được tin cậy. Dùng đúng tên miền đã cài, hoặc thêm địa chỉ kia bằng occ config:system:set trusted_domains. |
Đăng nhập lặp lại hoặc chuyển tới trang https:// lỗi |
Chưa có SSL. Cấp chứng chỉ ở tab SSL rồi tải lại trang. |
| Upload lỗi 413 Request Entity Too Large | Request lớn hơn Dung lượng upload của website (10 GB với bản cài mới, 256 MB với Nextcloud cài bằng phiên bản ZoPanel cũ). Tăng Upload tối đa (MB) ở tab Công cụ → Dung lượng upload của website (tối đa 10240 MB). Hoặc upload theo phần nhỏ hơn: giao diện web tự upload theo từng phần; với ứng dụng máy tính, đặt kích thước phần nhỏ hơn trong nextcloud.cfg, mục [General]: maxChunkSize=100000000, rồi khởi động lại ứng dụng. |
| Một số file không bao giờ đồng bộ và server trả 403 | nginx của ZoPanel từ chối các tên file thường bị lộ thông tin nhạy cảm: tên bắt đầu bằng dấu chấm (trừ .well-known), file đuôi .sql, .env, .log, .ini, .sh, .bak, .old, .orig, .swp, .dump, .sql.gz, .sql.zip, và file nén tên bắt đầu bằng backup/backups (.zip, .tar, .tar.gz, .tgz, .gz). Đổi tên các file đó hoặc gói chúng vào file nén có tên khác. |
| Request lỗi 429 khi đồng bộ lần đầu khối lượng lớn | nginx giới hạn mỗi IP 50 request mỗi giây (có cho phép vượt ngắn hạn). Để ứng dụng tự thử lại, hoặc đồng bộ từng đợt nhỏ. |
| Request bị chặn khi bật tường lửa ứng dụng web | Request WebDAV có thể kích hoạt luật OWASP. Đặt tường lửa của website về Chỉ phát hiện (ghi log), xem bảng sự kiện và bấm Cho phép với các luật chặn nhầm Nextcloud. |
| "This website is very busy right now" | Nextcloud đang khởi động, nâng cấp hoặc dùng hết RAM. Chờ một lúc; nếu kéo dài, xem Log ứng dụng và cân nhắc tăng RAM. |
| "not enough disk space: this app needs about 3.3 GB free…" | Giải phóng dung lượng trên server trước khi cài. |
Xem thêm
- Kho ứng dụng và lưu trữ S3
- Từng ứng dụng dùng để làm gì
- Công cụ website
- Sao lưu
- Tài liệu quản trị Nextcloud
- Image Docker chính thức của Nextcloud