seafile13.0部署成功,但onlyOffice无法使用

请按照以下模版详细描述您遇到的问题:

当前服务器版本

系统信息

社区版升级到专业版

版本

13.0.20

以下是宿主机版本:

Kernel: Linux 5.10.0-305.0.0.208.oe2203sp4.aarch64

部署/操作过程(请说明二进制部署/docker部署;出现错误的操作步骤)

按照官网集成onlyoffice的步骤,能正常打开welcome页面

seafile主服务也能正常上传下载文件

错误截图

直接点击浏览docx格式文档报错

错误日志

浏览器控制台错误信息(如果相关,请提供截图信息)

查看onlyoffice容器日志,发现如下报错:

你可以发一下 seahub_settings.py 配置文件 和 env 文件

配置文件已发邮件,请老师帮忙看下。

我似乎没收到您的邮件,您再发送一下:
jizhou.deng@seafile.com

看到话题内容,感觉和我之前遇到的问题一样,希望对您有所帮助,这个问题的关键点还是sea_hub.py文件的配置,如果您是域名访问,且为家庭宽带则需要加端口号,如果是内网访问则是ip+端口号添加配置url,可以参考我的这个话题。https://bbs.seafile.com/t/topic/22358?u=nickchane

和你一样的配置,但是还是不正常,老铁帮看下

.env配置如下:

#################################

# Docker compose configurations #

#################################

COMPOSE_FILE=‘seafile-server.yml,caddy.yml,seadoc.yml,onlyoffice.yml’

COMPOSE_PATH_SEPARATOR=‘,’

## Images

SEAFILE_IMAGE=seafileltd/seafile-mc:13.0-latest

SEAFILE_DB_IMAGE=mariadb:10.11

SEAFILE_REDIS_IMAGE=redis

SEAFILE_CADDY_IMAGE=lucaslorentz/caddy-docker-proxy:2.12-alpine

SEADOC_IMAGE=seafileltd/sdoc-server:2.0-latest

NOTIFICATION_SERVER_IMAGE=seafileltd/notification-server:13.0-latest

MD_IMAGE=seafileltd/seafile-md-server:13.0-latest

ONLYOFFICE_IMAGE=onlyoffice/documentserver:8.1.0.1

## Persistent Storage

BASIC_STORAGE_PATH=/opt

SEAFILE_VOLUME=$BASIC_STORAGE_PATH/seafile-data

SEAFILE_MYSQL_VOLUME=$BASIC_STORAGE_PATH/seafile-mysql/db

SEAFILE_CADDY_VOLUME=$BASIC_STORAGE_PATH/seafile-caddy

SEADOC_VOLUME=$BASIC_STORAGE_PATH/seadoc-data

ONLYOFFICE_VOLUME=/opt/onlyoffice

#################################

# onlyoffice parameters #

#################################

ONLYOFFICE_PORT=6233

ONLYOFFICE_JWT_SECRET=7xQZ9pR2sT5u

#################################

# Startup parameters #

#################################

SEAFILE_SERVER_HOSTNAME=seafile.kmrcy.com:1443

SEAFILE_SERVER_PROTOCOL=https

TIME_ZONE=Etc/UTC

JWT_PRIVATE_KEY=7xQZ9pR2sT5u

#####################################

# Third-party service configuration #

#####################################

## Database

SEAFILE_MYSQL_DB_HOST=db

SEAFILE_MYSQL_DB_USER=seafile

SEAFILE_MYSQL_DB_PASSWORD=PASSWORD

SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet_db

SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db

SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=seahub_db

## Cache

CACHE_PROVIDER=redis # or memcached

### Redis

REDIS_HOST=redis

REDIS_PORT=6379

REDIS_PASSWORD=

### Memcached

MEMCACHED_HOST=memcached

MEMCACHED_PORT=11211

######################################

# Initial variables #

# (Only valid in first-time startup) #

######################################

## Database root password, Used to create Seafile users

INIT_SEAFILE_MYSQL_ROOT_PASSWORD=ROOT_PASSWORD

## Seafile admin user

INIT_SEAFILE_ADMIN_EMAIL=ysydsj@ynaicc.com

INIT_SEAFILE_ADMIN_PASSWORD=ys

