一、准备工作
1、centos7 安装并更新到最新版
系统安装略过,网上有很多教程。
# 最小化安装可能缺少必备软件。
yum -y install wget vim yum-utils
# 备份系统自带的源。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载腾讯云的“centos7_base.repo”。重名为“CentOS-Base.repo”后保存到“/etc/yum.repos.d/”
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
# 清理yum的缓存
yum clean all
# 根据腾讯云源重建缓存
yum makecache
# 更新系统
yum update
添加企业版附加包
yum -y install epel-release
2、修改SELinux运行模式
SELinux 有三个模式,这些模式将规定 SELinux 在主体请求时如何应对。这些模式是:
Enforcing 强制— SELinux 策略强制执行,基于 SELinux 策略规则授予或拒绝主体对目标的访问。
Permissive 宽容— SELinux 策略不强制执行,不实际拒绝访问,但会有拒绝信息写入日志。
Disabled 禁用— 完全禁用SELinux。
推荐设置为Disabled 。如果SELinux =Enforcing配置ssl时可能失败,另外如果安装完容器后再修改,容器启动会失败,需要手工修改配置文件。
#查看
root@dev-server ~]# getenforce
Disabled
[root@dev-server ~]# /usr/sbin/sestatus -v
SELinux status: disabled
#修改SELINUX=Permissive
vim /etc/selinux/config
……
SELINUX=Permissive
……
#按esc,输入wq!保存后退出。
#重启系统
reboot
2.1、在esxi中为虚拟机添加新的硬盘.
个人喜欢把数据盘和系统分开,迁移方便、
2.2、登录系统格式化硬盘,并挂载到/opt。
# 格式化新安装的硬盘为ext4.如果系统只有两块硬盘,第二款硬盘为sdb,具体可以运行“ls /dev |grep sd"查看。
mkfs.ext4 /dev/sdb
# 挂载sdb到/opt
mount /dev/sdb /opt
# 查看sdb的uuid
blkid | grep /dev/sdb
/dev/sdb: UUID="6782086f-be9c-471d-aa70-a3baee174b82" TYPE="ext4"
# 配置开机自动挂载
vim /etc/fstab
# 添加以下内容
UUID=6782086f-be9c-471d-aa70-a3baee174b82 /opt ext4 defaults 0 0
#保存
按esc,输入wq!保存后退出
3、安装docker
# 下载最新的安装源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装 Docker
yum -y install docker-ce
# 启动 Docker
systemctl start docker
# 设置 Docker开机自启动
systemctl enable docker
4、给docker添加阿里云加速
# 创建daemon.json,该文件默认没有,需要创建。
vim /etc/docker/daemon.json
# 把下列内容复制到新建文件中。
{
"registry-mirrors": ["https://*****.mirror.aliyuncs.com"]
}
# 按esc,输入wq!保存后退出。
# 注意阿里云加速的URL需要自己申请,申请后把URL替换成自己的就可以。
5、安装docker-compose
seafile是利用docker-compose部署,必须安装。
#安装 PIP3
yum -y install python3-pip
#更新 PIP3
pip3 install --upgrade pip
#安装 Docker Compose
pip3 install docker-compose
# 查看docker compose的版本
docker-compose version
二、 安装Seafile
1、下载并修改 docker-compose.yml
seafile的安装资源可以访问seafile官方资源库
# 创建seafile脚本目录
mkdir -p /opt/docker-compose/seafile
# 进入seafile脚本目录
cd /opt/docker-compose/seafile
# 下载安装脚本
wget https://cloud.seafile.com/seafhttp/files/67a2dcb5-c091-4919-837a-5ce16a5b22fb/docker-compose.yml
2、安装seafile
2.1、下载、编辑安装脚本
#编辑docker-compose.yml
vim docker-compose.yml
docker-compose.yml内容如下:
……
- MYSQL_ROOT_PASSWORD=12345678 #设置msyql密码。
- MYSQL_LOG_CONSOLE=true
volumes:
- /opt/seafile-mysql/db:/var/lib/mysql # 设置MySQL数据持久存储的路径,默认即可。
……
ports:
- "80:80"
- "443:443" # 如需要启用https,就去掉本行前面的注释。
volumes:
- /opt/seafile-data:/shared # 设置网盘数据持久存储的路径,默认即可。
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=12345678 # 输入上面设置的密码
- TIME_ZONE=Asia/Shanghai # 如需要设置市区为“上海”,就去掉本行前面的注释。
- SEAFILE_ADMIN_EMAIL=me@example.com # 设置管理账号
- SEAFILE_ADMIN_PASSWORD=asecret # 设置管理员密码
#- SEAFILE_SERVER_LETSENCRYPT=false # 自动申请Let's Encrypt证书(需要提前配置好DNS)
- SEAFILE_SERVER_HOSTNAME=seafile.example.com # 设置网盘域名
……
修改完成后,按“ESC"后输入“wq”保存并退出文件编辑。
2.2、安装seafile
在docker-compose.yml目录下执行下列操作
docker-compose up -d
执行docker-compose up -d命令后,会联网下载seafile相关镜像。如果下载速度慢,可以配置阿里云镜像加速。
镜像下载完成后,会自动运行。
# 查看容器运行状态,不加”-a"是看不到未正常运行的容器。
docker ps -a
如果镜像没正常运行输入以下命令查看原因
# 如seafile未正常运行
docker logs seafie
容器正常运行几秒钟后,就可以在浏览器访问您的网盘。
2.3、启用https
如已设置自动申请Let’s Encrypt证书,可以跳过。
# 建立ssl证书目录
mkdir -p /opt/seafile-data/ssl
阿里云提供免费的SSL证书,申请后下载nginx版。重命名为类似www.seafile.com.key,www.seafile.com.crt。将申请的证书上传到/opt/seafile-data/ssl
修改 Nginx 的配置文件 ,启用 ssl 。
# 切换到配置文件目录
cd /opt/seafile-data/nginx/conf/
# 备份配置seafile.nginx.conf
cp seafile.nginx.conf seafile.nginx.conf.bak0
# 编辑配置文件
vim seafile.nginx.conf
打开seafile.nginx.conf后,按下面修改
server {
listen 80;
server_name 10.10.10.142; # 服务器地址或域名。
rewrite ^(.*) https://$server_name$1 permanent;#开启自动跳转https.
}
server {
listen 443 default ssl;
server_name 10.10.10.142;
ssl_certificate /shared/ssl/www.seafile.comp.crt; # 设置SSL证书
ssl_certificate_key /shared/ssl/www.seafile.com.key; # 设置SSL密钥
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-SEED-SHA:DHE-RSA-CAMELLIA128-SHA:HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
ssl_prefer_server_ciphers on;
proxy_set_header X-Forwarded-For $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
client_max_body_size 10m;
#后面的内容不要动
location / {
……
修改完成后,按“ESC"后输入“wq”保存并退出文件编辑。
# 配置完成后重启nginx
docker exec -it seafile /usr/sbin/nginx -s reload
重启nginx,注意观察日志。如配置文件有错,日志会提示配置文件哪一行有问题,修改即可。
配置完成后,就可以用https方式访问网盘。
登录网盘后,点击系统系统管理-设置分别把SERVICE_URL 和 FILE_SERVER_ROOT 修改成https开通的网站。例如:https://www.seafile.com/ 和https://www.seafile.com/seafhttp
2.4、开机启动seafile
# 配置 docker-compose 开机自启动
vim /etc/rc.d/rc.local
# 文件后面添加下行内容,注意docker-compose.yml目录
docker-compose -f /opt/docker-compose/seafile/docker-compose.yml up -d
# 保存退出后,为 rc.local 文件添加执行权限
chmod +x /etc/rc.d/rc.local
二、安装onlyoffice
1、创建onlyoffice 加"-p"递归创建,多个目录用“空格”连接
mkdir -p /opt/seafile-onlyoffice/log /opt/seafile-onlyoffice/data /opt/seafile-onlyoffice/lib /opt/seafile-onlyoffice/db
2、启动onlyoffice,第一次会从互联网拉取镜像,需要时间
docker run -i -t -d -p 8080:80 -p 8443:443 --name onlyoffice --restart=always -v /opt/seafile-onlyoffice/log:/var/log/onlyoffice -v /opt/seafile-onlyoffice/data:/var/www/onlyoffice/Data -v /opt/seafile-onlyoffice/lib:/var/lib/onlyoffice -v /opt/seafile-onlyoffice/db:/var/lib/postgresql onlyoffice/documentserver
3、启动完成后,可以尝试访问http://IP:8080/welcome/。
4、onlyoffice启用ssl。
复制宿主机的证书到到onlyoffice容器中。
docker cp /opt/seafile-data/ssl/ onlyoffice:/etc/onlyoffice/documentserver/nginx/
修改ds.conf文件
# 进入onlyoffice容器内部
docker exec -it onlyoffice bash
# 为容器安装vim。注意容器内系统是Ubuntu。
apt update
apt -y install vim
# 停止nginx服务
service nginx stop
# 复制配置文件
cp -f /etc/onlyoffice/documentserver/nginx/ds-ssl.conf.tmpl /etc/onlyoffice/documentserver/nginx/ds.conf
# 编辑配置文件
vim /etc/onlyoffice/documentserver/nginx/ds.conf
# 修改ssl证书目录
……
ssl_certificate /etc/onlyoffice/documentserver/nginx/ssl/www.uxxl.vip.crt;
ssl_certificate_key /etc/onlyoffice/documentserver/nginx/ssl/www.uxxl.vip.key;
……
# 保存后,自动退出。
# 启动nginx服务
service nginx start
如启动没有报错,就可以尝试访问:https://IP:8443/welcome/
三、配置seafile和onlyoffice的联动
1、配置使用onlyoffice打开seafile中的文件
# 切换到配置文件目录
cd /opt/seafile-data/seafile/conf/
# 备份配置文件
cp seahub_settings.py seahub_settings.py.bak0
编辑配置文件
vim seahub_settings.py
并添加以下内容
# Enable Only Office
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = False
# ONLYOFFICE_APIJS_URL = 'http{s}://{your OnlyOffice server's domain or IP}/web-apps/apps/api/documents/api.js'
ONLYOFFICE_APIJS_URL = 'https://10.10.10.149:8443/web-apps/apps/api/documents/api.js'
ONLYOFFICE_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('docx', 'pptx', 'xlsx')
重启seafile
docker-compose -f /opt/docker-compose/seafile/docker-compose.yml restart
现在可以尝试在seafile中直接编辑office文件。
2、配置自动保存
使用 OnlyOffice 打开文件时,OnlyOffice 默认只会在用户关闭页面后向 Seafile 发送文件保存请求。 建议开启定时保存。
# 进入onlyoffice容器内部
docker exec -it onlyoffice bash
备份配置文件
cp /etc/onlyoffice/documentserver/local.json /etc/onlyoffice/documentserver/local.json.bak0
编辑配置文件
vim /etc/onlyoffice/documentserver/local.json
在文件中添加
{
"services": {
"CoAuthoring": {
// 在 CoAuthoring 中 增加 autoAssembly 属性配置
"autoAssembly": {
"enable": true,
"interval": "5m"
}
}
}
}
四、安装portainer-ce中文版
开启IPV4转发
# 打开配置文件
vim /etc/sysctl.conf
# 添加这段代码
net.ipv4.ip_forward=1
安装portainer-ce中文版
docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer-ce
portainer-ce中文版地址:https://github.com/eysp/portainer-ce
安装portainer主要是方便管理。
整个过程参考了https://bbs.seafile.com/t/topic/13486,感谢momo_seafile的付出。
编写不易,转载请保留unlast@seafile.com.