Seafile安装

安装操作系统:

安装干净的ubuntu22.04 server版本,安装时注意开启ssh,同时若为虚拟机安装可做好快照,方便问题时回退

下载安装文件到本地

https://www.seafile.com/download/

image

将安装文件传输至服务器/opt目录下

ubuntu内如果遇到权限问题无法将文件直接传输至/opt下,可先将文件传输至home下,然后cp过去

获取安装脚本

适用于 Seafile 8.0.x 及以上版本,此处以11.0.2

image

wget https://raw.githubusercontent.com/haiwen/seafile-server-installer-cn/master/seafile-11.0_ubuntu

命令中版本名称根据下载的具体小版本,选择github中大版本下载即可,如本次安装小版本为11.0.2,那么此处下载安装脚本改为11.0即可

运行安装脚本并指定要安装的版本 (例如 11.0.2)

bash seafile-11.0_ubuntu 11.0.0

脚本会让您选择要安装的版本, 按照提示进行选择即可:此处我们已经将安装文件放置/opt下,所以不会再联网安装了,也不要使用联网安装方式,会报错

image

选择输入1,安装社区免费版本

安装完毕输出安装信息,内含账号及登录信息

image

通过 Web UI 对服务器进行配置

安装完成后,您需要通过 Web UI 服务器进行基本的配置,以便能正常的从网页端进行文件的上传和下载:

  1. 首先在浏览器中输入服务器的地址,并用管理员账号和初始密码登录

  2. 点击界面的右上角的头像按钮进入管理员界面 https://github.com/haiwen/seafile-server-installer-cn/blob/master/images/system-admin-entrance.png

    管理员入口

修改对外提供服务地址

image

修改为实际对外提供地址,默认是127.0.0.1,不修改的话,从外部访问seafile系统时会无法正常上传文件

集成Onlyoffice

安装Onlyoffice

此处选择另外有一台虚拟机Ubuntu 22.04,安装最新docker

sudo docker run -i -t -d -p 15215:80 --restart=always -e JWT_SECRET=个人秘钥 onlyoffice/documentserver

image15215:80即对外暴露15215端口

JWT_SECRET后跟个人秘钥(onlyoffice高版本使用JWT安全令牌,onlyoffice重启会变更密钥,JWT_SECRET可指定固定秘钥)

编辑配置文件

进入/opt/seafile/conf目录,编辑seahub_settings.py文件

image在文件最后添加如下文字:

# Enable Only Office
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_APIJS_URL = 'http://服务器地址:12515/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 = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_JWT_SECRET = '密钥'  此处秘钥与运行onlyoffice时后方跟的秘钥相同

然后重启Seafile服务

service seafile-server restart

开启预览水印

进入/opt/seafile/conf目录,编辑seahub_settings.py文件

ENABLE_RESUMABLE_FILEUPLOAD = True
ENABLE_WATERMARK = True

image

然后重启Seafile服务

service seafile-server restart

邮件通知

报错处理-坑

报错:文件编码无法识别

image

系统管理中-设置-格式中是否添加了 office的格式,如果添加删除掉即可,注意,不要有任何word、excel、ppt的扩展名存在image

保存后即可解决该问题

出口进行端口映射后登录报错

出口路由器做端口映射(路由器同时做了ddns动态域名解析,可通过域名访问)映射后访问报如下错误:登录提示 “Forbidden (403) CSRF verification failed. Request aborted.”,

image

image

解决方法:在seahub_settings.py最后添加如下配置

CSRF_TRUSTED_ORIGINS = ['https://**.com:对外映射端口']    #填你的访问地址

然后重启Seafile服务

service seafile-server restart

image

上传文件失败,无反应

imageFILE_SERVER_ROOT填写正确的地址即可(域名)

外网编辑文档打开白屏

seafile对外映射完毕后,onlyoffice也需要对应映射,然后将seafile配置文件中URL修改为域名:端口的形式,然后重启服务即可

image

配置文件整体

root@lzs:/opt/seafile/conf# cat seahub_settings.py
# -*- coding: utf-8 -*-
SECRET_KEY = "b'oaf#&+ps-@)y13d7%&s^1e=f%#ntvz#wjz@2!-8(eq=mawv$mg'"
SERVICE_URL = "http://127.0.0.1/"

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'seahub_db',
        'USER': 'seafile',
        'PASSWORD': 'aepa5reJ',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {'charset': 'utf8mb4'},
    }
}


CACHES = {
    'default': {
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211',
    },
    'locmem': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
    },
}
COMPRESS_CACHE_BACKEND = 'locmem'

# EMAIL_USE_TLS                       = False
# EMAIL_HOST                          = 'localhost'
# EMAIL_HOST_USER                     = ''
# EMAIL_HOST_PASSWORD                 = ''
# EMAIL_PORT                          = '25'
# DEFAULT_FROM_EMAIL                  = EMAIL_HOST_USER
# SERVER_EMAIL                        = EMAIL_HOST_USER

TIME_ZONE                           = 'Asia/Shanghai'
SITE_BASE                           = 'http://127.0.0.1'
SITE_NAME                           = 'Seafile Server'
SITE_TITLE                          = 'Seafile Server'
SITE_ROOT                           = '/'
ENABLE_SIGNUP                       = False
ACTIVATE_AFTER_REGISTRATION         = False
SEND_EMAIL_ON_ADDING_SYSTEM_MEMBER  = True
SEND_EMAIL_ON_RESETTING_USER_PASSWD = True
CLOUD_MODE                          = False
FILE_PREVIEW_MAX_SIZE               = 30 * 1024 * 1024
SESSION_COOKIE_AGE                  = 60 * 60 * 24 * 7 * 2
SESSION_SAVE_EVERY_REQUEST          = False
SESSION_EXPIRE_AT_BROWSER_CLOSE     = False

SERVICE_URL                         = 'http://127.0.0.1'
FILE_SERVER_ROOT                    = 'http://127.0.0.1/seafhttp'
# Enable Only Office
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = False
ONLYOFFICE_APIJS_URL = 'http://192.168.6.149:15215/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 = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_JWT_SECRET = 'lzs'   #自定义secret
#预览水印
ENABLE_RESUMABLE_FILEUPLOAD = True
ENABLE_WATERMARK = True

CSRF_TRUSTED_ORIGINS = ['http://xxxx.xx.vip:8088']    #填你的访问地址