
Nextcloud AIO: tự host thay Google Drive cho công ty nhỏ
Đăng 14 phút đọc
Mục lục · 21
Hướng dẫn tự host Nextcloud AIO cho công ty nhỏ, làm trên máy chủ thật: từng bước cài bằng Docker, RAM thực tế, tốc độ tải file, sao lưu Borg, và những chỗ dễ vấp như tên miền hay mật khẩu chỉ hiện một lần.
Nextcloud AIO (All-in-One) là cách cài Nextcloud chính thức: bạn chạy một container Docker, mở trang quản lý trên trình duyệt, nhập tên miền, bấm một nút, rồi nó tự dựng Nextcloud cùng PostgreSQL, Redis, bộ office, chat và công cụ sao lưu. Kết quả là một ổ đĩa chung kiểu Google Drive chạy trên máy chủ của bạn, có sửa Word, Excel ngay trong trình duyệt.
Mình cài Nextcloud AIO trên một máy chủ 16 vCPU, 32GB RAM, Ubuntu 24.04 có IP public ngày 11/10/2026. Vài con số để hình dung:
Từ lúc bấm nút đến lúc vào được trang đăng nhập: khoảng 7 phút, kéo về 12,2GB image.
Lúc rảnh, 10 container dùng khoảng 2,4GB RAM (cả máy 3,2GB), riêng bộ office đã chiếm 1,7GB.
Tải lên file 1GB đạt 24,5 MB/s, gần bằng tốc độ đường truyền thô (25,7 MB/s) đo cùng lúc.
Sao lưu lần đầu mất 52 giây, lần sau chỉ 15 giây vì Borg chỉ ghi phần đổi.

Nextcloud là gì, khác Google Drive ở đâu?
Nextcloud là phần mềm lưu trữ và cộng tác mã nguồn mở (giấy phép AGPL-3.0), bạn tự cài lên máy chủ của mình. Phần lõi là lưu file và đồng bộ giữa máy tính, điện thoại, giống Google Drive. Quanh đó có thêm lịch, danh bạ, chat và họp video (Talk), bảng trắng, và bộ office để sửa tài liệu ngay trên web.
Khác biệt lớn nhất nằm ở chỗ dữ liệu ở đâu và tiền trả theo gì:
Google Workspace | Nextcloud tự host | |
|---|---|---|
Dữ liệu nằm ở | Máy chủ Google | Máy chủ của bạn |
Tính tiền | Theo người dùng mỗi tháng | Tiền máy chủ, miễn phí đến 100 người dùng |
Dung lượng | Business Starter 30GB/người, Standard 2TB/người | Bằng ổ đĩa máy chủ |
Ai lo cập nhật, sao lưu | Bạn (AIO làm gần hết) | |
Sửa tài liệu cùng lúc | Google Docs, rất mượt | Nextcloud Office, đủ dùng |
Theo trang giá Google Workspace ngày 11/10/2026, gói Business Starter là 7 USD và Business Standard là 14 USD mỗi người mỗi tháng nếu cam kết một năm. Một công ty 10 người dùng gói Standard trả 140 USD mỗi tháng, thêm người thì tăng theo. Với Nextcloud, README của AIO ghi rõ "Up to 100 users are free", trên 100 người mới cần bản Enterprise trả phí.
Cần chuẩn bị gì trước khi cài?
Ba thứ, thiếu một là không cài xong:
Máy chủ Linux có Docker (bản cài từ trang Docker, không dùng bản snap). AIO chạy được trên x86_64 và arm64, tài liệu khuyên dùng SSD.
IP public và cổng mở: 443/TCP cho Nextcloud, 80 và 8443 cho bước xin chứng chỉ, 8080 cho trang quản lý AIO. Bật Talk thì mở thêm 3478/TCP và UDP.
Một tên miền trỏ về IP đó. AIO không chấp nhận địa chỉ IP, chuyện này mình gặp ở bước 2.
Máy mình dùng có 16 vCPU (Xeon E5-2680 v4), 32GB RAM, Docker 29.6.1. Cấu hình này dư cho một công ty nhỏ. Theo số đo RAM bên dưới, mình ước tính máy 8GB là đủ cho bộ mặc định.
Cài Nextcloud AIO bằng Docker thế nào?
Bước 1: chạy mastercontainer
AIO dùng một container điều phối tên nextcloud-aio-mastercontainer. Lệnh lấy nguyên từ README chính thức của Nextcloud AIO:
sudo docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
ghcr.io/nextcloud-releases/all-in-one:latest
Mình thêm -d vào cuối các tham số để container chạy nền, như trong ảnh dưới. Đừng đổi tên container và tên volume, cơ chế cập nhật và sao lưu của AIO dựa vào hai cái tên đó. Image chỉ nặng 327MB nên kéo về trong 8 giây:

