部署seafile集成onlyoffice
步骤
seafile服务器版本:8.0.7
1、按照如下docker-compose方式部署
2、链接 mysql 特殊设置
| create user 'seafile'@'%' identified by '密码';
grant all privileges on *.* to 'seafile'@'%';
flush privileges;
|
3、进入seafile 执行初始化🐕♥
| docker exec -it seafile bash
rm -rf seafile-server-latest ccnet
cd seafile-server-8.0.7 && ./setup-seafile-mysql.sh
一步步执行;先mysql的root密码(docker-compose中),再seafile的密码(第二步设置的)
|
4、docker-compose restart 重启
5、部署 onlyoffice
| docker run -id -p 8022:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
|
6、联通seafile–onlyoffice
修改 /opt/seafile/conf 中 seahub_settings.py
添加下面的内容
| 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_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('docx', 'pptx', 'xlsx')
ONLYOFFICE_JWT_SECRET = 'your-secret-string' #自定义secret
|
7、最后最重要
初始化用户
| ./seahub.sh start
./seafile.sh start
|
坑位
OnlyOffice 预览失败
| /etc/onlyoffice/documentserver/default.json
修改下方
"request-filtering-agent" : {
"allowPrivateIPAddress": true,
"allowMetaIPAddress": true
},
如nginx反向代理注意
proxy_set_header Host $http_host;
|
OnlyOffice 安全令牌失败
| cd /etc/onlyoffice/documentserver
sed -i 's/true/false/g' local.json
supervisorctl restart all
|
OnlyOffice 在nginx 后的文件下载失败解决办法
| server {
listen 80;
server_name docwork.tech.intra.nsfocus.com;
gzip on;
location / {
proxy_set_header Forwarded "for=$remote_addr;proto=$scheme";
proxy_set_header Host $http_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_pass http://10.44.3.12:8022;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
}
|
上传大文件失败
nginx 配置出了官方配置外还有nginx反代修改
| proxy_pass http://10.44.16.249:8800/;
client_max_body_size 0;
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;
|
修改默认登录页面
| 修改settings.py |
|---|
| # LOGIN_URL = '/accounts/login/'
LOGIN_URL = '/sso/'
|
自定义文件、文件夹删除功能
| seahub/api2/endpoints/file.py # FileView
seahub/api2/endpoints/dir.py # DirView
|
2024-2-20日,官方版本的latest 出现异常,通过上面的方法基本可以解决启动失败的问题
如果懒得处理,没必要使用最新的版本,可以使用tag seafileltd/seafile-mc:10.0.1 这个版本没多少问题
docker-compose
| services:
db:
image: mariadb:10.11
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=1111111111
- MYSQL_LOG_CONSOLE=true
volumes:
- /root/seafile-mysql/db:/var/lib/mysql
networks:
- seafile-net
memcached:
image: memcached:1.6
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: seafileltd/seafile-mc:10.0.1
container_name: seafile
volumes:
- /root/seafile-data:/opt/seafile/seafile-data-v2/
# 启动建议 进去软连接 ls -s /opt/seafile/seafile-data-v2/ /opt/seafile/seafile-data
ports:
- "37881:80"
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=1111111111 # Requested, the value shuold be root's password of MySQL service.
- TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.
- SEAFILE_ADMIN_EMAIL=me@example.com # Specifies Seafile admin user, default is 'me@example.com'.
- SEAFILE_ADMIN_PASSWORD=BL5moOjPnU # Specifies Seafile admin password, default is 'asecret'.
- SEAFILE_SERVER_LETSENCRYPT=false # Whether use letsencrypt to generate cert.
- SEAFILE_SERVER_HOSTNAME=doc.tech.intra.nsfocus.com # Specifies your host name.
depends_on:
- db
- memcached
networks:
- seafile-net
networks:
seafile-net:
|