Seafile是一个私有云,如Dropbox,mega.co.nz等。 Seafile基于python
,它是开源的
,因此您可以创建自己的私有云,并且将更加安全。
Seafile支持加密库,使您的数据更安全。 要加密库中的文件,您需要在创建库时设置密码。 密码不会存储在Seafile云端。 因此,即使是服务器的管理员也无法在没有密码的情况下查看加密的数据。
本教程显示了在Ubuntu 16.04上安装Seafile。
先决条件
- 具有2GB RAM的服务器
- Ubuntu 16.04 64位
安装海底
第1步 - 安装必要的依赖关系
为了执行安装,海底需要一些依赖:
- openjdk-8jre
- LibreOffice
- Popler-utils
- mysql-server
- Python-pip等。
apt-get install openjdk-8-jre poppler-utils libreoffice libreoffice-script-provider-python libpython2.7 python-pip mysql-server python-setuptools python-imaging python-mysqldb python-memcache ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy python-pip
安装boto与pip:
pip install boto
如果您有关于区域设置的错误,请运行以下所有命令:
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales
第2步 - 创建一个新的“seafile”用户
在此步骤中,我们将为海底安装创建一个新用户。 我们将以此用户身份运行海底服务器。
为安装创建新的“seafile”
用户。
useradd -m -s /bin/bash seafile
passwd seafile
第3步 - 下载并提取海底档案
海底可以从官方网站下载,请根据您的需要下载。 这里我使用Ubuntu 15.04 64位。
用wget下载Seafile存档:
su - seafile
wget wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_5.1.4_x86-64.tar.gz
提取seafile-server_5.1.4_x86-64.tar.gz
并将目录
重命名为'seafile-server'
。
tar -xzf seafile-server_5.1.4_x86-64.tar.gz
mv seafile-server-5.1.4/ seafile-server/
因此,海底安装的目录位于海员用户主目录中。
第4步 - 创建数据库
Seafile需要3个数据库:
- ccnet服务器
- 海底服务器
- seahub
现在用“退出”返回到root用户,然后登录到你的mysql服务器。
使用一个用户创建3个数据库,并将用户授予所有数据库。
#Login to mysql
mysql -u root -p
#Create database
create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';
#Create user
create user seacloud@localhost identified by 'yourpassword';
#Grant user to the databases
grant all privileges on ccnet_db.* to seacloud@localhost identified by 'yourpassword';
grant all privileges on seafile_db.* to seacloud@localhost identified by 'yourpassword';
grant all privileges on seahub_db.* to seacloud@localhost identified by 'yourpassword';
flush privileges;
第5步 - 安装海底
登录到'seafile'
用户,并转到安装目录'seafile-server /',
运行setup-seafile-mysql.sh
文件。
su - seafile
cd seafile-server/
./setup-seafile-mysql.sh
只需按Enter键
即可。
- 服务器名称 - 我们将使用
seafile-server
。 - 域/ IP -
cloud.mydomain.co
。 - Seafile数据目录 - 默认数据目录
- Seafile服务器端口配置。
然后,您将被要求进行数据库设置。 您可以选择数字2
,因为在第4步中
创建了所有数据库。
安装了Seafile。 开始seafile和seahub服务器:
./seafile.sh start
./seahub.sh start
您将被询问有关管理电子邮件和密码的管理电子邮件和密码。
如果管理员用户已创建。 现在停止海水,接下来我们将为海底服务器创建一个服务文件:
./seafile.sh stop
./seahub.sh stop
第6步 - 配置Seafile和Seahub服务文件
接下来,我们将配置seafile和seahub服务。 我们将为海底和seahub服务器创建新的服务文件。
作为root用户,转到'/ lib / systemd / system /'
目录,并使用vim编辑器创建一个新的seafile-server.service
文件:
cd /lib/systemd/system/
vim seafile.service
粘贴海底服务配置如下:
[Unit]
Description=Seafile Server
After=network.target mariadb.service
[Service]
Type=oneshot
ExecStart=/home/seafile/seafile-server/seafile.sh start
ExecStop=/home/seafile/seafile-server/seafile.sh stop
RemainAfterExit=yes
User=seafile
Group=seafile
[Install]
WantedBy=multi-user.target
保存并退出。
现在创建新的seahub服务文件seahub.service
:
vim seahub.service
粘贴配置如下:
[Unit]
Description=Seafile Hub
After=network.target seafile.target
[Service]
Type=oneshot
ExecStart=/home/seafile/seafile-server/seahub.sh start-fastcgi
ExecStop=/home/seafile/seafile-server/seahub.sh stop
RemainAfterExit=yes
User=seafile
Group=seafile
[Install]
WantedBy=multi-user.target
保存并退出。
重新加载systemd服务并开始seafile和seahub:
systemctl daemon-reload
systemctl start seafile
systemctl start seahub
确保没有错误,通过检查服务端口检查seafile和seahub服务器是否正在运行。
netstat -plntu
您将看到80%的海底端口和seahub端口8000
。
第7步 - 安装和配置Nginx作为反向代理
在此步骤中,我们将从Ubuntu存储库安装nginx,然后将其配置为8000端口和8002端口上的seafile-server的反向代理服务器。
使用apt-get命令安装nginx:
apt-get install nginx -y
安装完成后,转到nginx虚拟主机目录,并使用vim创建一个新的虚拟主机文件cloud.mydomain.conf
:
cd /etc/nginx/sites-available/
vim cloud.mydomain.conf
粘贴虚拟主机配置如下:
server {
listen 80;
server_name cloud.mydomain.co;
proxy_set_header X-Forwarded-For $remote_addr;
# Reverse proxy for seafile
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_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REMOTE_ADDR $remote_addr;
access_log /var/log/nginx/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
fastcgi_read_timeout 36000;
}
# Reverse Proxy for seahub
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
#CHANGE THIS PATH WITH YOUR OWN DIRECTORY
location /media {
root /home/seafile/seafile-server/seahub;
}
}
保存并退出。
我将使用'cloud.mydomain.co'
作为域名。
接下来,通过创建指向“sites-enabled”
目录的链接启用新的虚拟主机并重新启动nginx。
启用新的虚拟主机:
ln -s /etc/nginx/sites-available/cloud.mydomain.co
测试并重新启动nginx Web服务器。
nginx -t
systemctl restart nginx
第8步 - 使用Web浏览器进行测试
打开浏览器cloud.mydomain.co
,并尝试使用您的管理员帐户登录。
Seafile管理仪表板:
结论
随着云应用的广泛应用,Seafile是一种私有云解决方案,在当天很有用
。 使用库/文件夹中的加密功能
,可以使数据更加安全。 并且还可以轻松配置它
,使其易于在您的服务器中实现。