Skip to content

Seafile.conf settings

Important: Every entry in this configuration file is case-sensitive.

You need to restart seafile and seahub so that your changes take effect.

./ restart
./ restart

Storage Quota Setting

You may set a default quota (e.g. 2GB) for all users. To do this, just add the following lines to seafile.conf file

# default user quota in GB, integer only
default = 2

This setting applies to all users. If you want to set quota for a specific user, you may log in to seahub website as administrator, then set it in "System Admin" page.

Default history length limit

If you don't want to keep all file revision history, you may set a default history length limit for all libraries.

keep_days = days of history to keep

Default trash expiration time

The default time for automatic cleanup of the libraries trash is 30 days.You can modify this time by adding the following configuration´╝Ü

expire_days = 60

System Trash

Seafile uses a system trash, where deleted libraries will be moved to. In this way, accidentally deleted libraries can be recovered by system admin.

Seafile fileserver configuration

The configuration of seafile fileserver is in the [fileserver] section of the file seafile.conf

# bind address for fileserver
# default to, if deployed without proxy: no access restriction
# set to, if used with local proxy: only access by local
host =
# tcp port for fileserver
port = 8082

Since Community Edition 6.2 and Pro Edition 6.1.9, you can set the number of worker threads to server http requests. Default value is 10, which is a good value for most use cases.

worker_threads = 15

Change upload/download settings.

# Set maximum upload file size to 200M.
# If not configured, there is no file size limit for uploading.

# Set maximum download directory size to 200M.
# Default is 100M.

After a file is uploaded via the web interface, or the cloud file browser in the client, it needs to be divided into fixed size blocks and stored into storage backend. We call this procedure "indexing". By default, the file server uses 1 thread to sequentially index the file and store the blocks one by one. This is suitable for most cases. But if you're using S3/Ceph/Swift backends, you may have more bandwidth in the storage backend for storing multiple blocks in parallel. We provide an option to define the number of concurrent threads in indexing:

max_indexing_threads = 10

When users upload files in the web interface (seahub), file server divides the file into fixed size blocks. Default blocks size for web uploaded files is 1MB. The block size can be set here.

#Set block size to 2MB

When users upload files in the web interface, file server assigns an token to authorize the upload operation. This token is valid for 1 hour by default. When uploading a large file via WAN, the upload time can be longer than 1 hour. You can change the token expire time to a larger value.

#Set uploading time limit to 3600s

You can download a folder as a zip archive from seahub, but some zip software on windows doesn't support UTF-8, in which case you can use the "windows_encoding" settings to solve it.

# The file name encoding of the downloaded zip file.
windows_encoding = iso-8859-1

The "httptemp" directory contains temporary files created during file upload and zip download. In some cases the temporary files are not cleaned up after the file transfer was interrupted. Starting from 7.1.5 version, file server will regularly scan the "httptemp" directory to remove files created long time ago.

# After how much time a temp file will be removed. The unit is in seconds. Default to 3 days.
http_temp_file_ttl = x
# File scan interval. The unit is in seconds. Default to 1 hour.
http_temp_scan_interval = x

New in Seafile Pro 7.1.16 and Pro 8.0.3: 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.

Since Pro 8.0.4 version, you can set both options to -1, to allow unlimited size and timeout.

max_sync_file_count = 100000
fs_id_list_request_timeout = 300

If you use object storage as storage backend, when a large file is frequently downloaded, the same blocks need to be fetched from the storage backend to Seafile server. This may waste bandwith and cause high load on the internal network. Since Seafile Pro 8.0.5 version, we add block caching to improve the situation. Note that this configuration is only effective for downloading files through web page or API, but not for syncing files.

  • To enable this feature, set use_block_cache option in the [fileserver] group. It's not enabled by default.
  • The block_cache_size_limit option is used to limit the size of the cache. Its default value is 10GB. The blocks are cached in seafile-data/block-cache directory. When the total size of cached files exceeds the limit, seaf-server will clean up older files until the size reduces to 70% of the limit. The cleanup interval is 5 minutes. You have to have a good estimate on how much space you need for the cache directory. Otherwise on frequent downloads this directory can be quickly filled up.
  • The block_cache_file_types configuration is used to choose the file types that are cached. block_cache_file_types the default value is mp4;mov.
use_block_cache = true
# Set block cache size limit to 100MB
block_cache_size_limit = 100
block_cache_file_types = mp4;mov

Database configuration

The whole database configuration is stored in the [database] section of the configuration file, whether you use SQLite, MySQL or PostgreSQL.


When you configure seafile server to use MySQL, the default connection pool size is 100, which should be enough for most use cases.

Change File Lock Auto Expire time (Pro edition only)

The Seafile Pro server auto expires file locks after some time, to prevent a locked file being locked for too long. The expire time can be tune in seafile.conf file.

default_expire_hours = 6

The default is 12 hours.

Enabled Slow Log

Since Seafile-pro-6.3.10, you can enable seaf-server's RPC slow log to do performance analysis.The slow log is enabled by default.

If you want to configure related options, add the options to seafile.conf:

# default to true
enable_slow_log = true
# the unit of all slow log thresholds is millisecond.
# default to 5000 milliseconds, only RPC queries processed for longer than 5000 milliseconds will be  logged.
rpc_slow_threshold = 5000

You can find seafile_slow_rpc.log in logs/slow_logs. You can also use log-rotate to rotate the log files. You just need to send SIGUSR2 to seaf-server process. The slow log file will be closed and reopened.