Mở https://<IP-máy-chủ>:8080, trình duyệt sẽ cảnh báo chứng chỉ tự ký, cứ chấp nhận. Trang đầu tiên hiện một passphrase 8 từ để đăng nhập trang quản lý. Chép lại ngay: tải lại trang thì nó chỉ còn ghi "The password is only shown once on the very first visit of this page". Lỡ mất thì vẫn lấy lại được trong file cấu hình của mastercontainer:
sudo docker exec nextcloud-aio-mastercontainer grep password /mnt/docker-aio-config/data/configuration.json
Bước 2: nhập tên miền
Mình thử nhập thẳng IP cho nhanh và bị chặn ngay:

Chưa có tên miền thì có hai cách. AIO có sẵn mục "Don't have a domain? Get a free one from deSEC" để đăng ký tên miền miễn phí đuôi dedyn.io. Cách mình dùng để thử là sslip.io, một dịch vụ DNS trả về đúng IP viết trong tên: máy có IP 1.2.3.4 thì tên nc.1-2-3-4.sslip.io trỏ thẳng về đó. Dùng thật cho công ty thì nên dùng tên miền riêng, vì AIO chưa cho đổi tên miền trong giao diện, muốn đổi phải sửa tay file cấu hình.
Nhập tên miền xong, AIO dựng một container tạm để kiểm tra cổng 443 có ra được Internet không. Bước này mất khoảng 20 giây.
Bước 3: chọn container và bấm cài
Màn hình tiếp theo cho chọn bản Nextcloud và các container phụ:

Mặc định AIO cài Nextcloud Hub 26 Spring (bản 34). Muốn bản mới hơn, Hub 26 Summer (bản 35), thì tick ô phía trên. Mình để mặc định và nhận Nextcloud 34.0.4. Bộ office mặc định là Euro-Office, bản Collabora Online vẫn chọn được. ONLYOFFICE vẫn còn trong danh sách nhưng bị đánh dấu deprecated từ tháng 6/2026, sau khi hai bên ngừng hợp tác.
Ngoài office, AIO bật sẵn Talk, Imaginary (xem trước ảnh HEIC, PDF) và Whiteboard. ClamAV quét virus và Fulltextsearch thì tắt sẵn, mỗi cái cần thêm khoảng 1GB RAM. Mình còn đặt múi giờ Asia/Ho_Chi_Minh ở ô Timezone trước khi bấm Download and start containers.
Màn hình báo "5-10 min or more". Mình bấm lúc 13:35:46, trang đăng nhập trả mã 200 lúc 13:42:53, tức chừng 7 phút. Khi xong, trang AIO hiện tài khoản admin và mật khẩu khởi tạo, sau này xem lại bằng mục "Click here to reveal the initial Nextcloud credentials". Đăng nhập lần đầu xong thì đổi mật khẩu này ngay.

Chứng chỉ HTTPS do Let's Encrypt cấp tự động. Chứng chỉ máy mình nhận có hạn đến 17/10/2026, chỉ khoảng 6 ngày sau khi cài, ngắn hơn nhiều so với loại 90 ngày quen thuộc. Vì vậy cổng 443 phải luôn mở ra Internet, đừng chặn sau khi cài xong.
Cài xong thì làm gì trước?
Vào Cài đặt quản trị > Tổng quan đọc mục cảnh báo. Ngay sau khi cài, máy mình báo 10 mục. Ba mục sửa được ngay hoặc tự hết:
Default phone region: Nextcloud chưa biết số điện thoại không có mã quốc gia là của nước nào. Đặt
VN.Mimetype migrations available: chạy lệnh sửa một lần, máy mình mất 1,8 giây.
Cron last run ... 56 years ago: nghe đáng sợ nhưng chỉ vì cron chưa chạy lần nào. Chờ vài phút là hết.
Hai lệnh sửa chạy qua occ, công cụ dòng lệnh của Nextcloud:
docker exec -u www-data nextcloud-aio-nextcloud php occ config:system:set default_phone_region --value="VN"
docker exec -u www-data nextcloud-aio-nextcloud php occ maintenance:repair --include-expensive
Mục Errors in the log thì xuất hiện lại sau mỗi lần khởi động container. Hai lỗi đầu tiên là của tác vụ nền SanitizeAccountPropertiesJob (mã SQLSTATE 25P02) lúc khởi tạo, Nextcloud vẫn chạy bình thường. Mục Backend hiệu suất cao báo bản Talk 2.1.1 trong AIO thiếu tính năng changed-users, mình chưa thấy ảnh hưởng gì khi dùng.
Các mục còn lại là thông tin chứ không phải lỗi: chưa cấu hình máy chủ email, chưa bắt buộc xác thực hai lớp, Talk chưa có máy ghi hình. Hai việc nên làm sớm là nhập máy chủ SMTP để Nextcloud gửi được email đặt lại mật khẩu, và bật bắt buộc 2FA cho tài khoản admin.

Riêng cảnh báo Whiteboard "WebSocket server shared secret is not configured" thì mình chưa gỡ được. Script khởi động của AIO có sẵn lệnh đặt khóa này. Mình chạy lại đúng lệnh đó bằng occ thì nhận "Config value were not updated", tức giá trị không đổi. Vậy mà trang kiểm tra vẫn báo thiếu. Không dùng bảng trắng thì bạn tắt container Whiteboard trong AIO là xong.
Thêm người cho công ty làm trên giao diện Tài khoản, hoặc bằng occ khi cần tạo nhiều người một lúc. Mình tạo nhóm ke-toan, kinh-doanh, hai tài khoản có tên tiếng Việt có dấu, và đặt hạn mức 20GB cho tài khoản lan:
docker exec -u www-data nextcloud-aio-nextcloud php occ group:add ke-toan
docker exec -u www-data -e OC_PASS='mat-khau-tam' nextcloud-aio-nextcloud \
php occ user:add --password-from-env --display-name='Nguyễn Thị Lan' --group=ke-toan lan
docker exec -u www-data nextcloud-aio-nextcloud php occ user:setting lan files quota '20 GB'
Dùng Nextcloud hằng ngày có giống Google Drive không?
Phần lưu file và chia sẻ thì gần như giống. Mình tải lên một hợp đồng mẫu dạng .docx, tạo link công khai có mật khẩu và hạn dùng 7 ngày. Người nhận mở link sẽ thấy ô nhập mật khẩu:

Bấm vào file .docx trong Nextcloud thì Euro-Office mở ngay trong trình duyệt, chữ tiếng Việt có dấu hiển thị đúng, thanh công cụ đã dịch sang tiếng Việt:

Giao diện Nextcloud nhận tiếng Việt theo trình duyệt nhưng chưa dịch hết: "Personal files", "Folder tree", các thông báo trong trang quản trị vẫn là tiếng Anh. Người dùng văn phòng vẫn dùng được, chỉ hơi lẫn tiếng Anh.
Muốn đồng bộ thư mục với máy tính như Google Drive, cài ứng dụng Nextcloud Files cho Windows, macOS hoặc Linux. Điện thoại có app Nextcloud cho Android và iOS. Các app này đều miễn phí, tải ở trang cài đặt của Nextcloud.
Nextcloud tốn bao nhiêu RAM và đĩa?
Đo bằng docker stats ngay sau khi cài, lúc chưa ai dùng:

