Cách cài đặt máy chủ EteSync trên Ubuntu 20.04

theanh

Administrator
Nhân viên
EteSync là giải pháp mã nguồn mở để đồng bộ danh bạ, lịch và tác vụ của bạn. Giải pháp này tự lưu trữ, cung cấp mã hóa đầu cuối và cho phép bạn chia sẻ dữ liệu với người dùng khác. Giải pháp này có thể tích hợp với máy tính để bàn GNOME và KDE. Có thể truy cập thông qua máy khách trên máy tính để bàn, web, Android và iOS.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt EteSync với Apache trên Ubuntu 20.04.

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

  • Máy chủ chạy Ubuntu 20.04.
  • Tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Bắt đầu​

Trước tiên, hãy cập nhật các gói hệ thống lên phiên bản đã cập nhật bằng cách chạy lệnh sau:
Mã:
apt-get update -y
Sau khi tất cả các gói được cập nhật, bạn có thể tiến hành bước tiếp theo.

Cài đặt Máy chủ MariaDB​

Theo mặc định, EteSync sử dụng cơ sở dữ liệu SQLite để lưu trữ thông tin của nó. Ở đây, chúng ta sẽ cài đặt và sử dụng MariaDB làm cơ sở dữ liệu phụ trợ.

Trước tiên, cài đặt các phụ thuộc cần thiết bằng lệnh sau:
Mã:
apt-get install software-properties-common gnupg2 -y
Tiếp theo, thêm khóa GPG MariaDB và kho lưu trữ bằng lệnh sau:
Mã:
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.5/ubuntu focal main'
Tiếp theo, hãy cập nhật kho lưu trữ MariaDB và cài đặt phiên bản MariaDB mới nhất bằng lệnh sau:
Mã:
apt-get install mariadb-server -y
Sau khi cài đặt máy chủ MariaDB, hãy đăng nhập vào shell MariaDB bằng lệnh sau:
Mã:
mysql
Sau khi đăng nhập, hãy tạo cơ sở dữ liệu và người dùng cho EteSync bằng lệnh sau:
Mã:
MariaDB [(none)]> create database etesync;
MariaDB [(none)]> tạo người dùng etesync@localhost được xác định bởi 'securepassword';
Tiếp theo, cấp tất cả các quyền cho cơ sở dữ liệu EteSync bằng lệnh sau:
Mã:
MariaDB [(none)]> cấp tất cả các quyền trên etesync.* cho etesync@localhost;
Tiếp theo, xóa các quyền và thoát khỏi MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> xóa các quyền;
MariaDB [(none)]> thoát;
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt và cấu hình EteSync​

Đầu tiên, bạn sẽ cần cài đặt một số phụ thuộc Python cần thiết cho EteSync. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Mã:
apt-get install python3-virtualenv python3-pip gcc libmysqlclient-dev build-essential git -y
Sau khi cài đặt tất cả các phần phụ thuộc, hãy tải xuống phiên bản mới nhất của EteSync bằng lệnh sau:
Mã:
git clone https://github.com/etesync/server.git etesync
Sau khi tải xuống hoàn tất, hãy thay đổi thư mục thành etesync và tạo môi trường ảo Python bằng lệnh sau:
Mã:
cd etesync
virtualenv -p python3 .venv
Tiếp theo, kích hoạt môi trường ảo bằng lệnh sau:
Mã:
source .venv/bin/activate
Tiếp theo, cài đặt tất cả các yêu cầu bằng lệnh sau:
Mã:
pip install -r requirements.txt
Tiếp theo, sao chép tệp cấu hình mẫu:
Mã:
cp etebase-server.ini.example etebase-server.ini
Tiếp theo, chỉnh sửa tệp cấu hình bằng lệnh bên dưới:
Mã:
nano etebase-server.ini
Thêm hoặc sửa đổi các dòng sau theo cấu hình của bạn:
Mã:
media_root = /optallowed_host1 = etesync.example.com;engine = django.db.backends.sqlite3;name = db.sqlite3engine = django.db.backends.mysqlname = etesyncuser = etesyncpassword = securepasswordhost = 127.0.0.1port = 3306
Lưu và đóng tệp sau đó cài đặt các mô-đun khác bằng lệnh sau:
Mã:
pip3 install daphne
pip3 install mysqlclient
pip3 install aioredis
Tiếp theo, tạo các tệp tĩnh và di chuyển cơ sở dữ liệu bằng lệnh sau:
Mã:
./manage.py collectstatic
./manage.py migrate
Cuối cùng, khởi động máy chủ EteSync bằng lệnh sau:
Mã:
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
Nếu mọi thứ ổn, bạn sẽ nhận được kết quả đầu ra sau:
Mã:
2021-07-09 05:42:28,510 THÔNG TIN Khởi động máy chủ tại tcp:port=8001:interface=0.0.0.02021-07-09 05:42:28,510 THÔNG TIN Hỗ trợ HTTP/2 không được bật (cài đặt http2 và tls Twisted extras)2021-07-09 05:42:28,511 THÔNG TIN Cấu hình điểm cuối tcp:port=8001:interface=0.0.0.02021-07-09 05:42:28,512 THÔNG TIN Đang lắng nghe trên địa chỉ TCP 0.0.0.0:8001
Nhấn CTRL + C để dừng máy chủ.

