Cách cài đặt CryptPad Collaborative Office Suite trên Ubuntu 22.04

theanh

Administrator
Nhân viên
Cryptpad là một bộ ứng dụng văn phòng cộng tác mã nguồn mở, là một giải pháp thay thế cho Office 365. Nó cho phép bạn truy cập các ứng dụng văn phòng thông qua trình duyệt web. Sự khác biệt giữa Cryptpad và Office 365 là Cryptpad được mã hóa đầu cuối, nghĩa là bạn có thể tạo và chia sẻ tài liệu với người khác mà không có nguy cơ rò rỉ thông tin cá nhân. Các ứng dụng được cung cấp với Cryptpad bao gồm Rich Text, Spreadsheets, Code/Markdown, Kanban, Slides, Whiteboards và Forms.

Trong hướng dẫn này, bạn sẽ học cách cài đặt bộ Cryptpad trên máy chủ Ubuntu 22.04.

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


  • Một máy chủ chạy Ubuntu 22.04 với tối thiểu 2GB RAM và 2 lõi CPU.

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

  • Hai tên miền đủ điều kiện (FQDN) như example.comdocs.example.com.

  • Đảm bảo mọi thứ được cập nhật.
Mã:
$ sudo apt update
$ sudo apt upgrade
[*]
Một số gói mà hệ thống của bạn nhu cầu.
Mã:
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.

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

Bước đầu tiên là cấu hình tường lửa. Ubuntu đi kèm với ufw (Uncomplicated Firewall) theo mặc định.

Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Bạn sẽ nhận được kết quả sau.
Mã:
Status: inactive
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Mã:
$ sudo ufw allow OpenSSH
Cho phép cả cổng HTTP và HTTPS.
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Kích hoạt Tường lửa
Mã:
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Kiểm tra lại trạng thái của tường lửa.
Mã:
$ sudo ufw status
Bạn sẽ thấy kết quả tương tự.
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)

Bước 2 - Cài đặt Git​

Git thường được cài đặt sẵn với Ubuntu 22.04 nhưng trong trường hợp chưa cài đặt, hãy chạy lệnh sau để cài đặt nó.
Mã:
$ sudo apt install git -y
Kiểm tra phiên bản Git.
Mã:
$ git --version
git version 2.34.1
Chạy các lệnh sau để cấu hình Git để thêm tên và địa chỉ email của bạn vào nó.
Mã:
git config --global user.name "Your Name"
git config --global user.email "[emailprotected]"

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

Chúng ta sẽ sử dụng Trình quản lý phiên bản Node (NVM) để cài đặt Nodejs. Cài đặt tập lệnh NVM bằng lệnh sau.
Mã:
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
Bạn có thể tải phiên bản NVM mới nhất từ kho lưu trữ GitHub của nó.

Để sử dụng nó, bạn cần lấy nguồn .bashrc tập tin.
Mã:
$ source ~/.bashrc
Kiểm tra danh sách các phiên bản Node có sẵn.
Mã:
$ nvm list-remote
Bạn sẽ nhận được một đầu ra.
Mã:
..... v18.9.0 v18.9.1 v18.10.0 v18.11.0 v18.12.0 (LTS: Hydrogen) v18.12.1 (LTS: Hydrogen) v18.13.0 (LTS: Hydrogen) v18.14.0 (LTS: Hydrogen)
-> v18.14.1 (Latest LTS: Hydrogen) v19.0.0 v19.0.1 v19.1.0 v19.2.0 v19.3.0 v19.4.0 v19.5.0 v19.6.0 v19.6.1
Cài đặt phiên bản LTS mới nhất (v18.x hoặc) của Node tại thời điểm viết hướng dẫn này.
Mã:
$ nvm install lts/hydrogen
Xác minh cài đặt.
Mã:
$ node -v
v18.14.1

Bước 4 - Cài đặt Bower​

Bower là trình quản lý gói cho các thành phần giao diện người dùng được Cryptpad sử dụng. Cài đặt bằng lệnh sau.
Mã:
$ npm install -g bower

Bước 5 - Cài đặt Cryptpad​

Sao chép kho lưu trữ GitHub Cryptpad.
Mã:
$ git clone https://github.com/xwiki-labs/cryptpad.git cryptpad
Chuyển sang thư mục.
Mã:
$ cd cryptpad
Chuyển kho lưu trữ sang phiên bản mới nhất.
Mã:
$ git checkout $(git tag -l | grep -v 'v1.*$' | sort -V | tail -n 1)
Cài đặt Cryptpad bằng các lệnh sau.
Mã:
$ npm install
$ bower install
Xây dựng các trang tĩnh Cryptpad và bật chế độ xem trước liên kết mạng xã hội bằng lệnh sau.
Mã:
$ npm run build

Bước 6 - Cấu hình Cryptpad​

