Cách cài đặt Nextcloud AIO trên Ubuntu 22.04

theanh

Administrator
Nhân viên
Nextcloud AIO là viết tắt của Nextcloud All in One. Đây là trình cài đặt dựa trên docker giúp việc triển khai Nextcloud trở nên dễ dàng. Nó đi kèm với các tính năng và ứng dụng sau:
  1. Nextcloud
  2. Nextcloud Office - dựa trên Collabora Online Development Edition (CODE), bản này lại dựa trên LibreOffice. Bạn có thể sử dụng nó để chỉnh sửa tài liệu theo thời gian thực với nhiều trình soạn thảo. Nó hỗ trợ tất cả các định dạng tệp Office phổ biến.
  3. Nextcloud Talk - là dịch vụ giao tiếp âm thanh/video và trò chuyện. Nó hỗ trợ các cuộc gọi được mã hóa, cuộc gọi nhóm, chia sẻ màn hình, WebRTC để hỗ trợ đa nền tảng và lưu trữ hội thảo trên web.
  4. Imaginary - để xử lý và chuyển đổi hình ảnh cấp cao.
  5. ClamAV - để bảo vệ chống lại vi-rút và phần mềm độc hại.
  6. Borgbackup - cung cấp tiện ích sao lưu và khôi phục tích hợp.
  7. ElasticSearch - để hỗ trợ tìm kiếm toàn văn trên các tài liệu và tệp.

Điều kiện tiên quyết​


  • Một máy chủ chạy Ubuntu 22.04 với tối thiểu 1GB RAM và 1 vCPU. Nếu bạn muốn sử dụng ClamAV, bạn sẽ cần thêm 1GB RAM. Bạn sẽ cần thêm 1GB RAM cho ElasticSearch (tìm kiếm toàn văn) và Nextcloud Talk. Với tất cả các tiện ích bổ sung được bật, bạn sẽ cần tối thiểu 4GB RAM và 2vCPU.

  • Một tên miền đủ điều kiện (FQDN) trỏ đến máy chủ của bạn. Đối với mục đích của chúng tôi, chúng tôi sẽ sử dụng nextcloud.example.com làm tên miền.

  • Người dùng không phải root có quyền sudo.

  • Tường lửa đơn giản (UFW) được bật và đang chạy.

  • Đảm bảo mọi thứ đều đã cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade
[*]
Cài đặt các gói tiện ích cơ bản. Một số trong số chúng có thể đã được cài đặt.
Mã:
$ sudo apt install wget curl nano unzip -y

Bước 1 - Cấu hình Tường lửa​

Trước khi cài đặt bất kỳ gói nào, bước đầu tiên là cấu hình tường lửa để cho phép kết nối HTTP và HTTPS.

Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo ufw status
Bạn sẽ thấy một cái gì đó tương tự như sau.
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Cho phép các cổng HTTP và HTTPs cho phiên bản Nextcloud thực tế.
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mở cổng 3478 cho Nextcloud Talk. Bạn có thể bỏ qua nếu bạn không sử dụng nó.
Mã:
$ sudo ufw allow 3478
Mở các cổng 8080 và 8443 để cung cấp hỗ trợ HTTP và HTTPS cho giao diện AIO.
Mã:
$ sudo ufw allow 8080/tcp
$ sudo ufw allow 8443/tcp
Kiểm tra lại trạng thái để xác nhận.
Mã:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
8080/tcp ALLOW Anywhere
8443/tcp ALLOW Anywhere
3478 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
8443/tcp (v6) ALLOW Anywhere (v6)
3478 (v6) ALLOW Anywhere (v6)

Bước 2 - Cấu hình Tên máy chủ và Múi giờ​

Trước khi tiến hành, chúng ta cần đặt tên máy chủ phù hợp cho hệ thống.