############################################

# Additional configurations for extensions #

############################################

## SeaDoc service

ENABLE_SEADOC=true

SEADOC_SERVER_URL=https ://seafile.kmrcy.com/sdoc-server

## Notification

ENABLE_NOTIFICATION_SERVER=false

NOTIFICATION_SERVER_URL=

## Seafile AI

ENABLE_SEAFILE_AI=false

ENABLE_FACE_RECOGNITION=false

SEAFILE_AI_LLM_TYPE=openai

SEAFILE_AI_LLM_URL=

SEAFILE_AI_LLM_KEY= # your llm key

SEAFILE_AI_LLM_MODEL=gpt-4o-mini

## Metadata server

MD_FILE_COUNT_LIMIT=100000

/opt/seafile-data/seafile/conf/seahub_settings.py 配置文件如下:

# -*- coding: utf-8 -*-

SECRET_KEY = “&bn&rlxnf(_8u2i#hw^7h9-n*ux%4r6s*ug0bdt)-+04-rfhba”

TIME_ZONE = ‘Etc/UTC’

ENABLE_ONLYOFFICE = True

VERIFY_ONLYOFFICE_CERTIFICATE = False

ONLYOFFICE_APIJS_URL = ‘https ://seafile.kmrcy.com:6233/web-apps/apps/api/documents/api.js’

ONLYOFFICE_JWT_SECRET = 7xQZ9pR2sT5u

ONLYOFFICE_FILE_EXTENSION = (‘doc’, ‘docx’, ‘ppt’, ‘pptx’, ‘xls’, ‘xlsx’, ‘odt’, ‘fodt’, ‘odp’, ‘fodp’, ‘ods’, ‘fods’, ‘ppsx’, ‘pps’, ‘csv’)

ONLYOFFICE_EDIT_FILE_EXTENSION = (‘docx’, ‘pptx’, ‘xlsx’, ‘csv’)

OFFICE_PREVIEW_MAX_SIZE = 30 * 1024 * 1024

ENABLE_VIDEO_THUMBNAIL = True

ONLYOFFICE_FORCE_SAVE = True

# SERVICE_URL = ‘https ://seafile.kmrcy.com:6233’

# FILE_SERVER_ROOT = ‘https ://seafile.kmrcy.com:6233/seafhttp’

/opt/seafile/onlyoffice.yml 配置文件如下:

services:

caddy:

ports:

- 6233:6233

onlyoffice:

image: ${ONLYOFFICE_IMAGE:-onlyoffice/documentserver:8.1.0.1}

restart: unless-stopped

container_name: seafile-onlyoffice

environment:

#- DB_TYPE=${DB_TYPE:-mariadb}

#- DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}

#- DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile}

#- DB_PWD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty}

- JWT_ENABLED=true

- JWT_SECRET=7xQZ9pR2sT5u

volumes:

- ${ONLYOFFICE_VOLUME:-/opt/onlyoffice}/logs:/var/log/onlyoffice

- ${ONLYOFFICE_VOLUME:-/opt/onlyoffice}/data:/var/www/onlyoffice/Data

- ${ONLYOFFICE_VOLUME:-/opt/onlyoffice}/lib:/var/lib/onlyoffice

labels:

caddy: https ://seafile.kmrcy.com:6233

caddy.reverse_proxy: “{{upstreams 80}}”

networks:

- seafile-net

networks:

seafile-net:

name: seafile-net

我看你这边配置了 https,并且没有使用标准的 443 端口。
修改标准端口参考下面的方法:
1.修改 caddy.yml

services:

  caddy:
    image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.9-alpine}
    restart: unless-stopped
    container_name: seafile-caddy
    ports:
      - 80:80
      - 5200:5200(这里修改为你的端口)
    environment:
      - CADDY_INGRESS_NETWORKS=seafile-net
...

2.如果要使用自己的证书,不使用 caddy 自动申请的 Let’s Encrypt 证书,则需要修改seafile-server.yml,否则不用修改。

services:
...
    seafile:
    image: ${SEAFILE_IMAGE:-seafileltd/seafile-pro-mc:12.0-latest}
...
    labels:
      #caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
      caddy.reverse_proxy: "{{upstreams 80}}"
      caddy: ${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} # leave this variables only
        #caddy: seafile.xxx.org:5200 # leave this variables only
      caddy.tls: "/data/caddy/certs/cert.pem /data/caddy/certs/key.pem"
        ...

3.修改 env 文件

...
## Scheme
SEAFILE_SERVER_HOSTNAME=你的域名:你的非标准端口
SEAFILE_SERVER_PROTOCOL=https
...

4.修改 onlyoffice.yml,解决双端口问题

---
services:
    ...
  onlyoffice:
    image: ${ONLYOFFICE_IMAGE:-onlyoffice/documentserver:8.1.0.1}
    restart: unless-stopped
...
    labels:
      #caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}:${ONLYOFFICE_PORT:-6233}
      caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://你的域名:${ONLYOFFICE_PORT:-6233}
      caddy.reverse_proxy: "{{upstreams}}"
...

最后清空数据后重启服务。

以下是您提到的关键位置的配置,似乎都没有什么问题,但依旧不行

onlyoffice.yml配置:

services:
caddy:
ports:

  • 6233:6233

onlyoffice:
image: ${ONLYOFFICE_IMAGE:-onlyoffice/documentserver:8.1.0.1}
restart: unless-stopped
container_name: seafile-onlyoffice
environment:
#- DB_TYPE=${DB_TYPE:-mariadb}
#- DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}
#- DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile}
#- DB_PWD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty}

  • JWT_ENABLED=true
  • JWT_SECRET=7xQZ9pR2sT5uV8w
    volumes:
  • ${ONLYOFFICE_VOLUME:-/opt/onlyoffice}/logs:/var/log/onlyoffice
  • ${ONLYOFFICE_VOLUME:-/opt/onlyoffice}/data:/var/www/onlyoffice/Data
  • ${ONLYOFFICE_VOLUME:-/opt/onlyoffice}/lib:/var/lib/onlyoffice
    labels:
    caddy: https ://seafile.kmrcy.com:6233
    caddy.reverse_proxy: “{{upstreams}}”
    networks:
  • seafile-net

networks:
seafile-net:
name: seafile-net

seafile-server.yml配置:

……

labels:
  caddy: https://seafile.kmrcy.com:1443
  caddy.reverse_proxy: "{{upstreams 80}}"
  caddy.tls: "/data/caddy/certs/cert.pem /data/caddy/certs/key.pem"
healthcheck:
  test: ["CMD-SHELL", "curl -f http://localhost:80 || exit 1"]
  interval: 30s
  timeout: 10s
  retries: 3
  start_period: 10s
depends_on:
  db:
    condition: service_healthy
  redis:
    condition: service_started
networks:
  - seafile-net
......

caddy.yml配置:

services:

caddy:
image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.12-alpine}
restart: unless-stopped
container_name: seafile-caddy
ports:

  • 80:80
  • 1443:1443
  • 6233:6233
    environment:
  • CADDY_INGRESS_NETWORKS=seafile-net
    volumes:
  • /var/run/docker.sock:/var/run/docker.sock
  • ${SEAFILE_CADDY_VOLUME:-/opt/seafile-caddy}:/data/caddy
    networks:
  • seafile-net
    healthcheck:
    test: [“CMD-SHELL”, “curl --fail http ://localhost:2019/metrics || exit 1”]
    start_period: 20s
    interval: 20s
    timeout: 5s
    retries: 3

networks:
seafile-net:
name: seafile-net

.env配置:

……

ONLYOFFICE_VOLUME=/opt/onlyoffice

#################################

onlyoffice parameters

#################################
ONLYOFFICE_PORT=6233
ONLYOFFICE_JWT_SECRET=7xQZ9pR2sT5uV8wY0aB

#################################

Startup parameters

#################################
SEAFILE_SERVER_HOSTNAME=seafile.kmrcy.com:1443
SEAFILE_SERVER_PROTOCOL=https
TIME_ZONE=Etc/UTC
JWT_PRIVATE_KEY=7xQZ9pR2sT5uV8wY0aB

老铁,问题解决了,ONLYOFFICE_JWT_SECRET这里少了个双引号,感谢!!