Tạo tệp cấu hình bằng ví dụ được cung cấp tập tin.
Mã:
$ cp /home/$USER/cryptpad/config/config.example.js /home/$USER/cryptpad/config/config.js
Mở tệp cấu hình để chỉnh sửa.
Mã:
$ nano ~/cryptpad/config/config.js
Tìm dòng httpUnsafeOrigin: 'http://localhost:3000', và thay đổi giá trị của nó thành miền chính của bạn.
Mã:
httpUnsafeOrigin: 'https://example.com',
Tìm dòng // httpSafeOrigin: "https://some-other-domain.xyz", và bỏ chú thích bằng cách xóa dấu gạch chéo ở phía trước và thay đổi giá trị của nó thành tên miền phụ của bạn.
Mã:
httpSafeOrigin: "https://docs.example.com",
Thêm dòng sau ngay bên dưới biến httpSafeOrigin.
Mã:
httpSafeOrigin: "https://docs.example.com", adminEmail: "[emailprotected]",
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Để cấu hình thêm, hãy tạo một bản sao của ~/cryptpad/customize.dist/application_config.js trong ~/cryptpad/customize thư mục.
Mã:
$ cp ~/cryptpad/customize.dist/application_config.js ~/cryptpad/customize
Mở tệp ~/cryptpad/customize/application_config.js để chỉnh sửa.
Mã:
$ nano ~/cryptpad/customize/application_config.js
Đảm bảo thêm tất cả các cấu hình trước dòng return AppConfig;.

Để vô hiệu hóa việc sử dụng Cryptpad chưa đăng ký, hãy thêm lệnh sau dòng.
Mã:
AppConfig.registeredOnlyTypes = AppConfig.availablePadTypes;
Thêm liên kết đến các trang Chính sách bảo mật, Điều khoản dịch vụ và Dấu ấn.
Mã:
// Privacy Policy
AppConfig.privacy = 'https://example.com/privacy-policy/';
// Terms of Service
AppConfig.terms = 'https://example.com/terms-of-service/';
// Imprint / Legal Notice
AppConfig.imprint = 'https://example.com/imprint/';
Thêm muối mật khẩu để bảo mật Cryptpad.
Mã:
AppConfig.loginSalt = 'ggkljerthhkletho0the90hoserhtgse90rh4ohzisdofh90-43kbdf9009io';
Để tăng độ dài tối thiểu của mật khẩu, hãy thêm dòng sau.
Mã:
AppConfig.minimumPasswordLength = 10;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất. Trước khi khởi động Cryptpad, trước tiên chúng ta cần cài đặt Nginx, tạo chứng chỉ SSL và cấu hình máy chủ Nginx để chuẩn bị cho miền Cryptpad truy cập.

Bước 7 - Cài đặt Nginx​

Ubuntu 22.04 được tích hợp phiên bản Nginx cũ hơn. Để cài đặt phiên bản mới nhất, bạn cần tải xuống kho lưu trữ Nginx chính thức.

Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \	| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Cập nhật hệ thống kho lưu trữ.
Mã:
$ sudo apt update
Cài đặt Nginx.
Mã:
$ sudo apt install nginx
Xác minh cài đặt.
Mã:
$ nginx -v
nginx version: nginx/1.22.1
Khởi động máy chủ Nginx.
Mã:
$ sudo systemctl start nginx

Bước 8 - Cài đặt SSL​

Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Ubuntu hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng tôi sẽ sử dụng phiên bản Snapd.

Ubuntu 22.04 đi kèm với Snapd được cài đặt theo mặc định. Chạy các lệnh sau để đảm bảo phiên bản Snapd của bạn được cập nhật. Đảm bảo rằng phiên bản Snapd của bạn được cập nhật.
Mã:
$ sudo snap install core
$ sudo snap refresh core
Cài đặt Certbot.
Mã:
$ sudo snap install --classic certbot
Sử dụng lệnh sau để đảm bảo rằng lệnh Certbot chạy bằng cách tạo liên kết tượng trưng đến /usr/bin thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Chạy lệnh sau để tạo Chứng chỉ SSL.
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d example.com -d docs.example.com
Lệnh trên sẽ tải xuống chứng chỉ vào thư mục /etc/letsencrypt/live/example.com trên máy chủ của bạn cho các miền example.comdocs.example.com.

Tạo nhóm Diffie-Hellman chứng chỉ.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Để kiểm tra xem quá trình gia hạn SSL có hoạt động tốt không, hãy chạy thử quy trình.
Mã:
$ sudo certbot renew --dry-run
Nếu không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.

Bước 9 - Cấu hình Nginx​

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau vào trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Tạo và mở tệp /etc/nginx/conf.d/cryptpad.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/cryptpad.conf
Dán mã sau vào đó.

Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Xác minh cú pháp tệp cấu hình Nginx.
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Khởi động lại dịch vụ Nginx.
Mã:
$ sudo systemctl restart nginx

Bước 10 - Tạo Dịch vụ Cryptpad Systemd​

