armbian下的seafile部署
seafile简介
1 | Seafile 是一款开源的企业云盘,注重可靠性和性能。支持 Windows, Mac, Linux, iOS, Android 平台。支持文件同步或者直接挂载到本地访问。 |
社区版使用按官网来就行,专业版不付费的话限制使用三个账号,本文使用的是(9.0.2版本)[]
注意:seafile 9.0.x 版本不支持在 Centos 系统 tar 包部署,支持 Docker 方式部署
软件安装
1 | apt-get update && apt-get upgrade |
软件依赖包
1
2apt-get install python3 python3-setuptools python3-pip python3-ldap libmysqlclient-dev -y
pip3 install --timeout=3600 django==3.2.* future mysqlclient pymysql Pillow pylibmc captcha jinja2 sqlalchemy==1.4.3 psd-tools django-pylibmc django-simple-captcha pycryptodome==3.12.0 lxmlnginx安装
1
apt-get install -y nginx
memcached安装
1
2
3apt-get install memcached libmemcached-dev -y
pip3 install --timeout=3600 pylibmc django-pylibmc
systemctl enable --now memcachedmariadb安装
1
2
3apt-get install mariadb-server
创建root账户
mysqladmin -uroot password '123456'seafile解压
1
2
3
4
5到指定目录创建seafile文件夹
mkdir -p seafile/installed
将下载的seafile-server-xxx.tar.gz复制到installed文件夹中进行解压
tar -zxf seafile-server-9.0.2-bullseye-arm32v7l.tar.gz -C ../
chmod -R 755 seafile-server-9.0.2/seafile目录结构如下:
seafile
├── installed
│ └── seafile-server-9.0.2-bullseye-arm32v7l.tar.gz
└── seafile-server-9.0.2
├── setup-seafile-mysql.sh
├── ……
然后执行安装脚本1
2cd seafile/seafile-server-9.0.2
./setup-seafile-mysql.sh初始化安装步骤:
1
2
3
4
5
6
7
8-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
输入 1,然后根据提示依次提供相关信息即可
相关配置
修改监听地址
vim ../conf/gunicorn.conf.py
将其中bind
地址修改成0.0.0.0:8000
配置nginx
移除nginx的默认配置rm /etc/nginx/sites-enabled/default
vim /etc/nginx/sites-available/seafile.conf
填入以下配置,通过反代理实现80端口访问seafile,同时开启webdav功能1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50server {
listen 80;
server_name default_server;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_read_timeout 1200s;
client_max_body_size 0;
access_log /var/log/nginx/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_request_buffering off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
location /media {
root /media/sda1/seafile/seafile-server-latest/seahub;
}
location /seafdav {
proxy_pass http://127.0.0.1:8080/seafdav;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1200s;
client_max_body_size 0;
access_log /var/log/nginx/seafdav.access.log seafileformat;
error_log /var/log/nginx/seafdav.error.log;
}
location /:dir_browser {
proxy_pass http://127.0.0.1:8080/:dir_browser;
}
}若要开启webdav还得修改conf/seafdav.conf如下
1 | [WEBDAV] |
创建符号链接: ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.conf
配置memcached优化性能
在conf/seahub_settings.py
中追加以下配置1
2
3
4
5
6
7
8
9
10CACHES = {
'default': {
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
'LOCATION': '127.0.0.1:11211',
},
'locmem': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
},
}
COMPRESS_CACHE_BACKEND = 'locmem'seafile注册为系统服务,开启开机自启
vim /etc/systemd/system/seafile.service
seafile的开机自启1
2
3
4
5
6
7
8
9
10
11
12
13[Unit]
Description=Seafile
After=network.target mariadb.service
[Service]
Type=oneshot
ExecStart=/media/sda1/seafile/seafile-server-latest/seafile.sh start
ExecStop=/media/sda1/seafile/seafile-server-latest/seafile.sh stop
ExecReload=/media/sda1/seafile/seafile-server-latest/seafile.sh restart
RemainAfterExit=yes
[Install]
WantedBy=multi-user.targetvim /etc/systemd/system/seahub.service
seahub的开机自启
1 | [Unit] |
保存配置后设置开机自启
1 | systemctl daemon-reload |
启动服务
启动服务有两种方式,一般情况下先启动seafile,再启动seahub,关闭的话则反着来
1 | seafile/seafile-server-latest/seafile.sh start # stop,restart |
或者使用系统服务命令
1 | systemctl start seafile nginx |
注:如果一切配置不出错,在初次启动seahub后将会有一段配置管理员登陆信息的交互
直接访问主机地址 http://192.168.2.15 即可访问seafile,若配置有域名映射去管理面板中更改seafile、seahub服务器地址信息即可