Seafile 10.x 专业版(含office预览)安装指南

引子

Seafile是一款开源的同步云盘,分为社区版和专业版,社区版相较于企业版会少一些功能,具体区别请见此处。对于专业版,三个用户及以下是免费使用的。以下对Seafile专业版10.x(含内置office预览)安装过程简单记录,对于以下没有涉及到的内容,可以查看服务器手册

使用docker安装Seafile专业版(含内置office预览)

在使用docker安装Seafile前需要安装docker和docker-compose。

下载并修改 docker-compose.yml

官方提供一个样例,但并不包含office预览部分(在9.0前内置于Seafile中,9.0后独立为单独的镜像of­fice-pre­view),此处修改docker-compose.yml使其与其他部分一起部署:

services:
  db:
    image: mariadb:10.11
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=db_dev  # Requested, set the root's password of MySQL service.
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /opt/seafile-mysql/db:/var/lib/mysql  # Requested, specifies the path to MySQL data persistent store.
    networks:
      - seafile-net

  memcached:
    image: memcached:1.6.18
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net

  elasticsearch:
    image: elasticsearch:8.6.2
    container_name: seafile-elasticsearch
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    volumes:
      - /opt/seafile-elasticsearch/data:/usr/share/elasticsearch/data  # Requested, specifies the path to Elasticsearch data persistent store.
    networks:
      - seafile-net
     
  # 部署of­fice-pre­view
  office:
    image: seafileltd/office-preview:latest
    container_name: seafile-office-preview
    ports:
      - "8089:8089"
    command: bash start.sh
    volumes:
      - /opt/seafile-office-preview/office:/shared
    networks:
      - seafile-net
    
  seafile:
    image: docker.seafile.top/seafileltd/seafile-pro-mc:latest
    container_name: seafile
    ports:
      - "80:80"
#     - "443:443"  # If https is enabled, cancel the comment.
    volumes:
      - /opt/seafile-data:/shared   # Requested, specifies the path to Seafile data persistent store.
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=db_dev  # 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=asecret    # Specifies Seafile admin password, default is 'asecret'
      - SEAFILE_SERVER_LETSENCRYPT=false   # Whether to use https or not
      - SEAFILE_SERVER_HOSTNAME=seafile.example.com # Specifies your host name if https is enabled
    depends_on:
      - db
      - memcached
      - elasticsearch
      - office  ## 添加of­fice-pre­view
    networks:
      - seafile-net

networks:
  seafile-net:

修改MYSQL_ROOT_PASSWORD、DB_ROOT_PASSWD(两者需要相同)、SEAFILE_ADMIN_EMAIL、SEAFILE_ADMIN_PASSWORD和数据目录等设置,并启动Seafile:

docker compose up -d

部署完成后就可以使用http://<你的 seafile 域名>来打开Seafile。

服务器配置

具体配置文件选项请参考服务器手册

启用office预览

配置seahub_set­tings.py,添加以下内容:

SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
OFFICE_CONVERTOR_ROOT = 'http://office:8089'

在office的配置文件office_convertor_settings.py中的SECRET_KEY要和seahub_set­tings.py的保持一致

在线预览大小超过上限

Seafile限制office预览的默认大小为2MiB。在seafevents.conf中配置[OFFICE CONVERTER]下的max-size似乎在9.0以后已失效。经查,这一配置需要到seafile镜像中修改,打开镜像中的/opt/seafile/seafile-pro-server-10.0.x/seahub/seahub/utils/__init__.py文件(其中的x需要替换为相应的版本号),并修改以下配置:

OFFICE_PREVIEW_MAX_SIZE = 2 * 1024 * 1024
OFFICE_PREVIEW_MAX_PAGES = 50

office预览字体不正确

这是由于office-preview中没有包含对应的字体导致的。将字体文件复制到office-preview镜像中的/usr/share/fonts或其子目录下,然后运行命令fc-cache -fv即可。如要查看已安装的字体可以使用命令fc-list,查看中文字体使用命令fc-list :lang=zh

使用非常规端口(80,443外的端口)导致头像无法加载、认证问题

需要将nginx配置(位于share\nginx\conf\seafile.nginx.conf)中的$host改为$http_host

web­dav 访问无法加载资源(图片等无法显示)

这是由于web­dav没有在根目录运行,需要在ng­inx配置(位于share\nginx\conf\seafile.nginx.conf)中添加

location /:dir_browser {
proxy_pass         http://127.0.0.1:8080/:dir_browser;
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;
}

使用自定义的的css(使其支持黑暗模式等)

seafile自身没有适配黑暗模式,但Seafile支持自定义css,PierreBrisorgueil的SeafileStyle就支持自动黑暗模式,并默认为迷之蓝色。在后台 > 设置 > 定制的 CSS 中填入即可。若只想要他的黑暗模式,可以把没有媒体查询的部分全部放置在媒体查询中:

/******************
    MAIN PAGE
*****************/
@media (prefers-color-scheme: dark) {
    .star-empty {
        color: var(--dark-font);
    }
/******************
    省略很多很多行
*****************/
    .css-1tlqf55 {
        color: var(--main-font) !important;
    }
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