Add upgrade notes for version 13.0

This commit is contained in:
Daniel Pan 2025-04-27 11:41:48 +08:00
parent bfea181164
commit 97aeeb739c
3 changed files with 151 additions and 202 deletions

View File

@ -0,0 +1,150 @@
# Upgrade notes for 12.0
- These notes give additional information about changes.
Please always follow the main [upgrade guide](./upgrade.md).
- For docker based version, please check [upgrade Seafile Docker image](./upgrade_docker.md)
## Important release changes
Seafile version 13.0 has following major changes:
* A redesigned Web UI
* SeaDoc is now version 2.0, beside support sdoc, it support whiteboard too
* A new thumbnail server component is added to improve performance for thumbnail generating and support thumbnail for videos
* A new metadata server component is avaible to manage extended file properties
* The web interface now support real-time update when other people add or remove files
* SeaSearch is now version 1.0 and support full-text search
Configuration changes:
* S3, database and memcache configurations are added to `.env` too
* Elastic search is now have its own yml file
Breaking changes
* For security reason, WebDAV no longer support login with LDAP account, the user with LDAP account must generate a WebDAV token at the profile page
* [File tags] The old file tags feature can no longer be used, the interface provide an upgrade notice for migrate the data to the new file tags feature
Deploying Seafile with binary package is no longer supported for community edition. We recommend you to migrate your existing Seafile deployment to docker based.
### ElasticSearch change (pro edition only)
Elasticsearch version is not changed in Seafile version 13.0
## New system libraries (TO be updated)
=== "Ubuntu 24.04/22.04"
```sh
apt-get install -y default-libmysqlclient-dev build-essential pkg-config libmemcached-dev
```
=== "Debian 11"
```sh
apt-get install -y libsasl2-dev
```
## New Python libraries (TO be updated)
Note, you should install Python libraries system wide using root user or sudo mode.
=== "Ubuntu 24.04 / Debian 12"
```sh
sudo pip3 install future==1.0.* mysqlclient==2.2.* pillow==10.4.* sqlalchemy==2.0.* pillow_heif==0.18.0 \
gevent==24.2.* captcha==0.6.* django_simple_captcha==0.6.* djangosaml2==1.9.* \
pysaml2==7.3.* pycryptodome==3.20.* cffi==1.17.0 python-ldap==3.4.*
```
=== "Ubuntu 22.04 / Debian 11"
```sh
sudo pip3 install future==1.0.* mysqlclient==2.1.* pillow==10.4.* sqlalchemy==2.0.* pillow_heif==0.18.0 \
gevent==24.2.* captcha==0.6.* django_simple_captcha==0.6.* djangosaml2==1.9.* \
pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 python-ldap==3.2.0
```
## Upgrade to 13.0 (for binary installation)
The following instruction is for binary package based installation. If you use Docker based installation, please see [*Updgrade Docker*](./upgrade_docker.md)
### 1) Clean database tables before upgrade
If you have a large number of `Activity` in MySQL, clear this table first [Clean Database](../../administration/clean_database). Otherwise, the database upgrade will take a long time.
### 2) Install new system libraries and Python libraries
Install new system libraries and Python libraries for your operation system as documented above.
### 3) Stop Seafile-11.0.x server
In the folder of Seafile 11.0.x, run the commands:
```sh
./seahub.sh stop
./seafile.sh stop
```
### 4) Run Seafile 12.0.x upgrade script
In the folder of Seafile 12.0.x, run the upgrade script
```sh
upgrade/upgrade_11.0_12.0.sh
```
### 5) Create the `.env` file in `conf/` directory
conf/.env
```env
TIME_ZONE=UTC
JWT_PRIVATE_KEY=xxx
SEAFILE_SERVER_PROTOCOL=https
SEAFILE_SERVER_HOSTNAME=seafile.example.com
SEAFILE_MYSQL_DB_HOST=db # your MySQL host
SEAFILE_MYSQL_DB_PORT=3306
SEAFILE_MYSQL_DB_USER=seafile
SEAFILE_MYSQL_DB_PASSWORD=<your MySQL 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
```
!!! tip
JWT_PRIVATE_KEY, A random string with a length of no less than 32 characters, can be generated by
```sh
pwgen -s 40 1
```
### 6) Start Seafile-12.0.x server
In the folder of Seafile 12.0.x, run the command:
```
./seafile.sh start # starts seaf-server
./seahub.sh start # starts seahub
```
### 7) (Optional) Upgrade notification server
### 8) (Optional) Upgrade SeaDoc from 1.0 to 2.0
## FAQ
We have documented common issues encountered by users when upgrading to version 12.0 in our FAQ <https://cloud.seatable.io/dtable/external-links/7b976c85f504491cbe8e/?tid=0000&vid=0000>.
If you encounter any issue, please give it a check.

