CryptPad là một chương trình bộ ứng dụng office mã nguồn mở mà bạn có thể tự host trên máy chủ của mình. Nó tương tự như Office 365, cho phép bạn truy cập bộ ứng dụng office ngay từ trình duyệt. Điểm khác biệt chính là CryptPad tập trung vào quyền riêng tư của người dùng, cho phép bạn tạo và chia sẻ tài liệu mà không có nguy cơ rò rỉ bất kỳ thông tin cá nhân nào.
Hướng dẫn này chỉ cách cài đặt CryptPad trên máy chủ của bạn và cách bạn có thể tạo tài khoản người dùng đầu tiên.
Cài đặt CryptPad
Cài đặt các dependency của CryptPad:
sudo gpasswd -a www-data ramces
sudo apt install git nodejs npm nginx certbot python3-certbot-nginx

Sao chép mã nguồn của chương trình từ kho lưu trữ của nó:
git clone https://github.com/xwiki-labs/cryptpad.git cryptpad

Vào bên trong kho lưu trữ và chuyển sang nhánh mới nhất:
cd cryptpad
git checkout -b 5.2.1

Sử dụng npm để cài đặt Bower, trình quản lý gói giúp cài đặt một số thư viện mà CryptPad cần.
sudo npm install -g bower

Cài đặt nhị phân CryptPad bằng cách chạy cả npm và bower bên trong kho lưu trữ.
npm install
bower install

Cấu hình chứng chỉ SSL
Sau khi CryptPad đã có trong máy của bạn, bạn có thể chạy Certbot để tạo chứng chỉ cho phiên bản của mình:
sudo certbot certonly --standalone
Điều này sẽ đưa ra lời nhắc yêu cầu địa chỉ email của bạn.

Tiện ích Certbot sẽ yêu cầu các domain mà bạn muốn liên kết với chứng chỉ của mình. Nhập cả root và subdomain.

Tạo file tham số Diffie-Hellman cho phiên bản của bạn. Đây là biện pháp bảo mật mà các nhà phát triển yêu cầu để đảm bảo rằng phiên bản của bạn an toàn.
sudo openssl dhparam -out /etc/nginx/dhparam.pem 4096
Cấu hình Nginx
Để cấu hình Nginx phục vụ CryptPad cho domain của bạn, bạn có thể sử dụng file cấu hình mẫu do các nhà phát triển cung cấp.
sudo cp /home/$USER/cryptpad/docs/example.nginx.conf /etc/nginx/conf.d/cryptpad.conf

Sửa đổi file cấu hình mới của bạn bằng trình soạn thảo văn bản.
sudo nano /etc/nginx/conf.d/cryptpad.conf
Thay đổi một số biến để file này hoạt động. Đầu tiên, hãy chú thích dòng include letsencrypt-webroot;.

Tiếp theo, hãy sửa đổi cả 2 biến $main_domain và $sandbox_domain. Biến trước phải chứa root domain, trong khi biến sau phải chứa subdomain của bạn.

Ngoài ra, hãy sửa đổi $api_domain và $files_domain. Không giống như các biến trên, bạn chỉ cần thay đổi chúng thành root domain của máy.

Thay đổi biến server_name thành root và subdomain.

Thay đổi ssl_certificate và ssl_certificate_key thành vị trí chứng chỉ SSL của bạn.

Cuối cùng, thay thế giá trị của biến root bằng vị trí kho lưu trữ Cryptpad của bạn.

Cấu hình CryptPad
Sử dụng file cấu hình mẫu do nhà phát triển cung cấp bằng cách chạy:
cp /home/$USER/cryptpad/config/config.example.js /home/$USER/cryptpad/config/config.js
Mở file này bằng trình soạn thảo văn bản và thay đổi biến httpUnsafeOrigin: thành root domain.

Thay đổi biến httpSafeOrigin: thành subdomain.

Thêm dòng code sau ngay sau biến httpSafeOrigin:.
adminEmail: 'working_email@address.here',

Tạo service SystemD
Bạn cũng có thể liên kết CryptPad với một service SystemD để cho phép bạn khởi chạy nó trong khi hệ thống khởi động bằng cách chạy lệnh sau:
nano /home/$USER/cryptpad/docs/cryptpad.service
Block code bên dưới là phiên bản mà tác giả đã sửa đổi để hoạt động với máy của mình.
[Unit]
Description=Cryptpad Service
# Replace the username values with your own username.
[Service]
ExecStart=/bin/node /home/ramces/cryptpad/server.js
WorkingDirectory=/home/ramces/cryptpad
Restart=always
RestartSec=2
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=ramces
User=ramces
Group=ramces
Environment='PWD="/home/ramces/cryptpad"'
LimitNOFILE=1000000
[Install]
WantedBy=multi-user.target

Lưu và thoát file này, sau đó sao chép vào thư mục service Systemd:
sudo cp /home/$USER/cryptpad/docs/cryptpad.service /etc/systemd/system/cryptpad.service
Load lại Systemd để kích hoạt file service của bạn:
sudo systemctl daemon-reload
sudo systemctl enable cryptpad
sudo systemctl start cryptpad
sudo systemctl reload nginx
Chạy CryptPad
Nếu mọi thứ được thực hiện đúng, bạn sẽ có thể truy cập CryptPad thông qua root domain của mình.

Tạo tài khoản admin trong CryptPad
Mặc dù bạn có thể sử dụng CryptPad mà không cần tài khoản, nhưng bạn nên tạo admin để có thể quản lý phiên bản của mình thông qua giao diện web.
Nhấn Sign Up trên trang chủ của CryptPad.

Nhập tên người dùng và mật khẩu để tạo tài khoản mới.

Sau khi đăng nhập, hãy nhấp vào nút User Menu ở góc trên bên phải của trang.

Nhấp vào Settings.

Sao chép nội dung của hộp văn bản Public Signing Key.

Quay lại thư mục kho lưu trữ và mở file cấu hình:
nano /home/$USER/cryptpad/config/config.js
Tìm biến adminKeys: và dán khóa ký của bạn vào giữa các dấu ngoặc vuông:

Load lại phiên bản CryptPad thông qua SystemD:
sudo systemctl restart cryptpad