Tiếp theo, tạo người dùng quản trị bằng lệnh sau:
Mã:
./manage.py createsuperuser
Cung cấp tên người dùng, mật khẩu và email của bạn như hiển thị bên dưới:
Mã:
Tên người dùng: etesyncĐịa chỉ email: [emailprotected]Mật khẩu:Mật khẩu (lặp lại):Siêu người dùng đã được tạo thành công.
Tiếp theo, hủy kích hoạt khỏi môi trường ảo Python bằng lệnh sau:
Mã:
hủy kích hoạt

Tạo tệp đơn vị Systemd cho EteSync​

Tiếp theo, bạn sẽ cần tạo tệp đơn vị systemd để quản lý EteSync. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/systemd/system/etesync.service
Thêm các dòng sau:
Mã:
[Unit]Mô tả=EteSync: Mã hóa đầu cuối để đồng bộ hóa Lịch, Danh bạ, Nhiệm vụ và Ghi chú.[Dịch vụ]WorkingDirectory=/root/etesyncExecStart=/root/etesync/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_server.asgi:applicationUser=rootGroup=rootRestart=alwaysRestartSec=5s[Cài đặt]WantedBy=multi-user.target
Lưu và đóng tệp, sau đó tải lại daemon systemd để áp dụng các thay đổi cấu hình:
Mã:
systemctl daemon-reload
Tiếp theo, khởi động và bật dịch vụ EteSync bằng lệnh sau:
Mã:
systemctl start etesync
systemctl enable etesync
Để xác minh trạng thái của dịch vụ EteSync, hãy chạy lệnh sau:
Mã:
systemctl status etesync
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? etesync.service - EteSync: Mã hóa đầu cuối để đồng bộ hóa Lịch, Danh bạ, Nhiệm vụ và Ghi chú. Đã tải: đã tải (/etc/systemd/system/etesync.service; đã tắt; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ sáu 2021-07-09 05:45:45 UTC; 5 giây trước PID chính: 16213 (daphne) Nhiệm vụ: 1 (giới hạn: 2353) Bộ nhớ: 48,7M CGroup: /system.slice/etesync.service ??16213 /root/etesync/.venv/bin/python /root/etesync/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_se>09/07 05:45:45 node1 systemd[1]: Đã bắt đầu EteSync: Mã hóa đầu cuối để đồng bộ hóa Lịch, Danh bạ, Nhiệm vụ và Ghi chú..09/07 05:45:46 node1 daphne[16213]: 09/07/2021 05:45:46,993 THÔNG TIN Đang khởi động máy chủ tại tcp:port=8001:interface=127.0.0.1, unix:/tmp/etebase_>09/07 05:45:46 node1 daphne[16213]: 09/07/2021 05:45:46,995 THÔNG TIN Hỗ trợ HTTP/2 không được bật (cài đặt http2 và tls Twisted extras)09/07 05:45:46 node1 daphne[16213]: 09/07/2021 05:45:46,995 THÔNG TIN Cấu hình điểm cuối tcp:port=8001:interface=127.0.0.109/07 05:45:46 node1 daphne[16213]: 09/07/2021 05:45:46,997 THÔNG TIN Đang lắng nghe trên địa chỉ TCP 127.0.0.1:800109/07 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,998 THÔNG TIN Cấu hình điểm cuối unix:/tmp/etebase_server.sock
Tại thời điểm này, EteSync đã được khởi động và lắng nghe trên cổng 8001. Bây giờ bạn có thể tiến hành bước tiếp theo.

Cấu hình Apache làm Proxy ngược​

Bạn cũng nên cài đặt và sử dụng Apache làm proxy ngược để truy cập EteSync. Trước tiên, hãy cài đặt máy chủ Apache bằng lệnh sau:
Mã:
apt-get install apache2 -y
Sau khi cài đặt máy chủ Apache, hãy bật tất cả các mô-đun proxy bằng lệnh sau:
Mã:
a2enmod proxy proxy_http headers proxy_wstunnel
Tiếp theo, hãy tạo tệp cấu hình máy chủ ảo Apache mới:
Mã:
nano /etc/apache2/sites-available/etesync.conf
Thêm các dòng sau:
Mã:
 ServerName etesync.example.com ErrorDocument 404 /404.html ErrorLog ${APACHE_LOG_DIR}/etebase_error.log CustomLog ${APACHE_LOG_DIR}/etebase_access.log combined ProxyPreserveHost On ProxyPass / http://127.0.0.1:8001/ ProxyPassReverse / http://127.0.0.1:8001/ Alias /static /etesync/static
Lưu và đóng tệp sau đó kích hoạt máy chủ ảo Apache bằng lệnh sau:
Mã:
a2ensite etesync.conf
Tiếp theo, khởi động lại Apache để cập nhật các thay đổi:
Mã:
systemctl restart apache2
Bây giờ bạn có thể xác minh trạng thái Apache bằng lệnh sau:
Mã:
systemctl status apache2
Bạn sẽ nhận được kết quả sau:
Mã:
? apache2.service - Máy chủ HTTP Apache Đã tải: đã tải (/lib/systemd/system/apache2.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ sáu 2021-07-09 05:50:26 UTC; 5 giây trước Tài liệu: https://httpd.apache.org/docs/2.4/ Tiến trình: 17551 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) PID chính: 17567 (apache2) Nhiệm vụ: 55 (giới hạn: 2353) Bộ nhớ: 5,3M CGroup: /system.slice/apache2.service ??17567 /usr/sbin/apache2 -k start ??17568 /usr/sbin/apache2 -k start ??17569 /usr/sbin/apache2 -k start09/07 05:50:26 node1 systemd[1]: Đang khởi động Máy chủ HTTP Apache...09/07 05:50:26 node1 apachectl[17558]: AH00558: apache2: Không thể xác định chính xác máy chủ đủ điều kiện tên miền, sử dụng 45.58.3>

Truy cập Bảng điều khiển quản trị EteSync​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập giao diện quản trị EteSync bằng URL . Bạn sẽ được chuyển hướng đến trang sau:



Cung cấp tên người dùng quản trị, mật khẩu và nhấp vào nút Đăng nhập. Bạn sẽ thấy trang sau:


EteSync an toàn với Let's Encrypt SSL​

Trước tiên, bạn sẽ cần cài đặt ứng dụng khách Certbot Let's Encrypt để tải xuống và cài đặt chứng chỉ SSL cho tên miền của mình.

Bạn có thể cài đặt bằng lệnh sau:
Mã:
apt-get install python3-certbot-apache -y
Sau khi cài đặt, bạn có thể chạy lệnh sau để cài đặt Chứng chỉ Let's Encrypt cho tên miền etesync.example.com của mình.
Mã:
certbot --apache -d etesync.example.com
Trong quá trình cài đặt, bạn sẽ được yêu cầu cung cấp địa chỉ email và chấp nhận điều khoản dịch vụ như hiển thị bên dưới:
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator apache, Trình cài đặt apacheNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có sẵn lòng chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuận phát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)o: CNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho etesync.example.comĐã bật mô-đun ghi đè ApacheĐang chờ xác minh...Dọn dẹp các thử tháchĐã tạo một vhost SSL tại /etc/apache2/sites-available/etesync-le-ssl.confTriển khai chứng chỉ tới VirtualHost /etc/apache2/sites-available/etesync-le-ssl.confBật trang web khả dụng: /etc/apache2/sites-available/etesync-le-ssl.confVui lòng chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không, xóa quyền truy cập HTTP.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Không chuyển hướng - Không thực hiện thêm bất kỳ thay đổi nào đối với cấu hình máy chủ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn tùy chọn này chocác trang web mới hoặc nếu bạn tin tưởng rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tácthay đổi này bằng cách chỉnh sửa cấu hình máy chủ web của mình.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] rồi [enter] (nhấn 'c' để hủy): 2
Tiếp theo, nhập 2 và nhấn Enter để tải xuống và cài đặt chứng chỉ SSL miễn phí cho tên miền của bạn. Sau khi quá trình cài đặt hoàn tất thành công. Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
Đã bật mô-đun viết lại ApacheĐang chuyển hướng vhost trong /etc/apache2/sites-enabled/etesync.conf đến vhost ssl trong /etc/apache2/sites-available/etesync-le-ssl.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://etesync.example.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=etesync.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Kết luận​

Xin chúc mừng! bạn đã cài đặt thành công EteSync trên máy chủ Ubuntu 20.04 với Let's Encrypt SSL. Bây giờ bạn có thể đồng bộ hóa lịch và danh bạ của mình dễ dàng với EteSync.
 
Back
Bên trên