Thành phần | RAM lúc rảnh | Ghi chú |
|---|---|---|
EuroOffice | 1,72 GiB | Chiếm hơn nửa, tắt nếu không cần sửa tài liệu trên web |
Nextcloud (PHP) | 320 MiB | Tăng khi nhiều người dùng cùng lúc |
Talk | 106 MiB | Chat, họp video |
PostgreSQL, Redis, Apache, phần còn lại | khoảng 210 MiB | |
Cộng 10 container | khoảng 2,4 GiB | Cả máy báo 3,2GB đã dùng. Image chiếm 12,2GB đĩa, bản office nặng nhất (6,98GB) |
Từ số đo này, mình ước tính máy 8GB RAM chạy thoải mái bộ mặc định, còn máy 4GB thì nên tắt bớt office hoặc Talk. Chính trang AIO ghi: bật mọi container tùy chọn thì cần tối thiểu 5GB RAM và CPU 4 nhân.
Tải file lên Nextcloud nhanh hay chậm?
Mình đo từ máy Mac qua Internet tới máy chủ ở Hà Nội, ping khoảng 10 ms. File lớn thì Nextcloud gần như không làm chậm gì:
Phép đo | Thời gian | Tốc độ |
|---|---|---|
Tải lên 1GB qua Nextcloud (WebDAV) | 43,9 s | 24,5 MB/s |
Tải lên 1GB qua SSH, cùng đường mạng | 41,8 s | 25,7 MB/s |
Tải về 1GB qua Nextcloud | 22,1 s | 48,6 MB/s |
Tải về 1GB qua SSH | 20,4 s | 52,7 MB/s |
Nextcloud đạt 92 đến 95% tốc độ đường truyền thô, nên nếu thấy chậm thì thường là do mạng chứ không phải do Nextcloud.
File nhỏ lại khác. Gửi lần lượt 200 file 20KB bằng tài khoản và mật khẩu đăng nhập mất 151,8 giây, trung vị 753 ms mỗi file. Mình tạo một app password (trong Cài đặt cá nhân > Bảo mật) rồi chạy lại đúng 200 file đó: còn 45,6 giây, nhanh gấp 3,3 lần.

Vì vậy, khi nối Nextcloud với công cụ khác (ổ mạng WebDAV, script sao lưu, n8n), hãy dùng app password thay cho mật khẩu thật. App password vừa nhanh hơn, vừa thu hồi riêng được khi bị lộ. Lệnh tải một file lên bằng WebDAV mình dùng khi đo có dạng:
curl -u admin:<app-password> -T bao-cao.xlsx \
"https://<ten-mien>/remote.php/dav/files/admin/bao-cao.xlsx"
Sao lưu Nextcloud AIO thế nào?
AIO có sẵn sao lưu bằng BorgBackup: mã hóa, nén, và chỉ ghi phần đổi ở các lần sau. Trong trang AIO, nhập thư mục sao lưu (mình dùng /mnt/backup). AIO hiện mật khẩu mã hóa bản sao lưu, mất mật khẩu này là không khôi phục được, nên cất nó ở chỗ khác máy chủ.
Bấm Create backup, AIO hỏi lại vì nó sẽ dừng mọi container trong lúc sao lưu. Kết quả trên máy mình:

Có một bẫy: sao lưu bấm tay xong thì Nextcloud vẫn tắt. Mọi container đứng ở trạng thái Stopped cho tới khi bạn bấm Start containers. Lần đó mình mất 57 giây để Nextcloud trả lời lại. Ai sao lưu lúc giữa giờ làm rồi quên bấm thì cả công ty mất ổ chung.
Nên bật sao lưu hằng ngày ở mục Daily backup and automatic updates. Chế độ này tự khởi động lại container sau khi sao lưu, và có thể tự cập nhật container luôn.

Ô giờ ở đây tính theo giờ UTC, không phải giờ máy chủ. Muốn sao lưu lúc 2 giờ sáng giờ Việt Nam thì nhập 19:00. Mình nhập rồi kiểm tra lại trong file cấu hình của AIO, giá trị lưu đúng là 19:00. Thư mục sao lưu nằm cùng ổ với dữ liệu chỉ chống được xóa nhầm. Muốn an toàn khi hỏng máy thì cho Borg sao lưu sang ổ khác hoặc máy khác (AIO nhận cả kho Borg từ xa).
Những lỗi mình gặp khi cài
Nhập IP thay cho tên miền. AIO báo Please enter a domain and not an IP-address! như ở bước 2. Cách sửa: dùng tên miền trỏ về IP, tên miền miễn phí từ deSEC ngay trong giao diện, hoặc sslip.io khi chỉ cần thử.
Không vào lại được trang AIO khi Nextcloud đang chạy. Mở https://IP:8080/login thì gặp:
The login is blocked since Nextcloud is running.
Please use the automatic login from your Nextcloud.
Đây là cơ chế bảo vệ chứ không phải lỗi. Đăng nhập Nextcloud bằng admin, vào Cài đặt quản trị > Tổng quan, bấm nút Open Nextcloud AIO Interface, trang AIO sẽ mở mà không cần passphrase.
Khi nào không nên tự host Nextcloud?
Công ty chỉ vài người, đã quen Google Drive và không ngại dữ liệu nằm ở Google. Tiền Workspace khi đó rẻ hơn công sức tự vận hành.
Không ai trong công ty lo được việc kiểm tra sao lưu, cập nhật, gia hạn tên miền. AIO tự động hóa nhiều, nhưng vẫn cần một người đọc thông báo.
Mạng không có IP public và không muốn dùng đường hầm. AIO cần cổng 443 mở ra Internet để có HTTPS.
Nhiều người cần sửa cùng một tài liệu liên tục. Euro-Office và Collabora dùng được, nhưng chưa mượt bằng Google Docs.
Câu hỏi thường gặp
Nextcloud có miễn phí không?
Có. Nextcloud là phần mềm mã nguồn mở theo AGPL-3.0, cài bằng AIO miễn phí đến 100 người dùng, app máy tính và điện thoại cũng miễn phí. Bạn chỉ trả tiền máy chủ. Trên 100 người, Nextcloud bán bản Enterprise có hỗ trợ.
Nextcloud AIO khác cài Nextcloud bằng Docker Compose tự viết thế nào?
AIO là cách cài chính thức, tự dựng sẵn PostgreSQL, Redis, HTTPS, office, Talk và sao lưu Borg, cập nhật bằng một nút. Tự viết Docker Compose thì linh hoạt hơn nhưng bạn tự lo từng phần đó. Với công ty nhỏ không có người chuyên vận hành, AIO đỡ việc hơn nhiều.
Cài Nextcloud cần máy chủ cấu hình bao nhiêu?
Lúc rảnh, 10 container của bộ mặc định dùng khoảng 2,4GB RAM (cả máy 3,2GB), nên mình ước tính 8GB RAM là thoải mái cho nhóm nhỏ. Ổ đĩa tính theo dung lượng file của công ty, cộng khoảng 12GB cho image. Nên dùng SSD.
Có thể chạy Nextcloud AIO trên máy ở văn phòng không?
Được, AIO có hướng dẫn cài cục bộ và chạy sau Cloudflare Tunnel hoặc Tailscale khi không có IP public. Lúc đó cần thêm reverse proxy, các bước khác với bài này.
Đọc tiếp
Tự host n8n bằng Docker: cách mở HTTPS khi máy không có IP tĩnh, áp dụng được cho Nextcloud.
Supabase tự host bằng Docker: thêm một dịch vụ tự host cho công ty, kèm các cổng phải chặn.
n8n là gì: tự động hóa công việc, nối được với Nextcloud để xử lý file mới tải lên.
Nếu muốn có Nextcloud cho công ty mà không tự cài và vận hành, AIDev triển khai Nextcloud lên máy chủ của bạn, phân quyền theo phòng ban và bàn giao kèm hướng dẫn.
Thử ngày 11/10/2026 trên máy CPU Standard (16 vCPU Xeon E5-2680 v4, 32GB RAM, Ubuntu 24.04, IP public) của AIDev Cloud: Nextcloud AIO v14.2.0, Nextcloud Hub 26 Spring 34.0.4, Docker 29.6.1.
Chuyên mục
AI AutomationVề tác giả
Founder AIDev
Thạc sĩ AI MSE, tốt nghiệp thủ khoa với điểm 9,4/10. Đồng sáng lập, CTO E-University, SVOnline: số hóa 10+ đại học, 40.000+ sinh viên. Sáng lập AIDev và VietPlatform, xây hệ thống AI cho doanh nghiệp. Anh trực tiếp biên soạn và giảng dạy toàn bộ lộ trình AI Engineer.