Mở tệp ~/cryptpad/docs/cryptpad.service để chỉnh sửa.
Mã:
$ nano ~/cryptpad/docs/cryptpad.service
Sửa đổi mã trong đó để giống như sau. Đảm bảo đường dẫn chính xác cho tệp nhị phân Node và thay thế username bằng tên người dùng Linux hiện đang đăng nhập của bạn.
Mã:
[Unit]
Description=CryptPad API server
[Service]
ExecStart=/home/username/.nvm/versions/node/v18.14.1/bin/node /home/username/cryptpad/server.js
# modify to match the location of your cryptpad repository
WorkingDirectory=/home/username/cryptpad
Restart=always
# Restart service after 10 seconds if node service crashes
RestartSec=2
# Output to syslog
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cryptpad
User=username
Group=username
# modify to match your working directory
Environment='PWD="/home/username/cryptpad"'
# systemd sets the open file limit to 4000 unless you override it
# cryptpad stores its data with the filesystem, so you should increase this to match the value of `ulimit -n`
# or risk EMFILE errors.
LimitNOFILE=1000000
[Install]
WantedBy=multi-user.target
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Sao chép tệp vào Systemd thư mục.
Mã:
sudo cp ~/cryptpad/docs/cryptpad.service /etc/systemd/system/cryptpad.service
Tải lại daemon dịch vụ.
Mã:
$ sudo systemctl daemon-reload
Kích hoạt và khởi động Cryptpad dịch vụ.
Mã:
$ sudo systemctl enable cryptpad --now
Kiểm tra trạng thái của dịch vụ.
Mã:
$ suddo systemctl status cryptpad
Bạn sẽ nhận được thông báo sau đầu ra.
Mã:
? cryptpad.service - CryptPad API server Loaded: loaded (/etc/systemd/system/cryptpad.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2023-02-21 08:43:50 UTC; 1h 52min ago Main PID: 8145 (node) Tasks: 33 (limit: 2237) Memory: 53.4M CPU: 2.323s CGroup: /system.slice/cryptpad.service ??8145 /home/navjot/.nvm/versions/node/v18.14.1/bin/node /home/navjot/cryptpad/server.js ??8158 /home/navjot/.nvm/versions/node/v18.14.1/bin/node lib/workers/db-worker ??8159 /home/navjot/.nvm/versions/node/v18.14.1/bin/node lib/workers/db-worker
Feb 21 08:43:50 nspeaks systemd[1]: Started CryptPad API server.
Feb 21 08:43:50 nspeaks cryptpad[8145]: Serving content for https://example.com/ via http://127.0.0.1:3000.

Bước 11 - Truy cập và Cấu hình Cryptpad​

Mở URL https://example.com trong trình duyệt của bạn và 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=%22750%22%20height=%22572%22%3E%3C/svg%3E


Nhấp vào nút Đăng ký để tạo tài khoản. Nhập thông tin đăng nhập của bạn và nhấp vào nút Đăng ký để tạo tài khoản.


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


Bạn sẽ nhận được cửa sổ xác nhận bật lên sau. Nhấp vào nút màu đỏ để hoàn tất việc tạo tài khoản.


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


Bạn sẽ được đăng nhập và được đưa đến bảng điều khiển CryptDrive.


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


Nhấp vào menu Người dùng ở góc trên bên phải và nhấp vào Tùy chọn Cài đặt.


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


Bạn sẽ nhận được trang cài đặt sau.


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


Sao chép giá trị của Khóa ký công khai và quay lại terminal và mở tệp cấu hình.
Mã:
$ nano ~/cryptpad/config/config.js
Tìm biến adminKeys và dán khóa vào giữa dấu ngoặc vuông như hiển thị bên dưới.
Mã:
adminKeys: ["[[emailprotected]/ygDc+0uabbCk6WqJYiIDO2B+gP6mYZ9FlQ94zL3UAoU=]"],
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Khởi động lại dịch vụ Cryptpad.
Mã:
$ sudo systemctl restart cryptpad
Bộ ứng dụng văn phòng Cryptpad của bạn đã sẵn sàng để sử dụng.

Bước 12 - Cập nhật Cryptpad​

Cập nhật Cryptpad dễ hơn nhiều và bao gồm việc tải các bản cập nhật mới nhất từ kho lưu trữ GitHub rồi chạy các lệnh cập nhật Node.

Bước đầu tiên là dừng dịch vụ Cryptpad.
Mã:
$ sudo systemctl stop cryptpad
Chạy các lệnh sau để cập nhật Cryptpad.
Mã:
$ cd ~/cryptpad
$ git pull
$ git checkout $(git tag -l | grep -v 'v1.*$' | sort -V | tail -n 1)
$ npm update
$ bower update
Khởi động dịch vụ Cryptpad.
Mã:
$ sudo systemctl start cryptpad

Kết luận​

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