diff --git a/13.0/develop/server/index.html b/13.0/develop/server/index.html index 6a61c53b..8992bdf5 100644 --- a/13.0/develop/server/index.html +++ b/13.0/develop/server/index.html @@ -5709,7 +5709,7 @@ apt-get install -y nodejs python3 -m pip install --upgrade pip -pip3 install pytz jinja2 Django==5.2.* django-statici18n==2.3.* django_webpack_loader==1.7.* django_picklefield==3.1 django_formtools==2.4 django_simple_captcha==0.6.* djangosaml2==1.11.* djangorestframework==3.14.* python-dateutil==2.8.* pyjwt==2.10.* pycryptodome==3.23.* python-cas==1.6.* pysaml2==7.5.* requests==2.28.* requests_oauthlib==1.3.* future==1.0.* gunicorn==20.1.* mysqlclient==2.2.* qrcode==7.3.* pillow==11.3.* pillow-heif==1.0.* chardet==5.1.* cffi==1.17.1 captcha==0.7.* openpyxl==3.0.* Markdown==3.4.* bleach==5.0.* python-ldap==3.4.* sqlalchemy==2.0.* redis mock pytest pymysql==1.1.* configparser pylibmc django-pylibmc nose exam splinter pytest-django psd-tools lxml +pip3 install pytz jinja2 Django==5.2.* django-statici18n==2.3.* django_webpack_loader==1.7.* django_picklefield==3.1 django_formtools==2.4 django_simple_captcha==0.6.* djangosaml2==1.11.* djangorestframework==3.14.* python-dateutil==2.8.* pyjwt==2.10.* pycryptodome==3.23.* python-cas==1.6.* pysaml2==7.5.* requests==2.28.* requests_oauthlib==1.3.* future==1.0.* gunicorn==20.1.* mysqlclient==2.2.* qrcode==7.3.* pillow==11.3.* pillow-heif==1.0.* chardet==5.1.* cffi==1.17.1 captcha==0.7.* openpyxl==3.0.* Markdown==3.4.* bleach==5.0.* python-ldap==3.4.* sqlalchemy==2.0.* redis mock pytest pymysql==1.1.* configparser pylibmc django-pylibmc nose exam splinter pytest-django psd-tools lxml cairosvg==2.8.*

Install MariaDB and Create Databases

apt-get install -y mariadb-server
diff --git a/13.0/search/search_index.json b/13.0/search/search_index.json
index 4099d18f..20f1d1ea 100644
--- a/13.0/search/search_index.json
+++ b/13.0/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"Introduction","text":"

Seafile is an open source cloud storage system for file sync, share and document collaboration. SeaDoc is an extension of Seafile that providing a lightweight online collaborative document feature.

"},{"location":"#license","title":"LICENSE","text":"

The different components of Seafile project are released under different licenses:

  • Seafile iOS client: Apache License v2
  • Seafile Android client: GPLv3
  • Desktop syncing client: GPLv2
  • Seafile Server core: AGPLv3
  • Seahub (Seafile server Web UI): Apache License v2
"},{"location":"#contact-information","title":"Contact information","text":"
  • Twitter: @seafile https://twitter.com/seafile
  • Forum: https://forum.seafile.com
"},{"location":"404/","title":"404 - Page Not Found or Remove Permanently","text":"

The requested file was not found. If you are still using https://manual.seafile.com/xxx/, please move to https://manual.seafile.com/latest/xxx/ as this path has been deprecated. We apologize for the inconvenience caused.

"},{"location":"changelog/","title":"Changelog","text":""},{"location":"changelog/#changelogs","title":"Changelogs","text":"
  • Seafile Community Edition
  • Seafile Professional Edition
  • Seafile Sync Client
  • Seafile Drive Client (SeaDrive)
  • Seafile Android Client (Seadroid)
  • Seafile iOS Client
"},{"location":"administration/","title":"Administration","text":""},{"location":"administration/#enter-the-admin-panel","title":"Enter the admin panel","text":"

As the system admin, you can enter the admin panel by click System Admin in the popup of avatar.

"},{"location":"administration/#account-management","title":"Account management","text":"
  • Account management
"},{"location":"administration/#logs","title":"Logs","text":"
  • The location of log files
"},{"location":"administration/#backup-and-recovery","title":"Backup and Recovery","text":"

Backup and recovery:

  • Backup and recovery

Recover corrupt files after server hard shutdown or system crash:

  • Seafile FSCK

You can run Seafile GC to remove unused files:

  • Seafile GC
"},{"location":"administration/#clean-database","title":"Clean database","text":"
  • Clean database
"},{"location":"administration/#export-report","title":"Export report","text":"
  • Export report
"},{"location":"administration/account/","title":"Account Management","text":""},{"location":"administration/account/#user-management","title":"User Management","text":"

When you setup seahub website, you should have setup a admin account. After you logged in a admin, you may add/delete users and file libraries.

"},{"location":"administration/account/#how-to-change-a-users-id","title":"How to change a user's ID","text":"

Since version 11.0, if you need to change a user's external ID, you can manually modify database table social_auth_usersocialauth to map the new external ID to internal ID.

"},{"location":"administration/account/#resetting-user-password","title":"Resetting User Password","text":"

Administrator can reset password for a user in \"System Admin\" page.

In a private server, the default settings doesn't support users to reset their password by email. If you want to enable this, you have first to set up notification email.

"},{"location":"administration/account/#forgot-admin-account-or-password","title":"Forgot Admin Account or Password?","text":"

You may run reset-admin.sh script under seafile-server-latest directory. This script would help you reset the admin account and password. Your data will not be deleted from the admin account, this only unlocks and changes the password for the admin account.

Tip

Enter into the docker image, then go to /opt/seafile/seafile-server-latest

"},{"location":"administration/account/#user-quota-notice","title":"User Quota Notice","text":"

Under the seafile-server-latest directory, run ./seahub.sh python-env python seahub/manage.py check_user_quota , when the user quota exceeds 90%, an email will be sent. If you want to enable this, you have first to set up notification email.

"},{"location":"administration/auditing/","title":"Access log and auditing (Pro)","text":"

In the Pro Edition, Seafile offers four audit logs in system admin panel:

  • Login log
  • File access log (including access to shared files)
  • File update log
  • Permission change log

The audit log data is saved in seahub_db.

"},{"location":"administration/backup_recovery/","title":"Backup and Recovery","text":""},{"location":"administration/backup_recovery/#overview","title":"Overview","text":"

There are generally two parts of data to backup

  • Seafile library data
  • Databases

There are 3 databases:

  • ccnet_db: contains user and group information
  • seafile_db: contains library metadata
  • seahub_db: contains tables used by the web front end (seahub)
"},{"location":"administration/backup_recovery/#backup-steps","title":"Backup steps","text":"

The backup is a two step procedure:

  1. Backup the databases;
  2. Backup the seafile data directory;
"},{"location":"administration/backup_recovery/#backup-order-database-first-or-data-directory-first","title":"Backup Order: Database First or Data Directory First","text":"
  • backup data directory first, SQL later: When you're backing up data directory, some new objects are written and they're not backed up. Those new objects may be referenced in SQL database. So when you restore, some records in the database cannot find its object. So the library is corrupted.
  • backup SQL first, data directory later: Since you backup database first, all records in the database have valid objects to be referenced. So the libraries won't be corrupted. But new objects written to storage when you're backing up are not referenced by database records. So some libraries are out of date. When you restore, some new data are lost.

The second sequence is better in the sense that it avoids library corruption. Like other backup solutions, some new data can be lost in recovery. There is always a backup window. However, if your storage backup mechanism can finish quickly enough, using the first sequence can retain more data.

We assume your seafile data directory is in /opt/seafile for binary package based deployment (or /opt/seafile-data for docker based deployment). And you want to backup to /backup directory. The /backup can be an NFS or Windows share mount exported by another machine, or just an external disk. You can create a layout similar to the following in /backup directory:

/backup\n---- databases/  contains database backup files\n---- data/  contains backups of the data directory\n
"},{"location":"administration/backup_recovery/#backup-and-restore-for-binary-package-based-deployment","title":"Backup and restore for binary package based deployment","text":""},{"location":"administration/backup_recovery/#backing-up-databases","title":"Backing up Databases","text":"

It's recommended to backup the database to a separate file each time. Don't overwrite older database backups for at least a week.

Assume your database names are ccnet_db, seafile_db and seahub_db. mysqldump automatically locks the tables so you don't need to stop Seafile server when backing up MySQL databases. Since the database tables are usually very small, it won't take long to dump.

mysqldump -h [mysqlhost] -u[username] -p[password] --opt ccnet_db > /backup/databases/ccnet_db.sql.`date +\"%Y-%m-%d-%H-%M-%S\"`\n\nmysqldump -h [mysqlhost] -u[username] -p[password] --opt seafile_db > /backup/databases/seafile_db.sql.`date +\"%Y-%m-%d-%H-%M-%S\"`\n\nmysqldump -h [mysqlhost] -u[username] -p[password] --opt seahub_db > /backup/databases/seahub_db.sql.`date +\"%Y-%m-%d-%H-%M-%S\"`\n

mysqldump: command not found

You may encounter this problem on some machines with a minimal (from 10.5) or a newer (from 11.0) Mariadb server installed, of which the mysql* series of commands have been gradually deprecated. If you encounter this error, use the mariadb-dump command, such as:

mariadb-dump -h [mysqlhost] -u[username] -p[password] --opt ccnet_db > /backup/databases/ccnet_db.sql.`date +\"%Y-%m-%d-%H-%M-%S\"`\n\nmariadb-dump -h [mysqlhost] -u[username] -p[password] --opt seafile_db > /backup/databases/seafile_db.sql.`date +\"%Y-%m-%d-%H-%M-%S\"`\n\nmariadb-dump -h [mysqlhost] -u[username] -p[password] --opt seahub_db > /backup/databases/seahub_db.sql.`date +\"%Y-%m-%d-%H-%M-%S\"`\n
"},{"location":"administration/backup_recovery/#backing-up-seafile-library-data","title":"Backing up Seafile library data","text":"

The data files are all stored in the /opt/seafile directory, so just back up the whole directory. You can directly copy the whole directory to the backup destination, or you can use rsync to do incremental backup.

To directly copy the whole data directory,

cp -R /opt/seafile /backup/data/seafile-`date +\"%Y-%m-%d-%H-%M-%S\"`\n

This produces a separate copy of the data directory each time. You can delete older backup copies after a new one is completed.

If you have a lot of data, copying the whole data directory would take long. You can use rsync to do incremental backup.

rsync -az /opt/seafile /backup/data\n

This command backup the data directory to /backup/data/seafile.

"},{"location":"administration/backup_recovery/#restore-from-backup","title":"Restore from backup","text":"

Now supposed your primary seafile server is broken, you're switching to a new machine. Using the backup data to restore your Seafile instance:

  1. Copy /backup/data/seafile to the new machine. Let's assume the seafile deployment location new machine is also /opt/seafile.
  2. Restore the database.
  3. Since database and data are backed up separately, they may become a little inconsistent with each other. To correct the potential inconsistency, run seaf-fsck tool to check data integrity on the new machine. See seaf-fsck documentation.
"},{"location":"administration/backup_recovery/#restore-the-databases","title":"Restore the databases","text":"

Now with the latest valid database backup files at hand, you can restore them.

mysql -u[username] -p[password] ccnet_db < ccnet_db.sql.2013-10-19-16-00-05\nmysql -u[username] -p[password] seafile_db < seafile_db.sql.2013-10-19-16-00-20\nmysql -u[username] -p[password] seahub_db < seahub_db.sql.2013-10-19-16-01-05\n

mysql: command not found

You may encounter this problem on some machines with a minimal (from 10.5) or a newer (from 11.0) Mariadb server installed, of which the mysql* series of commands have been gradually deprecated. If you encounter this error, use the mariadb command, such as:

mariadb -u[username] -p[password] ccnet_db < ccnet_db.sql.2013-10-19-16-00-05\nmariadb -u[username] -p[password] seafile_db < seafile_db.sql.2013-10-19-16-00-20\nmariadb -u[username] -p[password] seahub_db < seahub_db.sql.2013-10-19-16-01-05\n
"},{"location":"administration/backup_recovery/#backup-and-restore-for-docker-based-deployment","title":"Backup and restore for Docker based deployment","text":""},{"location":"administration/backup_recovery/#structure","title":"Structure","text":"

We assume your seafile volumns path is in /opt/seafile-data. And you want to backup to /backup directory.

The data files to be backed up:

/opt/seafile-data/seafile/conf  # configuration files\n/opt/seafile-data/seafile/seafile-data # data of seafile\n/opt/seafile-data/seafile/seahub-data # data of seahub\n
"},{"location":"administration/backup_recovery/#backing-up-database","title":"Backing up Database","text":"
# It's recommended to backup the database to a separate file each time. Don't overwrite older database backups for at least a week.\ncd /backup/databases\ndocker exec -it seafile-mysql mariadb-dump  -u[username] -p[password] --opt ccnet_db > ccnet_db.sql\ndocker exec -it seafile-mysql mariadb-dump  -u[username] -p[password] --opt seafile_db > seafile_db.sql\ndocker exec -it seafile-mysql mariadb-dump  -u[username] -p[password] --opt seahub_db > seahub_db.sql\n

Tip

The default image of database is Mariadb 10.11 from Seafile 12, you may not be able to find these commands in the container (such as mysqldump: command not found), since commands of mysql* series have been gradually deprecated. So we recommend that you use the mariadb* series of commands.

However, if you still use the MySQL docker image, you should continue to use mysqldump here:

docker exec -it seafile-mysql mysqldump  -u[username] -p[password] --opt ccnet_db > ccnet_db.sql\ndocker exec -it seafile-mysql mysqldump  -u[username] -p[password] --opt seafile_db > seafile_db.sql\ndocker exec -it seafile-mysql mysqldump  -u[username] -p[password] --opt seahub_db > seahub_db.sql\n
"},{"location":"administration/backup_recovery/#backing-up-seafile-library-data_1","title":"Backing up Seafile library data","text":""},{"location":"administration/backup_recovery/#to-directly-copy-the-whole-data-directory","title":"To directly copy the whole data directory","text":"
cp -R /opt/seafile-data/seafile /backup/data/\n
"},{"location":"administration/backup_recovery/#use-rsync-to-do-incremental-backup","title":"Use rsync to do incremental backup","text":"
rsync -az /opt/seafile-data/seafile /backup/data/\n
"},{"location":"administration/backup_recovery/#recovery","title":"Recovery","text":""},{"location":"administration/backup_recovery/#restore-the-databases_1","title":"Restore the databases","text":"
docker cp /backup/databases/ccnet_db.sql seafile-mysql:/tmp/ccnet_db.sql\ndocker cp /backup/databases/seafile_db.sql seafile-mysql:/tmp/seafile_db.sql\ndocker cp /backup/databases/seahub_db.sql seafile-mysql:/tmp/seahub_db.sql\n\ndocker exec -it seafile-mysql /bin/sh -c \"mariadb -u[username] -p[password] ccnet_db < /tmp/ccnet_db.sql\"\ndocker exec -it seafile-mysql /bin/sh -c \"mariadb -u[username] -p[password] seafile_db < /tmp/seafile_db.sql\"\ndocker exec -it seafile-mysql /bin/sh -c \"mariadb -u[username] -p[password] seahub_db < /tmp/seahub_db.sql\"\n

Tip

The default image of database is Mariadb 10.11 from Seafile 12, you may not be able to find these commands in the container (such as mysql: command not found), since commands of mysql* series have been gradually deprecated. So we recommend that you use the mariadb* series of commands.

However, if you still use the MySQL docker image, you should continue to use mysql here:

docker exec -it seafile-mysql /bin/sh -c \"mysql -u[username] -p[password] ccnet_db < /tmp/ccnet_db.sql\"\ndocker exec -it seafile-mysql /bin/sh -c \"mysql -u[username] -p[password] seafile_db < /tmp/seafile_db.sql\"\ndocker exec -it seafile-mysql /bin/sh -c \"mysql -u[username] -p[password] seahub_db < /tmp/seahub_db.sql\"\n
"},{"location":"administration/backup_recovery/#restore-the-seafile-data","title":"Restore the seafile data","text":"
# Recommended: use rsync to restore, preserving ownership/permissions/ACL/xattrs.\n# Run a dry-run first to review the changes.\n# Dry-run (no changes made)\nsudo rsync -aHAX --dry-run --itemize-changes /backup/data/seafile/ /opt/seafile-data/seafile/\n\n# Restore (apply changes)\nsudo rsync -aHAX /backup/data/seafile/ /opt/seafile-data/seafile/\n\n# Optional: make the target an exact mirror of the backup\n# (will delete files present in the target but not in the backup;\n# add only after reviewing the dry-run output)\n# sudo rsync -aHAX --delete /backup/data/seafile/ /opt/seafile-data/seafile/\n

Note

Trailing \u201c/\u201d on the source means \u201ccopy the directory CONTENTS\u201d.

Run with sudo to preserve owners, groups, ACLs (-A) and xattrs (-X).

"},{"location":"administration/clean_database/","title":"Clean Database","text":""},{"location":"administration/clean_database/#session","title":"Session","text":"

Use the following command to clear expired session records in Seahub database:

cd seafile-server-latest\n./seahub.sh python-env python3 seahub/manage.py clearsessions\n

Tip

Enter into the docker image, then go to /opt/seafile/seafile-server-latest

"},{"location":"administration/clean_database/#use-clean_db_records-command-to-clean-seahub_db","title":"Use clean_db_records command to clean seahub_db","text":"

Use the following command to simultaneously clean up table records of Activity, sysadmin_extra_userloginlog, FileAudit, FileUpdate, FileHistory, PermAudit, FileTrash 90 days ago:

./seahub.sh python-env python3 seahub/manage.py clean_db_records\n

You can also clean these tables manually if you like as following.

"},{"location":"administration/clean_database/#activity","title":"Activity","text":"

Use the following command to clear the activity records:

use seahub_db;\nDELETE FROM Activity WHERE to_days(now()) - to_days(timestamp) > 90;\nDELETE FROM UserActivity WHERE to_days(now()) - to_days(timestamp) > 90;\n
"},{"location":"administration/clean_database/#login","title":"Login","text":"

Use the following command to clean the login records:

use seahub_db;\nDELETE FROM sysadmin_extra_userloginlog WHERE to_days(now()) - to_days(login_date) > 90;\n
"},{"location":"administration/clean_database/#file-access","title":"File Access","text":"

Use the following command to clean the file access records:

use seahub_db;\nDELETE FROM FileAudit WHERE to_days(now()) - to_days(timestamp) > 90;\n
"},{"location":"administration/clean_database/#file-update","title":"File Update","text":"

Use the following command to clean the file update records:

use seahub_db;\nDELETE FROM FileUpdate WHERE to_days(now()) - to_days(timestamp) > 90;\n
"},{"location":"administration/clean_database/#permisson","title":"Permisson","text":"

Use the following command to clean the permission change audit records:

use seahub_db;\nDELETE FROM PermAudit WHERE to_days(now()) - to_days(timestamp) > 90;\n
"},{"location":"administration/clean_database/#file-history","title":"File History","text":"

Use the following command to clean the file history records:

use seahub_db;\nDELETE FROM FileHistory WHERE to_days(now()) - to_days(timestamp) > 90;\n
"},{"location":"administration/clean_database/#clean-outdated-library-data","title":"Clean outdated library data","text":"

Since version 6.2, we offer command to clear outdated library records in Seafile database, e.g. records that are not deleted after a library is deleted. This is because users can restore a deleted library, so we can't delete these records at library deleting time.

./seahub.sh python-env python3 seahub/manage.py clear_invalid_repo_data\n

This command has been improved in version 10.0, including:

  1. It will clear the invalid data in small batch, avoiding consume too much database resource in a short time.

  2. Dry-run mode: if you just want to see how much invalid data can be deleted without actually deleting any data, you can use the dry-run option, e.g.

./seahub.sh python-env python3 seahub/manage.py clear_invalid_repo_data --dry-run=true\n
"},{"location":"administration/clean_database/#clean-library-sync-tokens","title":"Clean library sync tokens","text":"

There are two tables in Seafile db that are related to library sync tokens.

  • RepoUserToken contains the authentication tokens used for library syncing. Note that a separate token is created for every client (including sync client and SeaDrive.)
  • RepoTokenPeerInfo contains more information about each client token, such as client name, IP address, last sync time etc.

When you have many sync clients connected to the server, these two tables can have large number of rows. Many of them are no longer actively used. You may clean the tokens that are not used in a recent period, by the following SQL query:

delete t,i from RepoUserToken t, RepoTokenPeerInfo i where t.token=i.token and sync_time < xxxx;\n

xxxx is the UNIX timestamp for the time before which tokens will be deleted.

To be safe, you can first check how many tokens will be removed:

select * from RepoUserToken t, RepoTokenPeerInfo i where t.token=i.token and sync_time < xxxx;\n
"},{"location":"administration/export_report/","title":"Export Report","text":"

Since version 7.0.8 pro, Seafile provides commands to export reports via command line.

Tip

Enter into the docker image, then go to /opt/seafile/seafile-server-latest

"},{"location":"administration/export_report/#export-user-traffic-report","title":"Export User Traffic Report","text":"
cd seafile-server-latest\n./seahub.sh python-env python3 seahub/manage.py export_user_traffic_report --date 201906\n
"},{"location":"administration/export_report/#export-user-storage-report","title":"Export User Storage Report","text":"
cd seafile-server-latest\n./seahub.sh python-env python3 seahub/manage.py export_user_storage_report\n
"},{"location":"administration/export_report/#export-file-access-log","title":"Export File Access Log","text":"
cd seafile-server-latest\n./seahub.sh python-env python3 seahub/manage.py export_file_access_log --start-date 2019-06-01 --end-date 2019-07-01\n
"},{"location":"administration/logs/","title":"Seafile server logs","text":""},{"location":"administration/logs/#log-files-of-seafile-server","title":"Log files of seafile server","text":"
  • seafile.log: logs of seaf-server
  • seahub.log: logs from Django framework
  • fileserver.log: logs of the golang file server component
  • seafevents.log: logs for background tasks and office file conversion
  • seahub_email_sender.log: logs for periodically email sending of background tasks
"},{"location":"administration/logs/#log-files-for-seafile-background-node-in-cluster-mode","title":"Log files for seafile background node in cluster mode","text":"
  • seafile.log: logs of seaf-server
  • seafevents.log: Empty
  • seafile-background-tasks.log: logs for background tasks and office file convertion
  • seahub_email_sender.log: logs for periodically email sending of background tasks
"},{"location":"administration/logs/#log-files-for-seadoc-server","title":"Log files for seadoc server","text":"

The logs for seadoc server are located in the /opt/seadoc-data/logs directory.

  • sdoc-access.log: logs for recording each API request\u2019s method, URL, response status, and processing time to support access auditing and performance monitoring.
  • sdoc-access-slow.log: logs for sdoc-server's slow requests.
  • sdoc-server.log: logs for tracking the sdoc-server\u2019s periodic background save tasks to verify autosave behavior and service health.
  • sdoc-socket.log: logs for tracking real-time collaborative editing operations over the document WebSocket connection to monitor realtime sync performance and diagnose lag.
  • sdoc-socket-slow.log: logs for capturing collaborative editing socket operations that exceed the latency threshold to detect realtime performance bottlenecks and diagnose editing lag.
  • sdoc_operation_log_clean.log: logs for recording the periodic cleanup task that purges old operation_log records from the database to control log growth and maintain storage health.
  • seadoc-converter.log: logs for recording the scheduler activity of the seadoc-converter service\u2019s operation log cleanup job to verify the maintenance task is running on schedule.
"},{"location":"administration/logs/#log-files-for-seasearch-server","title":"Log files for SeaSearch server","text":"

The logs for seasearch server are located in the /opt/seasearch-data/log directory.

  • seasearch.log: logs for recording the SeaSearch service startup and runtime status to confirm the search engine is initialized and ready to serve requests.
  • seasearch-access.log: logs for recording incoming HTTP requests to the SeaSearch service to audit search/index queries and detect auth or access issues.
"},{"location":"administration/logs/#log-files-for-nginx","title":"Log files for Nginx","text":"

The logs for Nginx are located in the /opt/seafile-data/seafile/logs directory.

  • seahub.access.log: logs for recording HTTP/API access to the Seafile web interface for troubleshooting, auditing, and usage analysis.
  • seahub.error.log: logs for recording seahub errors.
  • seafhttp.access.log: logs for recording HTTP access to the seafhttp file server for troubleshooting, auditing, and usage analysis.
  • seafhttp.error.log: logs for recording seafhttp errors.
  • seafdav.access.log: logs for recording HTTP/WebDAV access and authentication attempts to the seafdav endpoint for troubleshooting, auditing, and usage analysis.
  • seafdav.error.log: logs for recording seafdav errors.
"},{"location":"administration/seafile_fsck/","title":"Seafile FSCK","text":"

On the server side, Seafile stores the files in the libraries in an internal format. Seafile has its own representation of directories and files (similar to Git).

With default installation, these internal objects are stored in the server's file system directly (such as Ext4, NTFS). But most file systems don't assure the integrity of file contents after a hard shutdown or system crash. So if new Seafile internal objects are being written when the system crashes, they can be corrupt after the system reboots. This will make part of the corresponding library not accessible.

Warning

If you store the seafile-data directory in a battery-backed NAS (like EMC or NetApp), or use S3 backend available in the Pro edition, the internal objects won't be corrupt.

Note

If your Seafile server is deployed with Docker, make sure you have enter the container before executing the following commands in this manual:

docker exec -it seafile bash\n

This is also required for the other scripts in this document.

We provide a seaf-fsck.sh script to check the integrity of libraries. The seaf-fsck tool accepts the following arguments:

cd /opt/seafile/seafile-server-latest\n./seaf-fsck.sh [--repair|-r] [--export|-E export_path] [repo_id_1 [repo_id_2 ...]]\n

There are three modes of operation for seaf-fsck:

  1. checking integrity of libraries.
  2. repairing corrupted libraries.
  3. exporting libraries.
"},{"location":"administration/seafile_fsck/#checking-integrity-of-libraries","title":"Checking Integrity of Libraries","text":"

Running seaf-fsck.sh without any arguments will run a read-only integrity check for all libraries.

./seaf-fsck.sh\n

If you want to check integrity for specific libraries, just append the library id's as arguments:

./seaf-fsck.sh [library-id1] [library-id2] ...\n

The output looks like:

[02/13/15 16:21:07] fsck.c(470): Running fsck for repo ca1a860d-e1c1-4a52-8123-0bf9def8697f.\n[02/13/15 16:21:07] fsck.c(413): Checking file system integrity of repo fsck(ca1a860d)...\n[02/13/15 16:21:07] fsck.c(35): Dir 9c09d937397b51e1283d68ee7590cd9ce01fe4c9 is missing.\n[02/13/15 16:21:07] fsck.c(200): Dir /bf/pk/(9c09d937) is corrupted.\n[02/13/15 16:21:07] fsck.c(105): Block 36e3dd8757edeb97758b3b4d8530a4a8a045d3cb is corrupted.\n[02/13/15 16:21:07] fsck.c(178): File /bf/02.1.md(ef37e350) is corrupted.\n[02/13/15 16:21:07] fsck.c(85): Block 650fb22495b0b199cff0f1e1ebf036e548fcb95a is missing.\n[02/13/15 16:21:07] fsck.c(178): File /01.2.md(4a73621f) is corrupted.\n[02/13/15 16:21:07] fsck.c(514): Fsck finished for repo ca1a860d.\n

The corrupted files and directories are reported in the above message. By the way, you may also see output like the following:

[02/13/15 16:36:11] Commit 6259251e2b0dd9a8e99925ae6199cbf4c134ec10 is missing\n[02/13/15 16:36:11] fsck.c(476): Repo ca1a860d HEAD commit is corrupted, need to restore to an old version.\n[02/13/15 16:36:11] fsck.c(314): Scanning available commits...\n[02/13/15 16:36:11] fsck.c(376): Find available commit 1b26b13c(created at 2015-02-13 16:10:21) for repo ca1a860d.\n

This means the head commit (current state of the library) recorded in database is not consistent with the library data. In such case, fsck will try to find the last consistent state and check the integrity in that state.

Tip

If you have many libraries, it's helpful to save the fsck output into a log file for later analysis.

"},{"location":"administration/seafile_fsck/#repairing-corruption","title":"Repairing Corruption","text":"

Corruption repair in seaf-fsck basically works in two steps:

  1. If the library state (commit) recorded in database is not found in data directory, find the last available state from data directory.
  2. Check data integrity in that specific state. If files or directories are corrupted, set them to empty files or empty directories. The corrupted paths will be reported, so that the user can recover them from somewhere else.

Running the following command repairs all the libraries:

./seaf-fsck.sh --repair\n

Most of time you run the read-only integrity check first, to find out which libraries are corrupted. And then you repair specific libraries with the following command:

./seaf-fsck.sh --repair [library-id1] [library-id2] ...\n

After repairing, in the library history, seaf-fsck includes the list of files and folders that are corrupted. So it's much easier to located corrupted paths.

"},{"location":"administration/seafile_fsck/#best-practice-for-repairing-a-library","title":"Best Practice for Repairing a Library","text":"

To check all libraries and find out which library is corrupted, the system admin can run seaf-fsck.sh without any argument and save the output to a log file. Search for keyword \"Fail\" in the log file to locate corrupted libraries. You can run seaf-fsck to check all libraries when your Seafile server is running. It won't damage or change any files.

When the system admin find a library is corrupted, he/she should run seaf-fsck.sh with \"--repair\" for the library. After the command fixes the library, the admin should inform user to recover files from other places. There are two ways:

  • Upload corrupted files or folders via the web interface
  • If the library was synced to some desktop computer, and that computer has a correct version of the corrupted file, resyncing the library on that computer will upload the corrupted files to the server.
"},{"location":"administration/seafile_fsck/#speeding-up-fsck-by-not-checking-file-contents","title":"Speeding up FSCK by not checking file contents","text":"

Starting from Pro edition 7.1.5, an option is added to speed up FSCK. Most of the running time of seaf-fsck is spent on calculating hashes for file contents. This hash will be compared with block object ID. If they're not consistent, the block is detected as corrupted.

In many cases, the file contents won't be corrupted most of time. Some objects are just missing from the system. So it's enough to only check for object existence. This will greatly speed up the fsck process.

To skip checking file contents, add the --shallow or -s option to seaf-fsck.

"},{"location":"administration/seafile_fsck/#exporting-libraries-to-file-system","title":"Exporting Libraries to File System","text":"

You can use seaf-fsck to export all the files in libraries to external file system (such as Ext4). This procedure doesn't rely on the seafile database. As long as you have your seafile-data directory, you can always export your files from Seafile to external file system. The command about this operation is

./seaf-fsck.sh --export top_export_path [library-id1] [library-id2] ...\n

The argument top_export_path is a directory to place the exported files. Each library will be exported as a sub-directory of the export path. If you don't specify library ids, all libraries will be exported.

Note

Currently only un-encrypted libraries can be exported. Encrypted libraries will be skipped.

"},{"location":"administration/seafile_fsck/#checking-file-size","title":"Checking file size","text":"

Starting from version 13.0.9, fsck has added an option to check whether the file size matches the actual file content. Some problematic clients may upload incorrect blocks, causing the actual file size to not match the file content. With this option, you can detect files with size mismatches, along with the method and time of their upload.

To check whether the file size matches, add the --check-file-size or -S option to seaf-fsck.

"},{"location":"administration/seafile_gc/","title":"Seafile GC","text":"

Seafile uses storage de-duplication technology to reduce storage usage. The underlying data blocks will not be removed immediately after you delete a file or a library. As a result, the number of unused data blocks will increase on Seafile server.

To release the storage space occupied by unused blocks, you have to run a \"garbage collection\" program to clean up unused blocks on your server.

The GC program cleans up two types of unused blocks:

  1. Blocks that no library references to, that is, the blocks belong to deleted libraries;
  2. If you set history length limit on some libraries, the out-dated blocks in those libraries will also be removed.
"},{"location":"administration/seafile_gc/#run-gc","title":"Run GC","text":"

Note

If your Seafile server is deployed with Docker, make sure you have enter the container before executing the script:

docker exec -it seafile bash\n

For all scripts in this document, is located in /opt/seafile/seafile-server-latest:

cd `/opt/seafile/seafile-server-latest # valid both Docker-base Seafile and binary-package-base Seafile\n

This is also required for the other scripts in this document.

"},{"location":"administration/seafile_gc/#dry-run-mode","title":"Dry-run Mode","text":"

To see how much garbage can be collected without actually removing any garbage, use the dry-run option:

./seaf-gc.sh --dry-run [repo-id1] [repo-id2] ...\n

The output should look like:

[03/19/15 19:41:49] seafserv-gc.c(115): GC version 1 repo My Library(ffa57d93)\n[03/19/15 19:41:49] gc-core.c(394): GC started. Total block number is 265.\n[03/19/15 19:41:49] gc-core.c(75): GC index size is 1024 Byte.\n[03/19/15 19:41:49] gc-core.c(408): Populating index.\n[03/19/15 19:41:49] gc-core.c(262): Populating index for repo ffa57d93.\n[03/19/15 19:41:49] gc-core.c(308): Traversed 5 commits, 265 blocks.\n[03/19/15 19:41:49] gc-core.c(440): Scanning unused blocks.\n[03/19/15 19:41:49] gc-core.c(472): GC finished. 265 blocks total, about 265 reachable blocks, 0 blocks can be removed.\n\n[03/19/15 19:41:49] seafserv-gc.c(115): GC version 1 repo aa(f3d0a8d0)\n[03/19/15 19:41:49] gc-core.c(394): GC started. Total block number is 5.\n[03/19/15 19:41:49] gc-core.c(75): GC index size is 1024 Byte.\n[03/19/15 19:41:49] gc-core.c(408): Populating index.\n[03/19/15 19:41:49] gc-core.c(262): Populating index for repo f3d0a8d0.\n[03/19/15 19:41:49] gc-core.c(308): Traversed 8 commits, 5 blocks.\n[03/19/15 19:41:49] gc-core.c(264): Populating index for sub-repo 9217622a.\n[03/19/15 19:41:49] gc-core.c(308): Traversed 4 commits, 4 blocks.\n[03/19/15 19:41:49] gc-core.c(440): Scanning unused blocks.\n[03/19/15 19:41:49] gc-core.c(472): GC finished. 5 blocks total, about 9 reachable blocks, 0 blocks can be removed.\n\n[03/19/15 19:41:49] seafserv-gc.c(115): GC version 1 repo test2(e7d26d93)\n[03/19/15 19:41:49] gc-core.c(394): GC started. Total block number is 507.\n[03/19/15 19:41:49] gc-core.c(75): GC index size is 1024 Byte.\n[03/19/15 19:41:49] gc-core.c(408): Populating index.\n[03/19/15 19:41:49] gc-core.c(262): Populating index for repo e7d26d93.\n[03/19/15 19:41:49] gc-core.c(308): Traversed 577 commits, 507 blocks.\n[03/19/15 19:41:49] gc-core.c(440): Scanning unused blocks.\n[03/19/15 19:41:49] gc-core.c(472): GC finished. 507 blocks total, about 507 reachable blocks, 0 blocks can be removed.\n\n[03/19/15 19:41:50] seafserv-gc.c(124): === Repos deleted by users ===\n[03/19/15 19:41:50] seafserv-gc.c(145): === GC is finished ===\n\n[03/19/15 19:41:50] Following repos have blocks to be removed:\nrepo-id1\nrepo-id2\nrepo-id3\n

If you give specific library ids, only those libraries will be checked; otherwise all libraries will be checked.

repos have blocks to be removed

Notice that at the end of the output there is a \"repos have blocks to be removed\" section. It contains the list of libraries that have garbage blocks. Later when you run GC without --dry-run option, you can use these libraris ids as input arguments to GC program.

"},{"location":"administration/seafile_gc/#removing-garbage","title":"Removing Garbage","text":"

To actually remove garbage blocks, run without the --dry-run option:

./seaf-gc.sh [repo-id1] [repo-id2] ...\n

If libraries ids are specified, only those libraries will be checked for garbage.

As described before, there are two types of garbage blocks to be removed. Sometimes just removing the first type of blocks (those that belong to deleted libraries) is good enough. In this case, the GC program won't bother to check the libraries for outdated historic blocks. The \"-r\" option implements this feature:

./seaf-gc.sh -r\n

Success

Libraries deleted by the users are not immediately removed from the system. Instead, they're moved into a \"trash\" in the system admin page. Before they're cleared from the trash, their blocks won't be garbage collected.

"},{"location":"administration/seafile_gc/#removing-fs-objects","title":"Removing FS objects","text":"

Since Pro server 8.0.6 and community edition 9.0, you can remove garbage fs objects. It should be run without the --dry-run option:

./seaf-gc.sh --rm-fs\n

Bug reports

This command has bug before Pro Edition 10.0.15 and Community Edition 11.0.7. It could cause virtual libraries (e.g. shared folders) failing to merge into their parent libraries. Please avoid using this option in the affected versions. Please contact our support team if you are affected by this bug.

"},{"location":"administration/seafile_gc/#using-multiple-threads-in-gc","title":"Using Multiple Threads in GC","text":"

You can specify the thread number in GC. By default,

  • If storage backend is S3/Swift/Ceph, 10 threads are started to do the GC work.
  • If storage backend is file system, only 1 thread is started.

You can specify the thread number in with \"-t\" option. \"-t\" option can be used together with all other options. Each thread will do GC on one library. For example, the following command will use 20 threads to GC all libraries:

./seaf-gc.sh -t 20\n

Since the threads are concurrent, the output of each thread may mix with each others. Library ID is printed in each line of output.

"},{"location":"administration/seafile_gc/#run-gc-based-on-library-id-prefix","title":"Run GC based on library ID prefix","text":"

Since GC usually runs quite slowly as it needs to traverse the entire library history. You can use multiple threads to run GC in parallel. For even larger deployments, it's also desirable to run GC on multiple server in parallel.

A simple pattern to divide the workload among multiple GC servers is to assign libraries to servers based on library ID. Since Pro edition 7.1.5, this is supported. You can add \"--id-prefix\" option to seaf-gc.sh, to specify the library ID prefix. For example, the below command will only process libraries having \"a123\" as ID prefix.

./seaf-gc.sh --id-prefix a123\n
"},{"location":"administration/seafile_metrics/","title":"Monitor Seafile with Prometheus","text":"

Seafile provides a standardized interface to expose system operational metrics, enabling integration with Prometheus and Grafana. This allows administrators to real-time monitor Seafile service status, including (but not limited to) I/O queue length and background task latency.

"},{"location":"administration/seafile_metrics/#configuration-steps","title":"Configuration Steps","text":"

To enable metric monitoring for Seafile, follow these steps:

"},{"location":"administration/seafile_metrics/#1-enable-metric-exposure","title":"1. Enable Metric Exposure","text":"

Edit the Seafile configuration file seahub_settings.py (located in the Seafile configuration directory) and add the following configuration items. If the items already exist, update their values accordingly:

# Enable the metric exposure function (set to True to activate)\nENABLE_METRIC = True\n\n# Authentication username\n# Used for HTTP Basic Authentication when accessing Seafile's metric endpoint\nMETRIC_AUTH_USER = \"your_prometheus_username\"\n\n# Authentication password corresponding to the above username\nMETRIC_AUTH_PWD = \"your_prometheus_password\"\n

Note

Replace your_prometheus_username and your_prometheus_password with custom credentials (recommend using strong, unique passwords for security).

"},{"location":"administration/seafile_metrics/#2-configure-prometheus","title":"2. Configure Prometheus","text":"

After completing the above Seafile configuration, Prometheus can retrieve Seafile metrics via the /metrics endpoint. Key requirements for such configuration:

  • Endpoint: Seafile\u2019s metric data is accessible at http://<seafile-server-ip>:<port>/metrics (replace <seafile-server-ip> and <port> with your Seafile server\u2019s actual IP and port).
  • Authentication: Use HTTP Basic Authentication and input the METRIC_AUTH_USER and METRIC_AUTH_PWD configured in Step 1.
  • Data Scraping: For tools like Prometheus, configure a scrape job to periodically pull data from the /metrics endpoint (refer to Prometheus documentation for details).

For detailed configuration guides of monitoring tools, refer to the official documentation below:

  • Prometheus Official Documentation - Configuration Learn how to set up Prometheus scrape jobs, data storage, and metric query rules.
  • Grafana Official Documentation - Prometheus Data Source Learn how to connect Grafana to Prometheus, create visual dashboards, and set up alert rules.
"},{"location":"administration/seafile_metrics/#effect-description","title":"Effect Description","text":"

Once the configuration is complete:

  1. Prometheus will periodically scrape Seafile metrics from the /metrics endpoint (based on the configured scrape interval).
  2. You can create custom visual dashboards in Grafana (e.g., \"Seafile Monitoring Dashboard\" ) to visualize metrics in real time.
  3. Alerts can be set up in Grafana (e.g., trigger an alert when Seafile storage usage exceeds 90%) to proactively monitor system health.
"},{"location":"administration/security_features/","title":"Security Questions","text":""},{"location":"administration/security_features/#how-is-the-connection-between-client-and-server-encrypted","title":"How is the connection between client and server encrypted?","text":"

Seafile uses HTTP(S) to syncing files between client and server (Since version 4.1.0).

"},{"location":"administration/security_features/#encrypted-library","title":"Encrypted Library","text":"

Seafile provides a feature called encrypted library to protect your privacy. The file encryption/decryption is performed on client-side when using the desktop client for file synchronization. The password of an encrypted library is not stored on the server. Even the system admin of the server can't view the file contents.

There are a few limitation about this feature:

  1. File metadata is NOT encrypted. The metadata includes: the complete list of directory and file names, every files size, the history of editors, when, and what byte ranges were altered.
  2. The client side encryption does currently NOT work while using the web browser and the cloud file explorer of the desktop client. When you are browsing encrypted libraries via the web browser or the cloud file explorer, you need to input the password and the server is going to use the password to decrypt the \"file key\" for the library (see description below) and cache the password in memory for one hour. The plain text password is never stored or cached on the server.
  3. If you create an encrypted library on the web interface, the library password and encryption keys will pass through the server. If you want end-to-end protection, you should create encrypted libraries from desktop client only.
  4. For encryption protocol version 4, each library use its own salt to derive key/iv pairs. However, all files within a library shares the same salt. Likewise, all the files within a library are encrypted with the same key/iv pair. With encryption protocol version 2, all libraries use the same salt, but separate key/iv pairs.
  5. Encrypted library doesn't ensure file integrity. For example, the server admin can still partially change the contents of files in an encrypted library. The client is not able to detect such changes to contents.

The client side encryption works on iOS client since version 2.1.6. The Android client support client side encryption since version 2.1.0. But since version 3.0.0, the iOS and Android clients drop support for client side encryptioin. You need to send the password to the server to encrypt/decrypt files.

"},{"location":"administration/security_features/#how-does-an-encrypted-library-work","title":"How does an encrypted library work?","text":"

When you create an encrypted library, you'll need to provide a password for it. All the data in that library will be encrypted with the password before uploading it to the server (see limitations above).

"},{"location":"administration/security_features/#encryptiondecryption-procedure","title":"Encryption/Decryption procedure","text":"

There are currently two supported encryption protocol versions for encrypted libraries, version 2 and versioin 4. The two versions shares the same basic procedure so we first describe the procedure.

  1. Generate a 32-byte long cryptographically strong random number. This will be used as the file encryption key (\"file key\").
  2. Encrypt the file key with the user provided password. We first use a secure hash algorithm to derive a key/iv pair from the password, then use AES 256/CBC to encrypt the file key. The result is called the \"encrypted file key\". This encrypted file key will be sent to and stored on the server. When you need to access the data, you can decrypt the file key from the encrypted file key.
  3. A \"magic token\" is derived from the password and library id, with the same secure hash algorithm. This token is stored with the library and will be use to check passwords before decrypting data later.
  4. All file data is encrypted by the file key with AES 256/CBC. We use PBKDF2-SHA256 with 1000 iterations to derive key/iv pair from the file key. After encryption, the data is uploaded to the server.

The only difference between version 2 and version 4 is on the usage of salt for the secure hash algorithm. In version 2, all libaries share the same fixed salt. In version 4, each library will use a separate and randomly generated salt.

"},{"location":"administration/security_features/#secure-hash-algorithms-for-password-verification","title":"Secure hash algorithms for password verification","text":"

A secure hash algorithm is used to derive key/iv pair for encrypting the file key. So it's critical to choose a relatively costly algorithm to prevent brute-force guessing for the password.

Before version 12, a fixed secure hash algorithm (PBKDF2-SHA256 with 1000 iterations) is used, which is far from secure for today's standard.

Since Seafile server version 12, we allow the admin to choose proper secure hash algorithms. Currently two hash algorithms are supported.

  • PBKDF2: The only available parameter is the number of iterations. You need to increase the the number of iterations over time, as GPUs are more and more used for such calculation. The default number of iterations is 1000. As of 2023, the recommended iterations is 600,000.
  • Argon2id: Secure hash algorithm that has high cost even for GPUs. There are 3 parameters that can be set: time cost, memory cost, and parallelism degree. The parameters are seperated by commas, e.g. \"2,102400,8\", which the default parameters used in Seafile. Learn more about this algorithm on https://github.com/P-H-C/phc-winner-argon2 .
"},{"location":"administration/security_features/#client-side-encryption-and-decryption","title":"Client-side encryption and decryption","text":"

The above encryption procedure can be executed on the desktop and the mobile client. The Seahub browser client uses a different encryption procedure that happens at the server. Because of this your password will be transferred to the server.

When you sync an encrypted library to the desktop, the client needs to verify your password. When you create the library, a \"magic token\" is derived from the password and library id. This token is stored with the library on the server side. The client use this token to check whether your password is correct before you sync the library. The magic token is generated by the secure hash algorithm chosen when the library was created.

For maximum security, the plain-text password won't be saved on the client side, too. The client only saves the key/iv pair derived from the \"file key\", which is used to decrypt the data. So if you forget the password, you won't be able to recover it or access your data on the server.

"},{"location":"administration/security_features/#why-fileserver-delivers-every-content-to-everybody-knowing-the-content-url-of-an-unshared-private-file","title":"Why fileserver delivers every content to everybody knowing the content URL of an unshared private file?","text":"

When a file download link is clicked, a random URL is generated for user to access the file from fileserver. This url can only be access once. After that, all access will be denied to the url. So even if someone else happens to know about the url, he can't access it anymore.

This was changed in Seafile server version 12. Instead of a random URL, a URL like 'https://yourserver.com/seafhttp/repos/{library id}/file_path' is used for downloading the file. Authorization will be done by checking cookies or API tokens on the server side. This makes the URL more cache-friendly while still being secure.

"},{"location":"administration/security_features/#how-does-seafile-store-user-login-password","title":"How does Seafile store user login password?","text":"

User login passwords are stored in hash form only. Note that user login password is different from the passwords used in encrypted libraries. In the database, its format is

PBKDF2SHA256$iterations$salt$hash\n

The record is divided into 4 parts by the $ sign.

  • The first part is the used hash algorithm. Currently we use PBKDF2 with SHA256. It can be changed to an even stronger algorithm if needed.
  • The second part is the number of iterations of the hash algorithm
  • The third part is the random salt used to generate the hash
  • The fourth part is the final hash generated from the password

To calculate the hash:

  • First, generate a 32-byte long cryptographically strong random number, use it as the salt.
  • Calculate the hash with PBKDF2(password, salt, iterations). The number of iterations is currently 10000.
"},{"location":"administration/two_factor_authentication/","title":"Two-Factor Authentication","text":"

Starting from version 6.0, we added Two-Factor Authentication to enhance account security.

There are two ways to enable this feature:

  • System admin can tick the check-box at the \"Password\" section of the system settings page, or

  • just add the following settings to seahub_settings.py and restart service.

    ENABLE_TWO_FACTOR_AUTH = True\nTWO_FACTOR_DEVICE_REMEMBER_DAYS = 30  # optional, default 90 days.\n

After that, there will be a \"Two-Factor Authentication\" section in the user profile page.

Users can use the Google Authenticator app on their smart-phone to scan the QR code.

"},{"location":"changelog/changelog-for-seafile-professional-server-old/","title":"Seafile Professional Server Changelog (old)","text":""},{"location":"changelog/changelog-for-seafile-professional-server-old/#71","title":"7.1","text":"

Upgrade

Please check our document for how to upgrade to 7.1.

"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7122-20210729","title":"7.1.22 (2021/07/29)","text":"
  • [fix] Fix a UI bug for setting sharing permission
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7121-20210713","title":"7.1.21 (2021/07/13)","text":"
  • Make file download link generated for OnlyOffice can be used by multiple times
  • Improve OnlyOffice integration logs
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7120-20210702","title":"7.1.20 (2021/07/02)","text":"
  • [fix] Fix a cache bug for OnlyOffice integration.
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7119-20210604","title":"7.1.19 (2021/06/04)","text":"
  • [fix] Fix a bug that some threads are set as daemon in seafevents
  • [fix] Improve performance in system admin listing users by removing some redundent code in fetching users' last active time
  • [fix] Fix a bug in password protected sharing link with direct download set (?dl=1)
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7118-20210513","title":"7.1.18 (2021/05/13)","text":"
  • [fix] Fix a bug in library list cache
  • [fix] Fix a webdav crash bug
  • [fix] Fix a library can't be synced immidiately after creating
  • [fix] disable max_sync_file_count and fs_id_list_request_timeout options by default
  • [fix] Fix office files can't be viewd with builtin office file preview (caused by incompatible JWT library version)
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7117-20210426","title":"7.1.17 (2021/04/26)","text":"
  • [fix] Fix manual file lock can't work
  • [fix] Fix webdav file range request
  • Improve OnlyOffice cache handling
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7116-20210419","title":"7.1.16 (2021/04/19)","text":"
  • [fix] Fix deleting libraries without owner in admin panel
  • Add an API to change a user's email
  • [fix] Fix a bug in storage migration script
  • [fix] Fix a bug that will cause fsck crash
  • [fix] Fix a XSS problem in notification

Potential breaking change in Seafile Pro 7.1.16: You can set the maximum number of files contained in a library that can be synced by the Seafile client. The default is 100000. When you download a repo, Seafile client will request fs id list, and you can control the timeout period of this request through fs_id_list_request_timeout configuration, which defaults to 5 minutes. These two options are added to prevent long fs-id-list requests from overloading the server. If you have large libraries on the server, this can cause \"internal server error\" returned to the client. You have to set a large enough limit for these two options.

[fileserver]\nmax_sync_file_count = 100000\nfs_id_list_request_timeout = 300\n
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7115-20210318","title":"7.1.15 (2021/03/18)","text":"
  • [fix] Fix sometimes uploading via API returning 400 error
  • Improve file locking handlering for OnlyOffice and Office Online integration
  • [fix] Fix sometimes traffic statistics not correct
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7114-20210226","title":"7.1.14 (2021/02/26)","text":"
  • Add importing group members via a xlsx file
  • [fix] Fix a bug in login via Shibboleth
  • [fix] Fix remote wipe
  • [fix] Fix setting a role's default quota via ADFS login
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7113-20210208","title":"7.1.13 (2021/02/08)","text":"
  • [fix] Fix file audit logs are not recorded if seaf-server restarted
  • [fix] Fix a crash bug in seaf-server
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7112-20210203","title":"7.1.12 (2021/02/03)","text":"
  • [fix] Fix listing more than 100+ users in group member management dialog
  • [fix] Fix guest invitation email sending problem
  • ccnet-server and seaf-server close database connection when there are errors
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7111-20210128","title":"7.1.11 (2021/01/28)","text":"
  • Add cache for listing libraries request from drive clients
  • Show users' last active time in admin panel
  • Library owner can unlock a file
  • Show image thumbnail in search result
  • WebDAV support range request
  • [fix] Fix WebDAV can't be used with secret when 2FA is enabled
  • [fix] Fix SSO users are not created after login when LDAP is also enabled
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7110-20200111","title":"7.1.10 (2020/01/11)","text":"
  • [fix] Fix user can't login in WebDAV via secret key after two-fa is turned on
  • [fix] Enable copy multiple folders/files in read-only libraries
  • [fix] Add back filter functions in admin file access logs
  • Enable setting work number in realtime backup
  • [fix] Fix a bug in multi-tenancy mode when transfer a library from a user to a department
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#719-20201202","title":"7.1.9 (2020/12/02)","text":"
  • [new] Add pagination when listing group/department members
  • [fix] Disable webdav for users that have 2fa enabled
  • [fix] Fix OnlyOffice JWT broken for public shared links / PR for fix available
  • [fix] Fix database crash will causing clients to unsync libraries
  • [fix] Fix webdav LOCK issue
  • [new, OnlyOffice] Pass user id to OnlyOffice
  • [fix] Fix check_user_quote command for LDAP users
  • [fix] Fix LIBRARY_TEMPLATES support
  • [fix] Fix Markdown print in Firefox
  • [fix] Fix a bug in OAuth
  • [fix] Remove unused rest_framework files
  • [fix] Fix a bug in getting file history
  • [new] Admin can delete pending invitations
  • [fix] Fix can not save markdown/text file for shared libraries with advanced permission control
  • [fix, multi-tenancy] Fix organization traffic stats seem to not work correctly
  • [fix, multi-tenancy] Fix orginization admin update user status error
  • [fix] Fix Affiliation-Role-Mapping not working
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#718-20201012","title":"7.1.8 (2020/10/12)","text":"
  • [fix] Fix user name encoding for Shibboleth SSO
  • [fix] Add back the remote wipe feature when deleting a linked devices in admin panel
  • [fix] Fix sorting problem in some tables in admin panel
  • [fix] Fix auto-reactive user when a user deleted from LDAP and then added back
  • [fix] Fix a few bugs in organization admin panel in multi-tenancy mode
  • [fix] Fix libraries unsynced in a client if database crash at the server side
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#717-20200828","title":"7.1.7 (2020/08/28)","text":"
  • [fix] Fix a bug in returned group library permission for SeaDrive client
  • Support pagination when listing libraries in a group
  • Update wsgidav used in WebDAV
  • Remove redundent logs in seafile.log
  • [fix] Fix \"save to...\" in share link
  • Add an option to show a user's email in sharing dialog (ENABLE_SHOW_CONTACT_EMAIL_WHEN_SEARCH_USER)
  • [fix] Fix virus scan results page can't be opened in system admin panel
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#716-20200728","title":"7.1.6 (2020/07/28)","text":"
  • Add database connection pool to reduce database connection usage
  • [fix] Fix WebDAV error if a file is moved immediately after uploading
  • Enable generating internal links for files in an encrypted library
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#715-20200630","title":"7.1.5 (2020/06/30)","text":"
  • Indexing LibreOffice files in file search
  • Support setting the expire date time of a share link to a specific date time
  • GC add --id-prefix option to scan a specific range of libraries
  • fsck add an option to not check block integrity to speed up scanning
  • [fix] ccnet no longer listen on port 10001
  • [fix] Fix virus scan via upload link not work
  • [fix] Fix WebDAV failed login via WebDAV secret
  • [fix] Fix some bugs in LDAP sync
  • [fix] Fix term and condition feature
  • [fix] Fix support for institution feature
  • Other UI fixes
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#714-20200514","title":"7.1.4 (2020/05/14)","text":"
  • [fix] Fix listing LDAP imported users when number of users is greater than 500
  • [fix] Fix visiting folder share links with password and default path
  • Use preview-and-download as default permission when generating share links
  • Support selecting and downloading multiple files in a sharing link
  • Show share link expiration time in system admin
  • [multi-tenancy] Support sorting for users and libraries in organization admin panel
  • FUSE extension now support multiple storage backends
  • [fix] Fix file download links in public libraries
  • [fix] fix seaf-backup-cmd.sh
  • Other UI improvements and fixes
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#713-20200408","title":"7.1.3 (2020/04/08)","text":"
  • A library admin can see all the shared links for a library
  • Sort libraries and users in admin panel
  • Delete all the users and libraries in an organization when deleting that organization
  • [fix] Fix some bugs in multiple storage backend feature
  • Other UI fixes
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#711-beta-20200227","title":"7.1.1 Beta (2020/02/27)","text":"
  • Fix full text search
  • Fix office file preview in cluster mode
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#710-beta-20200219","title":"7.1.0 Beta (2020/02/19)","text":"
  • Rewrite the system admin pages with React
  • Upgrade to Python3
  • Add library API Token, you can now generate API tokens for a library and use them in third party programs.
  • Add a feature abuse report for reporting abuse for download links.
  • Improved guest invitation: you can now invite a guest and share a library to the guest in one step.
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#70","title":"7.0","text":"

Since seafile-pro 7.0.0, we have upgraded Elasticsearch to 5.6. As Elasticsearch 5.6 relies on the Java 8 environment and can't run with root, you need to run Seafile with a non-root user and upgrade the Java version.

"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7019-20200907","title":"7.0.19 (2020/09/07)","text":"
  • Fix translation
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7018-20200521","title":"7.0.18 (2020/05/21)","text":"
  • Fix a bug in adding tag for files using context menu
  • Add missing translations for French language
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7017-20200428","title":"7.0.17 (2020/04/28)","text":"
  • Fix bug for EXTRA_ABOUT_DIALOG_LINKS
  • Modify the default permission to \"Download and preview\" for share links
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7016-20200401","title":"7.0.16 (2020/04/01)","text":"
  • Add progress dialog when moving files across libraries
  • Add more customization options (EXTRA_SHARE_DIALOG_NOTE, EXTRA_APP_BOTTOM_LINKS, EXTRA_ABOUT_DIALOG_LINKS)
  • [fix] Fix a bug with domain-name that contains \"file\" when previewing markdown file via share link
  • [fix] Do not show download link for a preview-only share link
  • [fix] Fix searching files in a public library for login users
  • Some UI improvements
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7015-deprecated","title":"7.0.15 (Deprecated)","text":""},{"location":"changelog/changelog-for-seafile-professional-server-old/#7014-20200306","title":"7.0.14 (2020/03/06)","text":"
  • [fix] Fix seaf-server crash problem when calculating library size for a corrupted library
  • [fix] Fix a bug when sending file update notice
  • Write virus scan log to file virus_scan.log
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7013-20200116","title":"7.0.13 (2020/01/16)","text":"
  • Fix Shibboleth login bug (added in 7.0.12)
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7012-20200110","title":"7.0.12 (2020/01/10)","text":"
  • Fix department support in multi-tenancy mode
  • Fix a performance problem when deleting cache files for resume file upload
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7011-20191115","title":"7.0.11 (2019/11/15)","text":"
  • set jvm.options in ElasticSearch to -Xms1g -Xmx1g
  • [fix] Fix revert library button missing in multi-tenancy mode
  • [fix] Remove redundant log OnlineOffice file lock is expired
  • [fix] Fix S3 support in multiple storage backend feature
  • [LDAP Sync] Support setting default permission for automatically created library for department
  • [LDAP Sync] Support get department name from a configured attribute
  • [fix] Fix support for Shibboleth single log out
  • [fix] Fix support for sharing a sub-folder in a department library
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#7010-20191022","title":"7.0.10 (2019/10/22)","text":"
  • [fix] Fix showing NaN when uploading a file with 0 size.
  • [fix] Fix email notifications for file changes not sent
  • [fix] Remove two redundant logs in seafile.log
  • [fix] Fix opening a shared library with special characters
  • [fix] Fix duplicated two-scrollbars when browsing a published library in Windows using Firefox
  • [fix] Users can now create sharing links for files with permission \"online-preview only\" and \"online-read-write\".
  • [fix] Fix links in email notification for a shared folder
  • [fix] Fix the path shown for public share links of folders
  • [fix] Fix a bug in loading a file's history
  • [fix] Fix a case when using SAML login with LDAP configured
  • [fix] Fix a bug that a broken library can't be deleted via web UI
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#709-20190920","title":"7.0.9 (2019/09/20)","text":"
  • [fix] Add institution admin back
  • [fix] Fix '\\n' in system wide notification will lead to blank page
  • [fix] Remove all metadata in docx template
  • [fix] Fix redirection after login
  • [fix] Fix group order is not alphabetic
  • [fix] Fix download button in sharing link
  • Mobile UI Improvement (Now all major pages can be used in Mobile smoothly)
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#708-20190826","title":"7.0.8 (2019/08/26)","text":"
  • Inviter can cancel invitation after the user has accepted the invitation. The user will be set as inactive.
  • Improve organization admin panel in multi-tenancy mode
  • Add notification when a user try to leave a page during file transfer
  • Add UI waiting notification when resetting a user's password in admin panel
  • Add generating internal link (smart-link) for folders
  • Add command line tool for admin to export reports
  • [fix] Fix file drag and drop in IE and Firefox
  • [fix] Add back the feature of letting user to select storage backend
  • Improve UI for file uploading, support re-upload after error
  • [fix] Fix devices login via Shibboleth not show in devices list
  • [fix] Fix support of OnlyOffice force-save option
  • [fix] Fix zip download when user selecting a long list of files
  • Other UI fixes
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#707-20190729","title":"7.0.7 (2019/07/29)","text":"
  • [fix] Fix a bug in multiple storage backend support
  • Fix avatar problem when deployed under non-root domain
  • Add get internal link in share dialog
  • Fix newly created DOCX files are not empty and have a Chinese font set as default font
  • Fix system does not send email to new user when adding new user in system admin
  • Fix thumbnail for TIFF files
  • Fix direct download link for sharing links
  • Fix report in statictics module has no file extension when downloading in Firefox
  • Fix \"Preview-only\" share link
  • Fix file comment
  • Other UI fixes
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#706-20190722","title":"7.0.6 (2019/07/22)","text":"
  • [fix] Fix a memcache bug when using S3 backend
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#705-20190716","title":"7.0.5 (2019/07/16)","text":"
  • [fix] Fix Zip download multiple files
  • [fix] Fix a bug in \"System Admin -> Logs -> File Update -> details\"
  • [fix] Fix there is an extra history item for newly created docs/pptx
  • [fix] Fix a bug in traffic statistics
  • [fix] Fix file modification report email are not sent out
  • Support show department libraries in fuse
  • Add expiring date for upload link
  • Add search feature in pubished libraries for anonymous users
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#704-20190705","title":"7.0.4 (2019/07/05)","text":"
  • UI Improvement and fixes
  • Fix file upload button with Safari, IE edge
  • Support setting history and cleaning trash for department libraries
  • Fix compatibility with \"Open library in web\" from the old version desktop client
  • Support \".\" in group name
  • Add back \"can edit\" permission for sharing links for office file
  • Add back \"send link\" for upload links
  • Add back grid view for folder sharing links
  • Support creating encrypted libraries for department libraries
  • Fix preview for PSD, TIFF files
  • Fix deleting of favorate items when they are shared items but the sharing are revoked
  • Fix avatar broken problem when using a non-stardard port
  • Fix resumable file uploading
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#703-20190613","title":"7.0.3 (2019/06/13)","text":"
  • UI fixes
  • Support index.md in published library
  • Add sub-folder permission for deparment libraries
  • Enable new file history by default
  • Make published library feature turned on by default
  • Fix IE Edge support
  • Fix LDAP group sync
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#702-beta-20190517","title":"7.0.2 beta (2019/05/17)","text":"
  • UI fixes
  • Support using different salt for each encrypted libraries
  • Add back sub-folder permission feature
  • Improved user's settings page and file search page
  • Support transfer personal library to department
  • Add pubishing library to role permission
  • [wopi] Pass last modified time to WOPI
  • Improve image resizing in Markdown
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#701-beta-20190418","title":"7.0.1 beta (2019/04/18)","text":"
  • Improved Markdown editor
  • Add columns view mode (Wiki view mode)
  • Add context menu
  • Realtime search
  • Support search libraries
  • Record file history to database for Markdown, Text and Docx, xlsx, pptx files
  • Redesigned activities page
  • Add preview-edit-on-cloud, preview-on-cloud permissions
  • Redesigned file tags
  • Support editing share link permission after creating a link
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#63","title":"6.3","text":"

In version 6.3, Django is upgraded to version 1.11. Django 1.8, which is used in version 6.2, is deprecated in 2018 April.

With this upgrade, the fast-cgi mode is no longer supported. You need to config Seafile behind Nginx/Apache in WSGI mode.

The way to run Seahub in another port is also changed. You need to modify the configuration file conf/gunicorn.conf instead of running ./seahub.sh start <another-port>.

Version 6.3 also changed the database table for file comments, if you have used this feature, you need migrate old file comments using the following commends after upgrading to 6.3:

./seahub.sh python-env seahub/manage.py migrate_file_comment\n

Note, this command should be run while Seafile server is running.

Version 6.3 changed '/shib-login' to '/sso'. If you use Shibboleth, you need to to update your Apache/Nginx config. Please check the updated document: shibboleth config v6.3

Version 6.3 add a new option for file search (seafevents.conf):

[INDEX FILES]\n...\nhighlight = fvh\n...\n

This option will make search speed improved significantly (10x) when the search result contains large pdf/doc files. But you need to rebuild search index if you want to add this option.

"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6314-20190521","title":"6.3.14 (2019/05/21)","text":"
  • [fix] Fix a bug in LDAP group sync
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6313-20190320","title":"6.3.13 (2019/03/20)","text":"
  • [fix] Fix some bugs in accessing S3 for some special configurations
  • [fix] Fix OnlyOffice integration when OnlyOffice using invalid CA
  • [fix] Fix sometimes users can't login into WebDAV
  • [fix] Fix a crash bug in realtime backup server
  • [fix] Fix the last modified time is not updated for shared sub-folders
  • [fix] Keep last modified time when moving or copying files from on library to another
  • [fix] Fix can't sync a sub-folder of a shared sub-folder
  • [fix] Fix URL in email notification for sub-folder shared event
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6312-20190221","title":"6.3.12 (2019/02/21)","text":"
  • [fix] Fix using WebDAV with Single Sign On
  • [fix] Fix a bug in importing users via excel file
  • Redirect users to home page after setting up 2FA
  • [fix] Fix can't send email when non-ascii symbols in filename in virus scan
  • [fix] Fix a bug in syncing LDAP when a user belong to multiple groups
  • Add slow log for accessing object storage for debugging purpose
  • [fix] Fix a SQL bug in multi-tenancy mode
  • Set the chunk size to 8MB during uploading files via chunk to speed up file transfer
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6311-20190115","title":"6.3.11 (2019/01/15)","text":"
  • [fix] Fix support for two-factor authentication using SMS
  • [fix] Fix support for traffic statistics
  • [fix] Improve performance for getting group library list
  • [fix] Fix file access audit log
  • Remove file count and size count for directories as it will lead to performance problem
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6310-20190102","title":"6.3.10 (2019/01/02)","text":"
  • [fix] Fix folder upload problem
  • [fix] Fix file audit page can't be load
  • [fix] Fix MIME type for .xls
  • Add RPC slow log
  • Add admin API for manage organizations in multi-tenancy mode
  • Add warning when close page during file uploading
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#639-20181213","title":"6.3.9 (2018/12/13)","text":"
  • Fix a seaf-server crash problem
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#638-20181210","title":"6.3.8 (2018/12/10)","text":"
  • Improve online PDF view for large PDF files (In the old version, a large PDF file consumes a lot of memory)
  • Admin can force a user to use two-factor authentication
  • Improve performance of upgdating a library's size and file numbers
  • Don't print a lot of \"Repo size compute queue is 0\"
  • Enable using WebDAV with Single Sign On (A new option ENABLE_WEBDAV_SECRET)
  • Enable login to WebDAV via contact email
  • [fix] A shared empty folder name will be updated if the folder's name is changed
  • Support preview for PSD and AI files
  • [fix] Fix license information display problem
  • [fix] Fix video preview for shared link on mobile browsers
  • Redirect old wiki URL to new wiki URL
  • Hide save as button for files viewed by Office Online Server
  • When a library be transfer to another user, don't clear the syncing tokens
  • Support syncing both department and groups at the same time in LDAP sync (deprecating old config options for department sync)
  • Set default quota for department synced from LDAP
  • Allow more independent LDAP configurations for multi-LDAP server sync
  • [fix] Fix problems when downloading large list of files via Zip download
  • [fix] Fix a performance problem when get the list of all groups
  • [fix] Can change history settings for library in admin area even if the change of history settings is disable for normal users
  • Make multi-threads mode as default for Seahub
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#637-20181016","title":"6.3.7 (2018/10/16)","text":"
  • [fix] Fix a bug of lock by online office
  • Anyone that can write a file can unlock the file if it is locked by online office
  • [fix] Fix a bug in sending mails in background node
  • [fix] Remove forcesave option in OnlyOffice since it have a bug
  • [fix] Fix a bug that wiki page can't be loaded
  • Add traffic statistics
  • [fix] Remove unnecessary logs in virus scan
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#636-20180921","title":"6.3.6 (2018/09/21)","text":"
  • [fix] Fix a bug in user defined role
  • [fix] Editable share link can be edited by anonymous user
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#635-20180918","title":"6.3.5 (2018/09/18)","text":"
  • [fix, security] Fix a security issue in Shibboleth authentication
  • [fix] Fix sometimes Web UI will not autoload a >100 item directory view
  • [fix] Fix sending notification emails in backend node
  • Showing user's name instead of email in web interface
  • [fix] Fix desktop client can't login if using ADFS

New features

  • Add a new sharing link permission \"can edit\" for docx/excel. Any login users can edit the file via share link.
  • [multi-tenancy] Support department and department owned library
  • Add system traffic statistics (showing the daily web download/web upload/sync traffic)
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#634-20180816","title":"6.3.4 (2018/08/16)","text":"
  • [fix] Fix a bug in creating group-owned library
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#633-20180815","title":"6.3.3 (2018/08/15)","text":"
  • [fix] Fix some bugs in sharing group-owned libraries
  • [fix] Fix a bug in setting folder permission
  • Update Django to 1.11.11
  • Support login via contact email
  • Support sharing a sub-folder in a group-owned library
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#632-20180730","title":"6.3.2 (2018/07/30)","text":"
  • [fix] Fix sometimes get group listing will cause ccnet-server crash
  • [fix] Fix built in office file preview can't works
  • Redirect '/shib-login' to '/sso'
  • Other small fixes
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#631-20180725","title":"6.3.1 (2018/07/25)","text":"
  • Add generating of internal links
  • Lock office files when editing via online office suite
  • Support setting organization quota, delete an organization via Web API
  • Support Swift storage backend Identity v3.0 API
  • Improve markdown editor
  • Several fixes
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#630-beta-20180628","title":"6.3.0 Beta (2018/06/28)","text":"
  • Support nested group and group-owned libraries
  • Keep sharing link when file or folder moved or renamed
  • Update Django to 1.11, remove fast-cgi support
  • Update jQuery to version 3.3.1
  • Update pdf.js, use pdf.js for preview pdf files
  • Docx files are converted to PDFs and preview via pdf.js in builtin preview
  • Support multiple storage backend to be used in a single server
  • [fix] Fix some bugs with OnlyOffice and CollaboraOffice
  • [fix] Use mobile version of OnlyOffice if viewed via mobile devices
  • Shared sub-folders can be searched
  • Show terms and condition link if terms and condition is enabled
  • Remove login log after delete a user
  • [admin] Support customize site title, site name, CSS via Web UI
  • [fix] Fix a bug that causing seaf-fsck crash
  • [fix] Cancel Zip download task at the server side when user close zip download dialog
  • [fix] Fix crash when seaf-fsck, seaf-gc receive wrong arguments
  • [fix] Fix a few bugs in realtime backup server
  • [beta] Wiki, users can create public wikis
  • Some other UI improvements
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#62","title":"6.2","text":"

From 6.2, It is recommended to use proxy mode for communication between Seahub and Nginx/Apache. Two steps are needed if you'd like to switch to WSGI mode:

  1. Change the config file of Nginx/Apache.
  2. Restart Seahub with ./seahub.sh start instead of ./seahub.sh start-fastcgi

The configuration of Nginx is as following:

location / {\n         proxy_pass         http://127.0.0.1:8000;\n         proxy_set_header   Host $host;\n         proxy_set_header   X-Real-IP $remote_addr;\n         proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;\n         proxy_set_header   X-Forwarded-Host $server_name;\n         proxy_read_timeout  1200s;\n\n         # used for view/edit office file via Office Online Server\n         client_max_body_size 0;\n\n         access_log      /var/log/nginx/seahub.access.log;\n         error_log       /var/log/nginx/seahub.error.log;\n    }\n

The configuration of Apache is as following:

    # seahub\n    SetEnvIf Authorization \"(.*)\" HTTP_AUTHORIZATION=$1\n    ProxyPass / http://127.0.0.1:8000/\n    ProxyPassReverse / http://127.0.0.1:8000/\n
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6213-2018518","title":"6.2.13 (2018.5.18)","text":"
  • [new] Support only return files or folders when search file via api.
  • [fix] Fix notification display behavior bug on some page.
  • [fix] Recreate folder when failed because of file already exists error for the first time.
  • [fix] Fix bug of saving file via onlyoffice.
  • [fix] Fix bug when set user\u2019s reference id to \u2018\u2019 via admin api.
  • [fix] Fix bug of group info page display in organization admin panel.
  • [improve] Disable full email search if current user is a guest user.
  • [improve] Return library type when search file via api.
  • [improve] Add user auth info to cookie when login via OAuth.
  • [improve] Return timestamp instead of time string when get user clean up library trash event via api.
  • [improve] Check quota when copy/move file/folder.
  • [improve] Distinguish file or folder when send library/folder share notice/email.
  • [improve] Sort by parent folder\u2019s name when get file/folder recursively.
  • [improve] Remove unused Python imports in ADFS module.
  • [improve] Optimizate library udpate event.
  • [improve] Remove seahub gunicorn access log.
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6212-2018420","title":"6.2.12 (2018.4.20)","text":"
  • [fix] Fix a bug in seafevents
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6211-2018419","title":"6.2.11 (2018.4.19)","text":"
  • Update multi storage backend feature, add STORAGE_CLASS_MAPPING_POLICY setting.
  • [fix] Fix bug when search file by path.
  • [fix] A user that can't create a library can sync a sub-folder of a library now.
  • Add title when view file via OOS.
  • Check if enable LIBRARY_TEMPLATES feature when creating library.
  • [api] Enable return all files recursively under a folder.
  • Preserve share links when admin transfer a library from a user to another user.
  • Add setting to disable user change password.
  • Add setting to disable group dissussion.
  • Add setting to disable file comment.
  • Restart both ccnet-server and seaf-server if seaf-server is down.
  • Fix a bug that some cases elasticsearch be started repeatly.
  • Don\u2019t start seafile if failed to mount http-temp dir.
  • Don\u2019t deactive user if failed to get users from ldap server.
  • [fix] Fix online preview can't work in background node caused by wrong Python path.
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6210-2018320","title":"6.2.10 (2018.3.20)","text":"
  • Improve performance of file search
  • [fix] Fix a bug in daily active user statistics
  • [fix] Fix copy files larger than 2GB via seaf-fuse
  • Show 403 error when visit share link if share link creator no longer has access permission to library.
  • [api] Add api for uploading file via upload share link.
  • [api] Support search file/folder in a specific library and folder via api.
  • [fix] Fix bug in folder renaming operation list on activities page.
  • [fix] Fix bug when creating personal/group wiki.
  • [fix] Fix bug when searching specific extension file.
  • [fix] Fix a bug in Two-Factor Authentication.
  • [fix] Fix bug when getting encrypted library history.
  • [fix] Fix UI bug of \"New Library\" and \"More\" buttons.
  • [fix] Fix bug of using truncated image file as avatar.
  • Change value of per_page parameter to 10 when search file via api.
  • Support indexing files in background after file uploading via API
  • Add user clean library trash event to activities
  • Use inner fileserver url to save file when edit office via OOS.
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#629-20180210","title":"6.2.9 (2018.02.10)","text":"
  • [fix] Support setting region for Swift backend
  • [fix] Notify the admin when an invited people registered
  • [new, api] Add API for cleaning trash
  • [fix, api] Fix permission check in search API
  • [fix] Remove redundant warning message in seahub.log
  • [fix] Add API for upload files via upload link
  • [fix] Fix inconsistency in showing user's space usage in multi-tenancy mode
  • [new] Add online preview for SVG files
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#628-20180202","title":"6.2.8 (2018.02.02)","text":"
  • [fix] Fix command pro/pro.py --test
  • All logs that went to seahub_django_request.log go to seahub.log
  • Print gunicorn error to runtime/error.log
  • [fix] Don't allow to generate share links via API for encrypted libraries
  • [new] Support online preview for tiff and eps files
  • [new, api] Add api to allow admin to copy files between libraries
  • [new] Allow system admin to share a library as \"admin\" to another user in admin panel
  • Other UI fixes and improvements
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#627-20180122","title":"6.2.7 (2018.01.22)","text":"
  • [fix, important] Fix a performance bug in search index
  • [fix, important] Fix a memory leak in listing folder with locked files
  • [fix] Fix creating of demo account
  • [new] Notify the inviter when a guest register
  • [new] Add the feature \"remember this device\" after two-factor authentication
  • [new] Don't allow to move, delete or rename a file when a file is locked
  • [new] Add option to notify the admin after new user registration (NOTIFY_ADMIN_AFTER_REGISTRATION)
  • [new, ui] Support inviting multiple guests at once
  • [new] Support customize the list of groups that a user can see when sharing a library
  • [new, api] Support search files in my libraries, shared libraries, shared to all libraries
  • [fix] Fix OAuth bug
  • [fix] Fix a bug that file preview can't work in Debian 9
  • [fix, multi-tenancy] Fix permission of a shared sub-folder can't be changed
  • [fix] Fix a bug in modify permission for a shared sub-folder
  • [fix] Improve performance in checking folder permission and file lock
  • [fix] Improve the performance of returning a user's all group libraries
  • [fix] Fix support for uploading 500+ files via web interface (caused by API rate throttle)
  • [fix] Fix API get_shared_repo_by_path()
  • [fix] Add more log when failed to zip a file
  • Don't use memcache when read object in the Python part
  • Update license file check
  • [multi-tenancy, api] Return origin_repo_name when listing libraries
  • Add cancel zip download API
  • [fix] Fix some configuration bugs in seafevents module
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#625-626-deprecated","title":"6.2.5, 6.2.6 (deprecated)","text":""},{"location":"changelog/changelog-for-seafile-professional-server-old/#624-20171220","title":"6.2.4 (2017.12.20)","text":"
  • [fix] Fix a bug in file search index clearing command
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#623-20171219","title":"6.2.3 (2017.12.19)","text":"
  • [fix] Fix a bug in file search indexing.
  • [fix, admin] Fix a bug of statistic module in a cluster.
  • [new, admin] Support search share link.
  • [improve, ui] Add transition to show/hide of feedback messages.
  • Other small UI improvements.
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#622-20171212","title":"6.2.2 (2017.12.12)","text":"
  • [improve] Improve performance of file history page.
  • [improve] show be shared folders when copy/move file/folder to \u201cOther Libraries\u201d.
  • [improve] Remove the white edge of webpage when previewing file via OnlyOffice.
  • [improve] Show two file history records at least.
  • [multi-tenancy] fix bug when listing libraries/folders shared to group.
  • [multi-tenancy] fix bug when deleting an organization.
  • [fix] fix bug when previewing excel file with \u201c&\u201d character in its name.
  • [fix] Don\u2019t check if user exists when deleting a group memeber in admin panel.
  • [oauth] Don\u2019t overwrite public registration settings when login an unexisted user.
  • [audit] Recording file access/update log when preview/edit a file via OnlyOffice.
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#621-beta-20171122","title":"6.2.1 beta (2017.11.22)","text":"
  • [new] Support OAuth.
  • [new] Support Swift v1 protocol.
  • [new, admin] Add option to turn on statistic module
  • [new] Enable publish library update events to message queue (like Redis)
  • [improve, ui] Add \"click to select\" feature for download/upload links.
  • [improve, ui] improved accessibility for some form elements, such as login inputs, and etc.
  • [improve, api] Add repo_owner field to library search web api.
  • [improve, admin] Show/edit contact email in admin panel.
  • [improve, admin] Show upload links in admin panel.
  • [improve, admin] Improve license display.
  • [improve, admin] Share with admin permission recorded in audit log.
  • [improve, admin] Add permission audit log when remove library from group.
  • [improve, search] Set timeout for extracting contents from doc/pdf.
  • [improve, search] Search indexing no longer depend on Seafile service. It reads information from database directly.
  • [fix] Fix Shibboleth login redirection issue, see https://forum.seafile.com/t/shared-links-via-shibboleth/4067/19
  • [fix] In some case failed to unshare a folder.
  • [fix] LDAP search issue.
  • [fix] Fix Safari downloaded file names are encoded like 'test-%2F%4B.doc' if it contains special characters.
  • [fix] Disable client encrypt library creation when creating encrypt library is disabled on server.
  • [fix] Failed to get snapshot labels when libraries are deleted.
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#620-beta-20171016","title":"6.2.0 beta (2017.10.16)","text":"
  • Add report charts for daily active users, daily file operations, and usage space
  • Add \"admin\" permision when sharing a library to another user/group
  • Redesign login page, adding a background image.
  • Clean the list of languages
  • Add the ability of tagging a snapshot of a library (Use ENABLE_REPO_SNAPSHOT_LABEL = True to turn the feature on)
  • [admin] Add an option to enable users to share a library to any groups in the system.
  • Use WSGI as the default mode for deploying Seahub.
  • Add a field Reference ID to support changing users primary ID in Shibboleth or LDAP
  • Improved performance of loading library list
  • Use multi-threads in search indexing
  • [fix] Fix a bug when indexing a PDF larger than 10MB
  • Support adding a custom user search function (https://github.com/haiwen/seafile-docs/commit/115f5d85cdab7dc272da81bcc8e8c9b91d85506e)
  • Other small UI improvements
  • [fix] Fix ADFS support
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#61","title":"6.1","text":"

You can follow the document on minor upgrade.

"},{"location":"changelog/changelog-for-seafile-professional-server-old/#619-20170928","title":"6.1.9 \uff082017.09.28\uff09","text":"
  • [fix] Fix some bugs in realtime backup server
  • Add option to set up Seafile HTTP server thread number
  • [fix] Fix create new file API when create a file with a same name with exist file
  • [fix] Fix a bug in permission check in file syncing
  • Add more detailed log information when permission check error
  • [fix] Add log to the size of queue of library size calculation
  • [fix] Use customized logo when sending email notifications
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#618-20170818","title":"6.1.8 (2017.08.18)","text":"
  • [fix] Fix license checking
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#617-20170817","title":"6.1.7 (2017.08.17)","text":"
  • [fix] Fix a bug when concurrent uploading/creating files (in the old version, when a user uploading/deleting multiple files in cloud file browser, it had a high chance to get \u201cinternal server error\u201d message)
  • [fix] Fix thumbnails for some images that 90 degrees rotated
  • [fix] Fix support for resumable file upload
  • [fix] Fix MySQL connection pool in Ccnet
  • [fix] Use original GIF file when view GIF files
  • [fix, api] Check if name is valid when creating folder/file
  • Remove deleted libraries in search index
  • Use 30MB as the default value of THUMBNAIL_IMAGE_SIZE_LIMIT
  • [api] Improve performance when move or copy multiple files/folders
  • [admin] Support syncing user role from AD/LDAP attribute (ldap role sync)
  • [admin] Support deleting all outdated invitations at once
  • [admin] Improve access log
  • [admin] Support upload seafile-license.txt via web interface (only for single machine deployment)
  • [admin] Admin can cancel two-factor authentication of a user
  • [admin, role] Show user\u2019s role in LDAP(Imported) table
  • [admin, role] Add wildcard support in role mapping for Shibboleth login
  • [admin] Improve performance in getting total file number, used space and total number of devices
  • [admin] Admin can add users to an institution via Web UI
  • [admin] Admin can choose a user\u2019s role when creating a user
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#614-20170711","title":"6.1.4 (2017.07.11)","text":"
  • [api] Improve performance of getting unread notifications.
  • Delete deleted libraries in search index
  • Use user's languange as lang setting for OnlyOffice
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#613-20170706","title":"6.1.3 (2017.07.06)","text":"
  • Add context menu \"details\" to libraries and folders, so you can get how many files in a library or a folder.
  • Improve search result accuracy
  • [fix] Fix a bug in zip downloading an empty folder
  • Improve performance of multiple file copy and move
  • Admin can delete out-dated guest invitations
  • [fix] Fix a bug in seafile-gc \"dry run\" option
  • Users can restore deleted libraries by their own
  • Change default block size for files uploaded via web browser to 8MB.
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#612-deprecated","title":"6.1.2 (deprecated)","text":""},{"location":"changelog/changelog-for-seafile-professional-server-old/#611-20170619","title":"6.1.1 (2017.06.19)","text":"
  • Add \"online preview only\" option to share links
  • Enable setting favicon and logo via admin panel
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#610-beta-20170606","title":"6.1.0 beta (2017.06.06)","text":"

Web UI Improvement:

  1. Add thumbnail for video files (turn off by default)
  2. Improved image file view, using thumbnail to view pictures
  3. Move items by drap & drop
  4. Add create docx/xlsx/pptx in web interface
  5. Add OnlyOffice integration
  6. Show which client modify a file in history, this will help to find which client accidentally modified a file or deleted a file.

Improvement for admins:

  1. Admin can set default quota for each role
  2. Admin can set user\u2019s quote, delete users in bulk in admin panel
  3. Support using admin panel in mobile platform
  4. Add translation for settings page
  5. Add admin operation logs
  6. Admin can change users' login_id in web interface
  7. Admin can create libraries in admin panel
  8. Admin can set logo and favicon in admin panel

System changes:

  1. Remove wiki by default (to turn it on, set ENABLE_WIKI = True in seahub_settings.py)
  2. Upgrade Django to 1.8.18
  3. Clean Ajax API
  4. Increase share link token length to 20 characters
  5. Upgrade jstree to latest version
  6. Update ElasticSearch to 2.4.5
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#60","title":"6.0","text":"

You can follow the document on minor upgrade.

Special note for upgrading a cluster:

In version 6.0, the folder download mechanism has been updated. This requires that, in a cluster deployment, seafile-data/httptemp folder must be in an NFS share. You can make this folder a symlink to the NFS share.

cd /data/haiwen/\nln -s /nfs-share/seafile-httptemp seafile-data/httptemp\n

The httptemp folder only contains temp files for downloading/uploading file on web UI. So there is no reliability requirement for the NFS share. You can export it from any node in the cluster.

"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6013-20170508","title":"6.0.13 (2017.05.08)","text":"
  • [fix] Fix in file moving/copying dialog, self-owned libraries are not listed
  • [fix] Fix files in self-owned libraries are not listed when searching files in all libraries
  • Update timestamp in about dialog
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6012-20170417","title":"6.0.12 (2017.04.17)","text":"
  • Improve performance when checking group shared library permission
  • [fix] Fix image popup in favourite page
  • [fix] Fix generating sharing link with expiring time in file detailed view page
  • [fix] Don't allow to create library with '/' in name
  • [fix] Fix two-factor authentication
  • Add script to migrate between different storage backend
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#6011-deprecated","title":"6.0.11 (Deprecated)","text":""},{"location":"changelog/changelog-for-seafile-professional-server-old/#6010-20170407","title":"6.0.10 (2017.04.07)","text":"
  • [fix] Fix a bug in listing libraries in admin panel
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#609-20170401","title":"6.0.9 (2017.04.01)","text":"
  • Show user' name instead of user's email in notifications sent out by email
  • Add config items for setting favicon, disable wiki feature
  • Add css id to easily hide user password reset and delete account button
  • [fix] Fix UI bug in restoring a file from snapshot
  • [fix] Fix after renaming a file, the old versions before file rename can't be downloaded
  • [security] Fix XSS problem of the \"go back\" button in history page and snapshot view page
  • [fix] Fix crash problem of seaf-import
  • Add API to create/delete/modify an account in Org
  • [ad/ldap sync] Support import posix group
  • [fix] Fix Office Web App co-authoring problems when opening file in a shared sub-folder
  • [fix] Fix \"IE 9 not supported\" popup message not showing
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#608-20170223","title":"6.0.8 (2017.02.23)","text":"

Improvement for admin

  • Admin can add/delete group members
  • Admin can create group in admin panel
  • Force users to change password if imported via csv
  • Support set user's quota, name when import user via csv
  • Set user's quota in user list page
  • Add search group by group name
  • Use ajax when deleting a user's library in admin panel
  • Support logrotate for controller.log
  • Add a log when a user can't be find in LDAP during login, so that the system admin can know whether it is caused by password error or the user can't be find
  • Delete shared libraries information when deleting a user
  • Add admin API to create default library for a user
  • [ldap-sync] Support syncing users from AD/LDAP as inactive user

Other

  • [fix] Fix user search when global address book is disabled in CLOUD_MODE
  • [fix] Avoid timeout in some cases when showing a library trash
  • Show \"the account is inactive\" when an inactive account try to login
  • [security] Remove viewer.js to show open document files (ods, odt) because viewer.js is not actively maintained and may have potential security bugs
  • [fix] Exclude virtual libraries from storage size statistics
  • [fix] Fix mysql gone away problem in seafevents
  • Add region config option for Swift storage backend
  • [anti-virus] Send notification to the library owner if a virus is found
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#607-20170118","title":"6.0.7 (2017.01.18)","text":"
  • Set users role from Shibboleth affiliation attribute (shibboleth config, search \"Affiliation and user role\")
  • [fix] Uploading files with special names lets seaf-server crash
  • [fix] Fix reading database connection pool setting from ccnet.conf and seafile.conf
  • [fix] Fix total storage integer overflow, which is shown at the info page of admin panel)
  • [fix] Fix the password reset email gets send to the primary account email instead of the contact email of the profile.
  • [fix] Do not check path existence when delete user/group folder permission
  • Support ADFS
  • [fix] Invitation email subject does not get translated
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#606-20170111","title":"6.0.6 (2017.01.11)","text":"
  • Guest invitation: Prevent the same address can be invited multiple times by the same inviter and by multiple inviters
  • Guest invitation: Add an regex to prevent certain email addresses be invited (see roles permissions)
  • Office online: support co-authoring
  • Admin can set users' department and name when creating users
  • Show total number of files and storage in admin info page
  • Show total number of devices and recently connected devices in admin info page
  • Delete shared libraries information when deleting a user
  • Upgrade Django to 1.8.17
  • Admin can create group in admin panel
  • [fix] Fix quota check: users can't upload a file if the quota will be exceeded after uploading the file
  • [fix] Fix quota check when copy file from one library to another
  • Add # -*- coding: utf-8 -*- to seahub_settings.py, so that admin can use non-ascii characters in the file.
  • [fix] Prevent admin from access group's wiki
  • [fix] Prevent transfering libraries to guest account
  • [fix] Prevent guest accout to create share link via API v2
  • Add a log when a user can't be find in LDAP during login, so that the system admin can know whether it is caused by password error or the user can't be find
  • Ingore white space character in the end of lines in ccnet.conf
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#605-20161219","title":"6.0.5 (2016.12.19)","text":"
  • [fix] Fix generating of password protected link in file view page
  • [fix] Fix .jpg/.JPG image display in IE10
  • Export quota usage in export Excel in user list admin page
  • [fix] Fix admin can't delete broken libraries
  • Add \"back to previous page\" link in trash page, history page
  • [fix] Fix file encoding for text file editing online
  • [fix] Don't show operation buttons for broken libraries in normal users page
  • [fix] Support both [Audit] and [AUDIT] in seafevent.conf
  • [fix] Support utf-8 characters in filename when preview in MSOffice WebApp
  • Support Collabora Online 2.0
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#604-20161129","title":"6.0.4 (2016.11.29)","text":"
  • [fix] Fix list_inner_pub_repos error in cloud mode
  • [fix] Improve logo show in About dialog
  • [fix] Fix file/folder upload in Firefox 50
  • [fix] Fix groups not shown in admin panel when there are more than 100 groups
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#603-20161117","title":"6.0.3 (2016.11.17)","text":"
  • [fix] Fix the shared folder link in the notification message when a user share a folder to another user
  • [fix] Update Django version from 1.8.10 to 1.8.16
  • [fix] Fix the shared folder name is not changed after removing the old share, renaming the folder and re-sharing the folder
  • [fix] Fix sub-folder accidentially show the files in parent folder when the parent folder contains more than 100 files
  • [fix] Fix image preview navigation when there are more than 100 entries in a folder
  • [fix] Fix jpeg image display in IE10
  • [fix] Fix bug when admin searching unexisting user
  • Add support for online view of mov video files
  • Make web access token expiring time configurable
  • Add an option on server to control block size for web upload files
  • [fix] Failed to cache (set/get) WOPI_ACCESS_TOKEN_EXPIRATION due to memcached key length limit
  • [fix] Not allow user to set the permissions onto unshared folder. Because it is useless.
  • [fix] Fix condition check when display share icon for guest user
  • Support full-text search and audit log by default
  • [fix] Fix permission dialog bug when the corresponding user/group deleted
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#602-20161020","title":"6.0.2 (2016.10.20)","text":"
  • [fix] Virus scan fails when the keystone token has expired https://github.com/haiwen/seafile/issues/1737
  • [fix] If you share a sub-folder to a group, the sub-folder will appear as a library in that group page. Don't show \"permission\" menu item for such a shared sub-folder on the group page, because setting permissions on this shared sub-folder not work. The user should set permissions on the original library directly.
  • [fix] Fix API for uploading file by blocks (Used by iOS client when uploading a large file)
  • [fix] Fix a database connection problem in ccnet-server
  • [fix] Fix moved files are still present in local folder until refresh
  • [fix] Fix admin panel can't show deleted libraries
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#601-beta","title":"6.0.1 beta","text":"
  • Enable create a library from a template
  • Enable office preview by default in installation script
  • [fix] Fix not able to move files via WebDAV interface
  • Check whether the quota will exceed before saving the uploaded file to Seafile via Web UI or API
  • [fix] Fix owner can't restore a deleted file or folder in snapshot
  • [fix] Fix UI of personal profile page
  • [fix] Fix in some cases mobile devices can't be unlinked
  • [fix] Fix connection problem for the latest MariaDB in initialisation script
  • Make maxNumberOfFiles configurable
  • [fix] Remember the sorting of libraries
  • Add Finnish translation
  • Video + audio no longer be limited by max preview size
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#600-beta","title":"6.0.0 beta","text":"
  • Add full screen Web UI
  • Add file comment
  • Improve zip downloading by adding zip progress
  • Change of navigation labels
  • Support Seafile Drive client
  • [admin] Add group transfer function in admin panel
  • [admin] Admin can set library permissions in admin panel
  • Improve checking the user running Seafile must be the owner of seafile-data. If seafile-data is symbolic link, check the destination folder instead of the symbolic link.
  • [ui] Improve rename operation
  • Show name/contact email in admin panel and enable search user by name/contact email
  • Add printing style for markdown and doc/pdf
  • The \u201cSeafile\u201d in \"Welcome to Seafile\" message can be customised by SITE_NAME
  • Improve sorting of files with numbers
  • [api] Add admin API to only return LDAP imported user list
  • Code clean and update Web APIs
  • Remove number of synced libraries in devices page for simplify the interface and concept
  • Update help pages
  • [online preview] The online preview size limit setting FILE_PREVIEW_MAX_SIZE will not affect videos and audio files. So videos and audio with any size can be previewed online.
  • [online preview] Add printing style for markdown

Pro only features

  • Support LibreOffice online/Collabora Office online
  • Add two-factor authentication
  • Remote wipe (need desktop client 6.0.0)
  • [anti-virus] Support parallel scan
  • [anti-virus] Add option to only scan a file with size less than xx MB
  • [anti-virus] Add option to specific which file types to scan
  • [anti-virus] Add scanning virus instantly when user upload files via upload link
  • [online preivew] Add printing style for doc/pdf
  • [online preivew] Warn user if online preview only show 50 pages for doc/pdf with more than 50 pages
  • [fix] Fix search only work on the first page of search result pages
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#44","title":"4.4","text":"

Note: Two new options are added in version 4.4, both are in seahub_settings.py

  • SHOW_TRAFFIC: default is True, set to False if you what to hide public link traffic in profile
  • SHARE_LINK_PASSWORD_MIN_LENGTH: default is 8

This version contains no database table change.

"},{"location":"changelog/changelog-for-seafile-professional-server-old/#449-20160229","title":"4.4.9 (2016.02.29)","text":"
  • [fix] Show \u201cout of quota\u201d instead of \u201cDERP\u201d in the case of out of quota when uploading files via web interface
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#448-20151217","title":"4.4.8 (2015.12.17)","text":"
  • [security] Fix password check for visiting a file in folder sharing link
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#447-20151120","title":"4.4.7 (2015.11.20)","text":"
  • [fix] Fix viewing PDF files via Office Web App
  • [fix, virus scan] Do not scanning deleted libraries in virus scan
  • [fix, virus scan] Fix showing the virus scan page when libraries containing scanned items are deleted
  • [virus scan] Add more debug information for virus scan
  • [fix] Clean cache when set users' name from web API
  • [fix] Fix a performance problem for generating picture thumbnails from folder sharing link
"},{"location":"changelog/changelog-for-seafile-professional-server-old/#446-20151109","title":"4.4.6 (2015.11.09)","text":"
@@ -5700,7 +5700,7 @@ source python-venv/bin/activate pip3 install --timeout=3600 boto3 oss2 twilio configparser pytz \ sqlalchemy==2.0.* pymysql==1.1.* jinja2 django-pylibmc pylibmc psd-tools lxml \ django==5.2.* cffi==1.17.1 future==1.0.* mysqlclient==2.2.* captcha==0.7.* django_simple_captcha==0.6.* \ - pyjwt==2.10.* djangosaml2==1.11.* pysaml2==7.5.* pycryptodome==3.23.* python-ldap==3.4.* pillow==11.3.* pillow-heif==1.0.* + pyjwt==2.10.* djangosaml2==1.11.* pysaml2==7.5.* pycryptodome==3.23.* python-ldap==3.4.* pillow==11.3.* pillow-heif==1.0.* cairosvg==2.8.*
@@ -5724,7 +5724,7 @@ source python-venv/bin/activate pip3 install --timeout=3600 boto3 oss2 twilio configparser pytz \ sqlalchemy==2.0.* pymysql==1.1.* jinja2 django-pylibmc pylibmc psd-tools lxml \ django==5.2.* cffi==1.17.1 future==1.0.* mysqlclient==2.2.* captcha==0.7.* django_simple_captcha==0.6.* \ - pyjwt==2.10.* djangosaml2==1.11.* pysaml2==7.5.* pycryptodome==3.23.* python-ldap==3.4.* pillow==11.3.* pillow-heif==1.0.* + pyjwt==2.10.* djangosaml2==1.11.* pysaml2==7.5.* pycryptodome==3.23.* python-ldap==3.4.* pillow==11.3.* pillow-heif==1.0.* cairosvg==2.8.*