diff --git a/manual/upgrade/upgrade_notes_for_13.0.x.md b/manual/upgrade/upgrade_notes_for_13.0.x.md new file mode 100644 index 00000000..74c841aa --- /dev/null +++ b/manual/upgrade/upgrade_notes_for_13.0.x.md @@ -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= +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 . + +If you encounter any issue, please give it a check. diff --git a/manual/upgrade/upgrade_notes_for_7.1.x.md b/manual/upgrade/upgrade_notes_for_7.1.x.md deleted file mode 100644 index 8a8e8593..00000000 --- a/manual/upgrade/upgrade_notes_for_7.1.x.md +++ /dev/null @@ -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: - -``` -...... - - ProxyPass "http://127.0.0.1:8080/seafdav" - - -``` - -### Builtin office file preview - -The implementation of builtin office file preview has been changed. You should update your configuration according to: - - - -### 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. () - -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', - -``` - - diff --git a/mkdocs.yml b/mkdocs.yml index 96952e58..4ffd4c96 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -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: