Seafile là phần mềm lưu trữ tệp miễn phí có chức năng giống Dropbox hoặc Google Drive, có thể cài đặt trên máy chủ của riêng bạn. Seafile được phát hành theo giấy phép OpenSource. Bạn có thể xây dựng máy chủ chia sẻ và đồng bộ tệp an toàn của riêng mình bằng seafile, đây là phần mềm chia sẻ tệp đáng tin cậy cho phép người dùng mã hóa dữ liệu của họ trên máy chủ. Seafile được viết bằng C và python.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách xây dựng máy chủ chia sẻ và đồng bộ tệp của riêng bạn bằng seafile trên openSUSE Leap 42.1. Chúng tôi sẽ hướng dẫn bạn cài đặt seafile và sau đó cấu hình GUI web với mã hóa https đằng sau máy chủ proxy ngược anginx.
Điều kiện tiên quyết
sau khi bạn đăng nhập vào máy chủ, hãy chỉnh sửa tệp hosts bằng vim:
Dán cấu hình (thay thế IP và tên máy chủ bằng các giá trị của riêng bạn):
Lưu và thoát.
Lưu ý:
192.168.1.101 = địa chỉ IP máy chủ của tôi.
Cloud = tên máy chủ của tôi.
kuonseafile.co = tên miền của tôi.
Xác minh tên máy chủ và FQDN (Tên miền đủ điều kiện):
Cài đặt tất cả các gói bao gồm máy chủ MySQL/MariaDB bằng lệnh zypper bên dưới:
Khi quá trình cài đặt hoàn tất, hãy chuyển sang bước tiếp theo.
Đặt mật khẩu mới cho người dùng root mysql bằng lệnh mysqladmin:
Tiếp theo, đăng nhập vào shell MySQL và tạo 3 cơ sở dữ liệu cho seafile và một người dùng mới cho 3 cơ sở dữ liệu đó.
Đăng nhập vào shell MySQL:
NHẬP MẬT KHẨU "aqwe123"
Tạo ba cơ sở dữ liệu để cài đặt file này - ccnet_db, seafile_db và seahub_db:
Và tạo một người dùng mới seafilecloud với mật khẩu 'seafilecloud@':
Bây giờ cấp quyền truy cập cho người dùng seafilecloud vào tất cả các cơ sở dữ liệu:
Tất cả các cơ sở dữ liệu đã sẵn sàng cho seafile cài đặt.
Tạo người dùng mới
Tạo một người dùng mới có tên là seafile để cài đặt:
Lưu ý:
-m = Tạo thư mục home mới cho người dùng trong "/home/".
-s /bin/bash = Xác định shell cho người dùng.
Tải xuống Seafile
Chuyển sang người dùng seafile bằng lệnh su bên dưới:
Bây giờ bạn đang ở trong thư mục home của seafile, hãy tải xuống seafile server 5 bằng lệnh wget:
Giải nén tệp lưu trữ seafile và đổi tên:
Cài đặt Seafile 5
Vào thư mục seafile-server và chạy tệp thiết lập để cài đặt seafile:
Chúng ta sẽ cài đặt seafile với cơ sở dữ liệu MySQL, vì vậy hãy chạy tệp thiết lập MySQL:
Bây giờ bạn sẽ được yêu cầu cung cấp thông tin chi tiết về máy chủ.
tên máy chủ = sử dụng tên máy chủ lưu trữ của máy chủ.
Địa chỉ IP hoặc Tên miền của máy chủ = sử dụng địa chỉ IP máy chủ của tôi.
Thư mục dữ liệu Seafile = chỉ cần nhấn Enter.
Cổng cho seafile máy chủ tệp = chỉ cần nhấn Enter.
Tiếp theo, cấu hình cơ sở dữ liệu. Chúng tôi đã tạo cơ sở dữ liệu riêng cho quá trình cài đặt, vì vậy hãy chọn số "2".
Bây giờ bạn sẽ được hỏi về cấu hình cơ sở dữ liệu:
Máy chủ của mysql = Mặc định là localhost.
Cổng mặc định = 3306.
Người dùng MySQL cho seafile = Sử dụng người dùng chúng tôi đã tạo ở bước 3 - "seafilecloud".
Mật khẩu MySQL = mật khẩu cho người dùng seafilecloud.
Cơ sở dữ liệu ccnet = Chúng tôi đã tạo cơ sở dữ liệu - ccnet_db.
Cơ sở dữ liệu seafile = seafile_db.
Cơ sở dữ liệu seahub = seahub_db.
Nếu không xảy ra lỗi, bạn có thể xác nhận quá trình cài đặt bằng cách nhấn "Enter".
chờ tập lệnh tạo cấu hình và cơ sở dữ liệu.
Khởi động Seafile và Seahub
Seafile đã được cài đặt, bây giờ bạn có thể khởi động nó bằng lệnh bên dưới:
Bạn sẽ được yêu cầu tạo một người dùng quản trị cho seafile, chỉ cần nhập email và mật khẩu quản trị của bạn.
Ở giai đoạn này, bạn có thể truy cập vào GUI web seafile trên cổng 8000.
Cài đặt Nginx
Cài đặt máy chủ web ginx bằng lệnh zypper:
Tạo chứng chỉ SSL
Tiếp theo, hãy vào thư mục nginx và tạo một thư mục mới cho chứng chỉ SSL. Sau đó tạo tệp chứng chỉ bằng lệnh OpenSSL:
Bây giờ hãy tạo tệp chứng chỉ:
Cấu hình Máy chủ ảo
Trong thư mục nginx, hãy tạo một thư mục mới có tên là "vhosts.d" để lưu trữ tệp máy chủ ảo. Tạo thư mục đó rồi tạo một tệp máy chủ ảo mới bằng vim:
Dán cấu hình máy chủ ảo bên dưới:
Thay thế server_name bằng tên miền của riêng bạn - dòng 3 và 11.
Đối với dòng 47 của vị trí phương tiện, hãy thay thế thành đường dẫn cài đặt seafile - '/home/seafile/seafile-server/seahub'.
Lưu tệp và thoát khỏi trình chỉnh sửa, sau đó kiểm tra cấu hình bằng lệnh:
đảm bảo không có vấn đề hoặc lỗi nào trong cấu hình.
Cấu hình Seafile để sử dụng tên miền và HTTPS của riêng bạn
Chuyển sang seafile người dùng và chỉnh sửa cấu hình. Trước khi chỉnh sửa cấu hình, hãy tắt dịch vụ seafile và seahub.
Quay lại thư mục home của người dùng seafile, sau đó vào thư mục conf và chỉnh sửa các tệp ccnet.conf và seahub_settings.py.
Chỉnh sửa tệp ccnet.conf:
Ở dòng 5: 'SERVICE_URL' - thay thế tên miền bằng tên miền của riêng bạn bằng https.
Lưu và thoát.
Bây giờ hãy chỉnh sửa seahub_settings.py
Thêm dòng mới bên dưới để xác định gốc máy chủ tệp.
Lưu và thoát.
Yêu cầu Nginx và MySQL khởi động khi khởi động:
Khởi động lại các dịch vụ:
Tiếp theo, khởi động seafile và seahub từ người dùng seafile:
Tất cả các dịch vụ đã được khởi động.
Bây giờ bạn có thể truy cập máy chủ seafile bằng URL của máy chủ của bạn. Của tôi là:
cloud.kuonseafile.co
Bạn sẽ được chuyển hướng đến trang đăng nhập kết nối https của seafile.
Nhập thông tin người dùng quản trị mà chúng tôi đã tạo ở bước 4.
Bây giờ bạn có thể thấy trình quản lý tệp seafile và bắt đầu tải tệp lên máy chủ seafile của mình.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách xây dựng máy chủ chia sẻ và đồng bộ tệp của riêng bạn bằng seafile trên openSUSE Leap 42.1. Chúng tôi sẽ hướng dẫn bạn cài đặt seafile và sau đó cấu hình GUI web với mã hóa https đằng sau máy chủ proxy ngược anginx.
Điều kiện tiên quyết
- OpenSUSE Leap 42.1 - 64bit
- Quyền root
- Hiểu lệnh zypper
Bước 1 - Cấu hình Tên máy chủ
Đăng nhập vào máy chủ openSUSE của bạn:
Mã:
ssh [emailprotected]
Mã:
vim /etc/hosts
Mã:
192.168.1.101 cloud.kuonseafile.co cloud
Lưu ý:
192.168.1.101 = địa chỉ IP máy chủ của tôi.
Cloud = tên máy chủ của tôi.
kuonseafile.co = tên miền của tôi.
Xác minh tên máy chủ và FQDN (Tên miền đủ điều kiện):
Mã:
hostname
hostname -f
Bước 2 - Cài đặt Dependencies
Seafile được viết bằng python, vì vậy chúng ta cần một số thư viện python để cài đặt. Đối với cơ sở dữ liệu, seafile hỗ trợ SQLite và MySQL, trong hướng dẫn này, tôi sẽ sử dụng cơ sở dữ liệu MySQL cung cấp hiệu suất tốt hơn SQLite.Cài đặt tất cả các gói bao gồm máy chủ MySQL/MariaDB bằng lệnh zypper bên dưới:
Mã:
zypper trong python python-imaging python-MySQL-python python-setuptools mariadb mariadb-client
Bước 3 - Cấu hình cơ sở dữ liệu
Có một điều bạn nên biết khi muốn triển khai seafile. Seafile cần 3 cơ sở dữ liệu:- ccnet database
- seafile database
- seahub database
Mã:
rcmysql start
Mã:
/usr/bin/mysqladmin -u root password 'aqwe123'
Đăng nhập vào shell MySQL:
Mã:
mysql -u root -p
Tạo ba cơ sở dữ liệu để cài đặt file này - ccnet_db, seafile_db và seahub_db:
Mã:
create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';
Mã:
create user seafilecloud@localhost defined by 'seafilecloud@';
Mã:
cấp tất cả các đặc quyền trên ccnet_db.* cho seafilecloud@localhost defined by 'seafilecloud@';
cấp tất cả các đặc quyền trên seafile_db.* cho seafilecloud@localhost defined by 'seafilecloud@';
cấp tất cả các đặc quyền trên seahub_db.* cho seafilecloud@localhost defined by 'seafilecloud@';
flush privileges;
Bước 4 - Cài đặt và cấu hình Seafile
Trong bước này, chúng ta sẽ cài đặt và cấu hình seafile. Chúng ta sẽ cài đặt seafile trong thư mục người dùng và thư mục home của seafile, vì vậy chúng ta cần tạo một người dùng Linux mới có tên là "seafile".Tạo người dùng mới
Tạo một người dùng mới có tên là seafile để cài đặt:
Mã:
useradd -m -s /bin/bash seafile
-m = Tạo thư mục home mới cho người dùng trong "/home/".
-s /bin/bash = Xác định shell cho người dùng.
Tải xuống Seafile
Chuyển sang người dùng seafile bằng lệnh su bên dưới:
Mã:
su - seafile
Mã:
wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_5.1.3_x86-64.tar.gz
Mã:
tar -xzvf seafile-server_5.1.3_x86-64.tar.gz
mv seafile-server-5.1.3/ seafile-server
Cài đặt Seafile 5
Vào thư mục seafile-server và chạy tệp thiết lập để cài đặt seafile:
Mã:
cd seafile-server/
Mã:
./setup-seafile-mysql.sh
tên máy chủ = sử dụng tên máy chủ lưu trữ của máy chủ.
Địa chỉ IP hoặc Tên miền của máy chủ = sử dụng địa chỉ IP máy chủ của tôi.
Thư mục dữ liệu Seafile = chỉ cần nhấn Enter.
Cổng cho seafile máy chủ tệp = chỉ cần nhấn Enter.
Tiếp theo, cấu hình cơ sở dữ liệu. Chúng tôi đã tạo cơ sở dữ liệu riêng cho quá trình cài đặt, vì vậy hãy chọn số "2".
Bây giờ bạn sẽ được hỏi về cấu hình cơ sở dữ liệu:
Máy chủ của mysql = Mặc định là localhost.
Cổng mặc định = 3306.
Người dùng MySQL cho seafile = Sử dụng người dùng chúng tôi đã tạo ở bước 3 - "seafilecloud".
Mật khẩu MySQL = mật khẩu cho người dùng seafilecloud.
Cơ sở dữ liệu ccnet = Chúng tôi đã tạo cơ sở dữ liệu - ccnet_db.
Cơ sở dữ liệu seafile = seafile_db.
Cơ sở dữ liệu seahub = seahub_db.
Nếu không xảy ra lỗi, bạn có thể xác nhận quá trình cài đặt bằng cách nhấn "Enter".
chờ tập lệnh tạo cấu hình và cơ sở dữ liệu.
Khởi động Seafile và Seahub
Seafile đã được cài đặt, bây giờ bạn có thể khởi động nó bằng lệnh bên dưới:
Mã:
./seafile.sh start
./seahub.sh start
Ở giai đoạn này, bạn có thể truy cập vào GUI web seafile trên cổng 8000.
Bước 5 - Cài đặt và cấu hình Nginx
Nginx là một máy chủ web nhẹ với mức sử dụng bộ nhớ và mức tiêu thụ CPU thấp. Trong bước này, chúng ta sẽ cài đặt nginx, sau đó tạo một máy chủ ảo mới để truy cập proxy ngược vào seafile. Chúng ta sẽ bật https cho các kết nối trên máy chủ.Cài đặt Nginx
Cài đặt máy chủ web ginx bằng lệnh zypper:
Mã:
zypper trong nginx
Tiếp theo, hãy vào thư mục nginx và tạo một thư mục mới cho chứng chỉ SSL. Sau đó tạo tệp chứng chỉ bằng lệnh OpenSSL:
Mã:
mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/
Mã:
openssl genrsa -out privkey.pem 4096
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
Trong thư mục nginx, hãy tạo một thư mục mới có tên là "vhosts.d" để lưu trữ tệp máy chủ ảo. Tạo thư mục đó rồi tạo một tệp máy chủ ảo mới bằng vim:
Mã:
mkdir -p /etc/nginx/vhosts.d/
cd /etc/nginx/vhosts.d/
vim cloud.kuonseafile.conf
Mã:
server {
listen 80;
server_name cloud.kuonseafile.co; #Tên miền
rewrite ^ https://$http_host$request_uri? permanent; # buộc chuyển hướng http sang https
}
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/cacert.pem; # đường dẫn đến cacert.pem
ssl_certificate_key /etc/nginx/ssl/privkey.pem; # đường dẫn đến privkey.pem
server_name cloud.kuonseafile.co; #Tên miền
proxy_set_header X-Forwarded-For $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
server_tokens off;
location / {
fastcgi_pass 127.0.0.1:8000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_PHƯƠNG THỨC $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CHIỀU DÀI NỘI DUNG $content_length;
fastcgi_param ĐỊA CHỈ MÁY CHỦ $server_addr;
fastcgi_param CỔNG MÁY CHỦ $server_port;
fastcgi_param TÊN MÁY CHỦ $server_name;
fastcgi_param HTTPS đang bật;
fastcgi_param SCHEME HTTP https;
nhật ký truy cập /var/log/nginx/seahub.access.log;
nhật ký lỗi /var/log/nginx/seahub.error.log;
fastcgi_read_timeout 36000;
}
vị trí /seafhttp {
viết lại ^/seafhttp(.*)$ $1 ngắt;
proxy_pass http://127.0.0.1:8082;
kích thước_phần_tối_đa_của_khách_hàng 0;
proxy_connect_timeout 36000 giây;
proxy_read_timeout 36000 giây;
proxy_send_timeout 36000 giây;
send_timeout 36000 giây;
}
vị trí /media {
root /home/seafile/seafile-server/seahub;
}
}
Đối với dòng 47 của vị trí phương tiện, hãy thay thế thành đường dẫn cài đặt seafile - '/home/seafile/seafile-server/seahub'.
Lưu tệp và thoát khỏi trình chỉnh sửa, sau đó kiểm tra cấu hình bằng lệnh:
Mã:
nginx -t
Cấu hình Seafile để sử dụng tên miền và HTTPS của riêng bạn
Chuyển sang seafile người dùng và chỉnh sửa cấu hình. Trước khi chỉnh sửa cấu hình, hãy tắt dịch vụ seafile và seahub.
Mã:
su - seafile
cd seafile-server/
./seafile.sh stop
./seahub.sh stop
Mã:
cd ~/
cd conf/
Mã:
vim ccnet.conf
Mã:
SERVICE_URL = https://cloud.kuonseafile.co/
Bây giờ hãy chỉnh sửa seahub_settings.py
Mã:
vim seahub_settings.py
Mã:
FILE_SERVER_ROOT = 'https://cloud.kuonseafile.co/seafhttp'
Bước 6 - Khởi động seafile và thử nghiệm
Nginx đã được cài đặt - MariaDB/MySQL đã được cài đặt và máy chủ seafile đã được cài đặt.Yêu cầu Nginx và MySQL khởi động khi khởi động:
Mã:
systemctl enable nginx
systemctl enable mysql
Mã:
systemctl restart nginx
systemctl restart mysql
Mã:
su - seafile
cd seafile-server/
./seafile start
./seahub start-fastcgi
Bây giờ bạn có thể truy cập máy chủ seafile bằng URL của máy chủ của bạn. Của tôi là:
cloud.kuonseafile.co
Bạn sẽ được chuyển hướng đến trang đăng nhập kết nối https của seafile.
Nhập thông tin người dùng quản trị mà chúng tôi đã tạo ở bước 4.
Bây giờ bạn có thể thấy trình quản lý tệp seafile và bắt đầu tải tệp lên máy chủ seafile của mình.