Mở tệp tên máy chủ để chỉnh sửa.
Mã:
$ sudo nano /etc/hostname
Thay đổi giá trị thành đầy đủ tên miền đủ điều kiện.
Mã:
nextcloud.example.com
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Mở tệp máy chủ để chỉnh sửa.
Mã:
$ sudo nano /etc/hosts
Thêm dòng sau vào sau dòng . Thay thế bất kỳ dòng nào hiện có bằng IP 127.0.1.1 ubuntu-master nếu có bằng nội dung sau.
Mã:
 nextcloud.example.com nextcloud
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Kiểm tra múi giờ hiện tại của máy chủ.
Mã:
$ timedatectl
Local time: Sun 2022-10-09 13:21:01 UTC Universal time: Sun 2022-10-09 13:21:01 UTC RTC time: Sun 2022-10-09 13:21:01 Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no NTP service: n/a RTC in local TZ: no
Bạn có thể xem danh sách các múi giờ khả dụng bằng lệnh sau.
Mã:
$ timedatectl list-timezones
...
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
...
Nếu không khớp với sở thích của bạn, hãy thay đổi bằng lệnh sau.
Mã:
$ sudo timedatectl set-timezone America/Chicago
Khởi động lại máy chủ.
Mã:
$ sudo reboot
Bây giờ bạn có thể đăng nhập vào máy chủ với tư cách sau.
Mã:
$ ssh [emailprotected]

Bước 3 - Cài đặt Docker​

Thêm khóa GPG chính thức của Docker.
Mã:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
Chạy lệnh sau để thêm Docker kho lưu trữ.
Mã:
$ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Cập nhật hệ thống để bao gồm kho lưu trữ của Docker.
Mã:
$ sudo apt update
Cài đặt Docker và Docker compose plugin.
Mã:
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Hướng dẫn này sẽ sử dụng plugin Docker Compose v2 thay vì nhị phân cũ. Do đó, lệnh chạy nó đã thay đổi từ docker-compose thành docker compose và điều này được phản ánh ở đây.

Docker chạy với các đặc quyền nâng cao nên bạn sẽ cần sử dụng sudo thường xuyên để chạy lệnh. Tùy chọn tốt hơn là thêm tài khoản người dùng Linux của bạn vào nhóm người dùng docker.
Mã:
$ sudo usermod -aG docker ${USER}
Biến ${USER} sẽ chọn tài khoản hệ thống hiện đang đăng nhập. Nếu bạn không đăng nhập bằng người dùng mà bạn muốn cấp quyền, hãy thay thế ${USER} bằng tên người dùng.

Để đăng ký thành viên nhóm mới, hãy đăng xuất khỏi máy chủ và đăng nhập lại hoặc sử dụng lệnh sau. Bạn sẽ được nhắc nhập mật khẩu của người dùng.
Mã:
$ su - ${USER}

Bước 4 - Cấu hình tệp Docker Compose​

Tạo thư mục cho tệp Docker compose.
Mã:
$ mkdir ~/nextcloud-aio
Chuyển sang thư mục.
Mã:
$ cd ~/nextcloud-aio
Tạo và mở tệp docker compose để chỉnh sửa.
Mã:
$ nano docker-compose.yml
Dán mã sau vào nó.
Mã:
version: "3.8"
volumes: nextcloud_aio_mastercontainer: name: nextcloud_aio_mastercontainer # This line is not allowed to be changed
services: nextcloud: image: nextcloud/all-in-one:latest # Must be changed to 'nextcloud/all-in-one:latest-arm64' when used with an arm64 CPU restart: always container_name: nextcloud-aio-mastercontainer volumes: - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed - /var/run/docker.sock:/var/run/docker.sock:ro ports: - 80:80 - 8080:8080 - 8443:8443
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Bước 5 - Chạy Nextcloud AIO​

Tạo và khởi chạy Docker container.
Mã:
$ docker compose up -d
Kiểm tra trạng thái của container.
Mã:
$ docker compose ps
Bạn sẽ thấy thông tin sau đầu ra.
Mã:
NAME COMMAND SERVICE STATUS PORTS
nextcloud-aio-mastercontainer "start.sh /usr/bin/s…" nextcloud running (healthy) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp
Bạn cũng có thể sử dụng lệnh docker ps để biết trạng thái chi tiết hơn. Để kiểm tra nhật ký container, hãy sử dụng lệnh docker logs .

Bước 6 - Truy cập Nextcloud AIO​

Mở URL https://nextcloud.example.com:8443và bạn sẽ nhận được màn hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22660%22%20height=%22628%22%3E%3C/svg%3E


Sao chép mật khẩu hiển thị trên màn hình và nhấp vào nút Mở đăng nhập Nextcloud AIO.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22660%22%20height=%22522%22%3E%3C/svg%3E


Nhập mật khẩu và nhấp vào nút Đăng nhập để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22372%22%20height=%22750%22%3E%3C/svg%3E


Nhập tên miền của bạn nextcloud.example.com trong phần New AIO Instance và nhấp vào nút Submit để bắt đầu cài đặt Nextcloud.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22498%22%20height=%22405%22%3E%3C/svg%3E


Bạn sẽ được chuyển đến trang sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22456%22%20height=%22750%22%3E%3C/svg%3E


Tại đây, bạn có thể thay đổi múi giờ máy chủ và khởi chạy phiên bản Nextcloud mới. Chọn tiện ích bổ sung bạn muốn cài đặt và nhấp vào nút Lưu thay đổi để lưu các tùy chọn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22568%22%20height=%22582%22%3E%3C/svg%3E


Nhấp vào Bắt đầu container để khởi chạy Nextcloud và các container tiện ích bổ sung của nó. Quá trình này sẽ tự động tạo chứng chỉ SSL bằng Let's Encrypt cho tên miền bạn đã chọn và chạy container máy chủ Apache để công khai phiên bản Nextcloud.

Quá trình này có thể mất vài phút tùy thuộc vào số lượng tiện ích bổ sung bạn đang cài đặt. Sau một thời gian, bạn có thể thấy tiến trình của các container trên trang.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22351%22%20height=%22548%22%3E%3C/svg%3E


Màu vàng ở phía trước các container có thể có nghĩa là chúng đang khởi động hoặc có thể chúng không khỏe mạnh. Nhấn nút Tải lại để kiểm tra lại. Khi tất cả các container được khởi động thành công, bạn sẽ được cung cấp tên người dùng và mật khẩu cho phiên bản Nextcloud của mình.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22480%22%20height=%22658%22%3E%3C/svg%3E


Nhấp vào nút Mở Nextcloud của bạn để khởi chạy cài đặt Nextcloud của bạn. Bạn cũng có thể truy cập trực tiếp qua URL https://nextcloud.example.com. Bạn sẽ được đưa đến màn hình đăng nhập sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22424%22%20height=%22493%22%3E%3C/svg%3E


Nhập tên người dùng admin và mật khẩu bạn lấy được từ trang trước rồi nhấn Đăng nhập để khởi chạy bảng điều khiển Nextcloud.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22476%22%3E%3C/svg%3E


Từ đây, bạn có thể bắt đầu sử dụng Nextcloud.

Bước 7 - Sao lưu và khôi phục Nextcloud​

Trước khi sao lưu, bạn cần dừng vùng chứa Apache vì nó chặn phiên bản Nextcloud AIO. Bạn sẽ cần thực hiện thao tác này để thực hiện bất kỳ thao tác nào trên giao diện AIO. Chạy lệnh sau để dừng vùng chứa apache.
Mã:
$ docker stop nextcloud-aio-apache
Đăng nhập vào giao diện AIO bằng cách truy cập https://nextcloud.example.com:8443.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22527%22%20height=%22382%22%3E%3C/svg%3E


Nhập thư mục để sao lưu và nhấp vào nút Gửi để tạo bản sao lưu. Bạn sẽ nhận được màn hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22508%22%20height=%22675%22%3E%3C/svg%3E


Nextcloud AIO sẽ tạo bản sao lưu được mã hóa và sẽ cung cấp cho bạn mật khẩu cho bản sao lưu đó. Mật khẩu giống nhau sẽ được sử dụng cho tất cả các bản sao lưu trong thư mục. Mật khẩu sẽ cần thiết để khôi phục phiên bản. Nhấp vào Tạo bản sao lưu để bắt đầu tạo bản sao lưu. Quá trình sẽ yêu cầu xác nhận. Nhấn để bắt đầu quá trình. Thao tác này sẽ dừng tất cả các container đang chạy và khởi động container sao lưu.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22385%22%20height=%22634%22%3E%3C/svg%3E


Nhấp vào nút Tải lại để làm mới trang. Nhấp vào mũi tên nhỏ để hiển thị tất cả các tùy chọn sao lưu và khôi phục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22201%22%20height=%22750%22%3E%3C/svg%3E


Tại đây, bạn có thể khôi phục bản sao lưu hiện có, thêm các thư mục bổ sung để sao lưu và đặt thời gian để tác vụ cron thực hiện sao lưu và cập nhật theo lịch trình.

Khôi phục Nextcloud​

Đối với cài đặt mới, bạn có thể sao lưu bằng bản sao lưu hiện có.

Nếu bản sao lưu được lưu trữ trong thư mục /mnt/backup/borg sau đó chỉ định đường dẫn sao lưu là /mnt/backup. Bản sao lưu thực tế phải luôn nằm trong một thư mục con. Nhập đường dẫn và mật khẩu sao lưu của bạn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22498%22%20height=%22273%22%3E%3C/svg%3E


Nhấp vào nút Gửi để tiến hành khôi phục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22493%22%20height=%22207%22%3E%3C/svg%3E


Nhấp vào nút Kiểm tra đường dẫn và mật khẩu để xác minh đường dẫn sao lưu và mật khẩu trước khi bắt đầu quá trình khôi phục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22529%22%20height=%22476%22%3E%3C/svg%3E


Tại đây, bạn có thể kiểm tra tính toàn vẹn của tệp sao lưu. Chọn bản sao lưu chính xác từ menu thả xuống và nhấp vào tệp Khôi phục bản sao lưu đã chọn để bắt đầu quy trình.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22393%22%20height=%22183%22%3E%3C/svg%3E


Bạn có thể thấy vùng chứa bản sao lưu đang chạy trên trang tiếp theo. Đợi một lúc rồi nhấp vào nút Tải lại để xem quy trình đã hoàn tất chưa. Bạn sẽ nhận được màn hình sau xác nhận việc khôi phục thành công.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22522%22%20height=%22750%22%3E%3C/svg%3E

Chuẩn bị sao lưu để tải lên từ xa​

Trong trường hợp bạn muốn đồng bộ hóa hoặc tải lên bản sao lưu đến một vị trí từ xa, bạn sẽ phải chuẩn bị kho lưu trữ sao lưu.

Cài đặt BorgBackup công cụ.
Mã:
$ sudo apt install borgbackup
Gắn các kho lưu trữ sao lưu vào /tmp/borg thư mục.
Mã:
$ sudo mkdir -p /tmp/borg && sudo borg mount "/mnt/backup/borg" /tmp/borg
Bạn sẽ được nhắc nhập mật khẩu sao lưu.
Mã:
Enter passphrase for key /mnt/backup/borg:
Nhập mật khẩu để gắn tệp lưu trữ. Kiểm tra các kho lưu trữ đã gắn kết trong thư mục.
Mã:
$ sudo ls /tmp/borg -al
total 4
drwxr-xr-x 1 root root 0 Oct 10 19:13 .
drwxrwxrwt 13 root root 4096 Oct 10 19:13 ..
drwxr-xr-x 1 root root 0 Oct 9 23:15 20221010_041554-nextcloud-aio
Bây giờ bạn có thể sao chép hoặc đồng bộ hóa tệp 20221010_041554-nextcloud-aio đến một vị trí từ xa.

Gỡ gắn kết archives.
Mã:
$ sudo umount /tmp/borg
Nếu bạn muốn xóa một kho lưu trữ sao lưu hiện có, bạn có thể thực hiện bằng cách sử dụng lệnh sau.
Mã:
$ sudo borg delete --stats --progress "/mnt/backup/borg::20221010_041554-nextcloud-aio"

Bước 8 - Cập nhật Nextcloud AIO / Nextcloud​

Nextcloud AIO chạy một cronjob để kiểm tra các bản cập nhật cho Nextcloud AIO và tất cả các container còn lại mỗi ngày.

Cập nhật các container Nextcloud​

Giao diện Nextcloud AIO sẽ hiển thị mọi bản cập nhật cho bất kỳ container nào trên trang. Để cập nhật bất kỳ container nào, hãy nhấn nút Dừng container để dừng tất cả các container, sau đó khởi động lại chúng để thực hiện cập nhật.

Đảm bảo sao lưu dữ liệu trước khi khởi động các container.

Cập nhật Nextcloud AIO Mastercontainer​

Nếu AIO Mastercontainer được cập nhật, bạn sẽ nhận được thông báo trên giao diện về bản cập nhật. Nhấp vào nút Cập nhật để thực hiện cập nhật.

Kết luận​

Như vậy là kết thúc hướng dẫn của chúng tôi về cách cài đặt Nextcloud AIO trên máy chủ Ubuntu 22.04. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng vào phần bình luận bên dưới.
 
Back
Bên trên