View File

@ -1,201 +0,0 @@
# Upgrade notes for 7.1.x
These notes give additional information about changes.
Please always follow the main [upgrade guide](./upgrade.md).
## Important release changes
From 7.1.0 version, Seafile will depend on the Python 3 and is not compatible with Python 2.
Therefore you cannot upgrade directly from Seafile 6.x.x to 7.1.x.
**If your current version of Seafile is not 7.0.x, you must first download the 7.0.x installation package and upgrade to 7.0.x before performing the subsequent operations.**
To support both Python 3.6 and 3.7, we no longer bundle python libraries with Seafile package. You need to install most of the libraries by your own as bellow.
### Deploy Python3
Note, you should install Python libraries system wide using root user or sudo mode.
#### Seafile-CE
* For Ubuntu 16.04/18.04 or Debian 10
```sh
sudo apt-get install python3 python3-setuptools python3-pip memcached libmemcached-dev -y
sudo pip3 install --timeout=3600 Pillow==9.4.0 pylibmc captcha jinja2 sqlalchemy==1.3.8 \
django-pylibmc django-simple-captcha python3-ldap
```
* For CentOS 7/8
```sh
yum install python3 python3-setuptools python3-pip -y
sudo pip3 install --timeout=3600 Pillow==9.4.0 pylibmc captcha jinja2 sqlalchemy==1.3.8 \
django-pylibmc django-simple-captcha python3-ldap
```
#### Seafile-Pro
* For Ubuntu 16.04/18.04 or Debian 10
```sh
apt-get install python3 python3-setuptools python3-pip -y
sudo pip3 install --timeout=3600 Pillow==9.4.0 pylibmc captcha jinja2 sqlalchemy==1.3.8 \
django-pylibmc django-simple-captcha python3-ldap
```
* For CentOS 7/8
```sh
yum install python3 python3-setuptools python3-pip -y
sudo pip3 install --timeout=3600 Pillow==9.4.0 pylibmc captcha jinja2 sqlalchemy==1.3.8 \
django-pylibmc django-simple-captcha python3-ldap
```
### Upgrade to 7.1.x
1. Stop Seafile-7.0.x server.
2. Start from Seafile 7.0.x, run the script:
```sh
upgrade/upgrade_7.0_7.1.sh
```
3. Clear the Seahub cache:
```
rm -rf /tmp/seahub_cache # Clear the Seahub cache files from disk.
# If you are using the Memcached service, you need to restart the service to clear the Seahub cache.
systemctl restart memcached
```
4. Start Seafile-7.1.x server.
### Proxy Seafdav
After Seafile 7.1.x, Seafdav does not support Fastcgi, only Wsgi.
This means that if you are using Seafdav functionality and have deployed Nginx or Apache reverse proxy. You need to change Fastcgi to Wsgi.
#### For Nginx
For Seafdav, the configuration of Nginx is as follows:
```
.....
location /seafdav {
proxy_pass http://127.0.0.1:8080/seafdav;
proxy_set_header Host $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_read_timeout 1200s;
client_max_body_size 0;
access_log /var/log/nginx/seafdav.access.log seafileformat;
error_log /var/log/nginx/seafdav.error.log;
}
```
#### For Apache
For Seafdav, the configuration of Apache is as follows:
```
......
<Location /seafdav>
ProxyPass "http://127.0.0.1:8080/seafdav"
</Location>
```
### Builtin office file preview
The implementation of builtin office file preview has been changed. You should update your configuration according to:
<https://download.seafile.com/published/seafile-manual/deploy_pro/office_documents_preview.md#user-content-Version%207.1+>
### If you are using Ceph backend
If you are using Ceph storage backend, you need to install new python library.
On Debian/Ubuntu (Seafile 7.1+):
```
sudo apt-get install python3-rados
```
### Login Page Customization
If you have customized the login page or other html pages, as we have removed some old javascript libraries, your customized pages may not work anymore. Please try to re-customize based on the newest version.
### User name encoding issue with Shibboleth login
> Note, the following patch is included in version pro-7.1.8 and ce-7.1.5 already.
We have two customers reported that after upgrading to version 7.1, users login via Shibboleth single sign on have a wrong name if the name contains a special character. We suspect it is a Shibboleth problem as it does not sending the name in UTF-8 encoding to Seafile. (<https://issues.shibboleth.net/jira/browse/SSPCPP-2>)
The solution is to modify the code in seahub/thirdpart/shibboleth/middleware.py:
```
158 if nickname.strip(): # set nickname when it's not empty
159 p.nickname = nickname
to
158 if nickname.strip(): # set nickname when it's not empty
159 p.nickname = nickname.encode("iso-8859-1”).decode('utf8')
```
If you have this problem too, please let us know.
## FAQ
### SQL Error during upgrade
The upgrade script will try to create a missing table and remove an used index. The following SQL errors are jus warnings and can be ignored:
```
[INFO] updating seahub database...
/opt/seafile/seafile-server-7.1.1/seahub/thirdpart/pymysql/cursors.py:170: Warning: (1050, "Table 'base_reposecretkey' already exists")
result = self._query(query)
[WARNING] Failed to execute sql: (1091, "Can't DROP 'drafts_draft_origin_file_uuid_7c003c98_uniq'; check that column/key exists")
```
### Internal server error after upgrade to version 7.1
Please check whether the seahub process is running in your server. If it is running, there should be an error log in seahub.log for internal server error.
If seahub process is not running, you can modify conf/gunicorn.conf, change `daemon = True`  to `daemon = False`  , then run ./seahub.sh again. If there are missing Python dependencies, the error will be reported in the terminal.
The most common issue is that you use an old memcache configuration that depends on python-memcache. The new way is
```
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache'
```
The old way is
```
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
```

View File

@ -195,12 +195,12 @@ nav:
- Upgrade Seafile Docker: upgrade/upgrade_docker.md
- Upgrade Seafile Cluster: upgrade/upgrade_a_cluster.md
- Upgrade Seafile Cluster (binary): upgrade/upgrade_a_cluster_binary.md
- Upgrade notes for 7.1.x: upgrade/upgrade_notes_for_7.1.x.md
- Upgrade notes for 8.0.x: upgrade/upgrade_notes_for_8.0.x.md
- Upgrade notes for 9.0.x: upgrade/upgrade_notes_for_9.0.x.md
- Upgrade notes for 10.0.x: upgrade/upgrade_notes_for_10.0.x.md
- Upgrade notes for 11.0.x: upgrade/upgrade_notes_for_11.0.x.md
- Upgrade notes for 12.0.x: upgrade/upgrade_notes_for_12.0.x.md
- Upgrade notes for 13.0.x: upgrade/upgrade_notes_for_13.0.x.md
- Developing:
- Outline: develop/README.md
- How to Build Seafile: