跳转至

部署seafile集成onlyoffice

步骤

seafile服务器版本:8.0.7

1、按照如下docker-compose方式部署

2、链接 mysql 特殊设置

1
2
3
create user 'seafile'@'%' identified by '密码';
grant all privileges  on *.* to 'seafile'@'%';
flush privileges;
3、进入seafile 执行初始化🐕♥

1
2
3
4
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 添加下面的内容

1
2
3
4
5
6
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 安全令牌失败

1
2
3
4
5
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反代修改

1
2
3
4
5
6
7
8
9
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: