找回密码
 立即注册
搜索
热搜: SDN 云计算 H3C
查看: 777|回复: 0

[seafile] 群晖NAS容器化部署Seafile+onlyoffice

[复制链接]

57

主题

13

精华

8

回帖

管理员

体力
314 卡
贡献
161 个
金币
256 枚
注册时间
2018-8-25
最后登录
2025-3-1

活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老最佳新人

发表于 2023-12-25 00:01:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、部署seafile和onlyoffice

docker-compose.yml如下:
  1. services:
  2.   db:
  3.     image: mariadb:10.11
  4.     container_name: seafile-mysql
  5.     environment:
  6.       - MYSQL_ROOT_PASSWORD=XXXXXX      # Requested, set the root's password of MySQL service.
  7.       - MYSQL_LOG_CONSOLE=true
  8.       - MARIADB_AUTO_UPGRADE=1
  9.     volumes:
  10.       - /aaa/seafile/seafile-mysql/db:/var/lib/mysql  # Requested, specifies the path to MySQL data persistent store.
  11.     networks:
  12.       - seafile-net

  13.   memcached:
  14.     image: memcached:1.6.18
  15.     container_name: seafile-memcached
  16.     entrypoint: memcached -m 256
  17.     networks:
  18.       - seafile-net

  19.   elasticsearch:
  20.     image: elasticsearch:8.6.2
  21.     container_name: seafile-elasticsearch
  22.     environment:
  23.       - discovery.type=single-node
  24.       - bootstrap.memory_lock=true
  25.       - xpack.security.enabled=false
  26.       - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
  27.     volumes:
  28.       - /aaa/seafile/seafile-elasticsearch/data:/usr/share/elasticsearch/data  # Requested, specifies the path to Elasticsearch data persistent store.
  29.     networks:
  30.       - seafile-net
  31.          
  32.   seafile:
  33.     image: docker.seafile.top/seafileltd/seafile-pro-mc:11.0.5
  34.     container_name: seafile
  35.     ports:
  36.       - "1080:80"
  37. #     - "1443:443"  # If https is enabled, cancel the comment.
  38.     volumes:
  39.       - /aaa/seafile/seafile-data:/shared   # Requested, specifies the path to Seafile data persistent store.
  40.     environment:
  41.       - DB_HOST=db
  42.       - DB_ROOT_PASSWD=XXXXXX         # Requested, the value shuold be root's password of MySQL service.
  43.       - TIME_ZONE=Asia/Shanghai          # Optional, default is UTC. Should be uncomment and set to your local time zone.
  44.       - SEAFILE_ADMIN_EMAIL=XXXX@#XX         # Specifies Seafile admin user, default is 'me@example.com'
  45.       - SEAFILE_ADMIN_PASSWORD=XXXXXX          # Specifies Seafile admin password, default is 'asecret'
  46.       - SEAFILE_SERVER_LETSENCRYPT=false       # Whether to use https or not
  47.       - SEAFILE_SERVER_HOSTNAME=XXXXXX:1080        # Specifies your host name if https is enabled
  48.     depends_on:
  49.       - db
  50.       - memcached
  51.       - elasticsearch
  52.     networks:
  53.       - seafile-net

  54.   oods:
  55.     image: onlyoffice/documentserver:latest
  56.     container_name: seafile-oods
  57.     ports:
  58.       - "1081:80"                       
  59.     networks:
  60.       - seafile-net
  61.     environment:
  62.       - JWT_ENABLED=True
  63.       - JWT_SECRET=seafile123     ##可以自定义

  64. networks:
  65.   seafile-net:
复制代码

执行 docker-compose up -d启动相关容器。


二、设置onlyoffice
群晖系统下执行vim /........./seafile/seafile-data/seafile/conf/seahub_settings.py,在最后添加以下内容:

  1. # OnlyOffice
  2. ENABLE_ONLYOFFICE = True
  3. VERIFY_ONLYOFFICE_CERTIFICATE = False               //不使用https访问时,请填写False
  4. ONLYOFFICE_APIJS_URL = 'http://sf.hahaha.net:1081/web-apps/apps/api/documents/api.js'    //IP请填写onlyoffice容器外网的IP,标红路径请勿写错。
  5. ONLYOFFICE_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
  6. ONLYOFFICE_EDIT_FILE_EXTENSION = ('docx', 'pptx', 'xlsx')
  7. ONLYOFFICE_JWT_SECRET = 'seafile123'                ## 和docker-compose.yml 中保持一致</div>
复制代码


修改并保存后,重启容器 docker restart seafile。
也可以通过docker exec -it seafile bash登陆seafile容器后,执行vim conf/seahub_settings.py.


三、解决“onlyoffice打开文档时提示下载失败”问题
onlyoffice前端页面出现“下载失败”,通常为以下两个排查方向:

排查方向1(docker内不能访问)
很常见的一种情况时后端服务地址,在docker不能访问。
# docker exec -it seafile-oods  /bin/bash
# curl  http://192.168.9.250:1081/web-apps/apps/api/documents/api.js




排查方向2(使用内部IP地址访问后端服务)
查看onlyoffice converter的日志文件(docker中对应位置/var/log/onlyoffce/logs/documentserver/converter/out.log)
如果发现日志文件存在以下报错,那需要进入seafile-oods容器中编辑配置文件/etc/onlyoffice/documentserver/default.json允许私有IP通过。

Error: DNS lookup xxx.xxx.xxx.xx(family:undefined, host:undefined) is not allowed. Because, It is private IP address.


搜索并修改以下字段为true。

  1. request-filtering-agent" : {
  2.         "allowPrivateIPAddress": true,
  3.         "allowMetaIPAddress": true
  4. },
复制代码
解决以上问题后,经测试访问正常。


【解决容器中无法vim和ping问题】
可在容器中运行以下命令进行安装,请注意由于容器的特点,容器重建后将会丢失。
apt-get update
apt-get install vim
apt-get install iputils-ping



参考链接:
https://blog.csdn.net/dwdcth/article/details/124034338?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-124034338-blog-134512380.235%5Ev39%5Epc_relevant_3m_sort_dl_base4&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-124034338-blog-134512380.235%5Ev39%5Epc_relevant_3m_sort_dl_base4&utm_relevant_index=2







您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表