Skip to content

Seafile

Capability Support
rclone support tier Tier 3: Supported
Checksums None
Modification times Not kept: files show their upload time
Case-insensitive names No
Duplicate names allowed No
Server-side copy Yes
Server-side move and rename Yes
Folder move and rename Yes, in one step
Free space reporting Yes
Empty folders Yes
Change notifications No
Uploads of unknown size Yes
Public links Yes

This is a backend for the Seafile storage service:

  • It works with both the free community edition or the professional edition.
  • Seafile versions 6.x, 7.x, 8.x and 9.x are all supported.
  • Encrypted libraries are also supported.
  • It supports 2FA enabled users
  • Using a Library API Token is not supported

In CloudMount you add this drive from the Add drive screen, and the wizard asks for the options listed under Options. The notes below come from rclone’s setup guide.

Here is an example of making a seafile configuration for a user with no two-factor authentication. First run

Terminal window
rclone config

This will guide you through an interactive setup process. To authenticate you will need the URL of your server, your email (or username) and your password.

No remotes found, make a new one\?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> seafile
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
[snip]
XX / Seafile
\ "seafile"
[snip]
Storage> seafile
** See help for seafile backend at: https://rclone.org/seafile/ **
URL of seafile host to connect to
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / Connect to cloud.seafile.com
\ "https://cloud.seafile.com/"
url> http://my.seafile.server/
User name (usually email address)
Enter a string value. Press Enter for the default ("").
user> me@example.com
Password
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g> y
Enter the password:
password:
Confirm the password:
password:
Two-factor authentication ('true' if the account has 2FA enabled)
Enter a boolean value (true or false). Press Enter for the default ("false").
2fa> false
Name of the library. Leave blank to access all non-encrypted libraries.
Enter a string value. Press Enter for the default ("").
library>
Library password (for encrypted libraries only). Leave blank if you pass it through the command line.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g/n> n
Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n> n
Remote config
Two-factor authentication is not enabled on this account.
--------------------
[seafile]
type = seafile
url = http://my.seafile.server/
user = me@example.com
pass = *** ENCRYPTED ***
2fa = false
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

This remote is called seafile. It’s pointing to the root of your seafile server and can now be used like this:

See all libraries

Terminal window
rclone lsd seafile:

Create a new library

Terminal window
rclone mkdir seafile:library

List the contents of a library

Terminal window
rclone ls seafile:library

Sync /home/local/directory to the remote library, deleting any excess files in the library.

Terminal window
rclone sync --interactive /home/local/directory seafile:library

Here’s an example of a configuration in library mode with a user that has the two-factor authentication enabled. Your 2FA code will be asked at the end of the configuration, and will attempt to authenticate you:

No remotes found, make a new one\?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> seafile
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
[snip]
XX / Seafile
\ "seafile"
[snip]
Storage> seafile
** See help for seafile backend at: https://rclone.org/seafile/ **
URL of seafile host to connect to
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / Connect to cloud.seafile.com
\ "https://cloud.seafile.com/"
url> http://my.seafile.server/
User name (usually email address)
Enter a string value. Press Enter for the default ("").
user> me@example.com
Password
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g> y
Enter the password:
password:
Confirm the password:
password:
Two-factor authentication ('true' if the account has 2FA enabled)
Enter a boolean value (true or false). Press Enter for the default ("false").
2fa> true
Name of the library. Leave blank to access all non-encrypted libraries.
Enter a string value. Press Enter for the default ("").
library> My Library
Library password (for encrypted libraries only). Leave blank if you pass it through the command line.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g/n> n
Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n> n
Remote config
Two-factor authentication: please enter your 2FA code
2fa code> 123456
Authenticating...
Success!
--------------------
[seafile]
type = seafile
url = http://my.seafile.server/
user = me@example.com
pass =
2fa = true
library = My Library
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

You’ll notice your password is blank in the configuration. It’s because we only need the password to authenticate you once.

You specified My Library during the configuration. The root of the remote is pointing at the root of the library My Library:

See all files in the library:

Terminal window
rclone lsd seafile:

Create a new directory inside the library

Terminal window
rclone mkdir seafile:directory

List the contents of a directory

Terminal window
rclone ls seafile:directory

Sync /home/local/directory to the remote library, deleting any excess files in the library.

Terminal window
rclone sync --interactive /home/local/directory seafile:

Seafile version 7+ supports --fast-list which allows you to use fewer transactions in exchange for more memory. See the rclone docs for more details. Please note this is not supported on seafile server version 6.x

In addition to the default restricted characters set the following characters are also replaced:

Character Value Replacement
/ 0x2F /
“ 0x22 "
\ 0x5C \

Invalid UTF-8 bytes will also be replaced, as they can’t be used in JSON strings.

Rclone supports generating share links for non-encrypted libraries only. They can either be for a file or a directory:

Terminal window
$ rclone link seafile:seafile-tutorial.doc
http://my.seafile.server/f/fdcd8a2f93f84b8b90f4/

or if run on a directory you will get:

Terminal window
$ rclone link seafile:dir
http://my.seafile.server/d/9ea2455f6f55478bbb0d/

Please note a share link is unique for each file or directory. If you run a link command on a file/dir that has already been shared, you will get the exact same link.

It has been actively developed using the seafile docker image of these versions:

  • 6.3.4 community edition
  • 7.0.5 community edition
  • 7.1.3 community edition
  • 9.0.10 community edition

Versions below 6.0 are not supported. Versions between 6.0 and 6.3 haven’t been tested and might not work properly.

Each new version of rclone is automatically tested against the latest docker image of the seafile community server.

The wizard asks for these when you add the drive.

URL of seafile host to connect to.

Type: string · Required

Choices:

  • https://cloud.seafile.com/: Connect to cloud.seafile.com.

User name (usually email address).

Type: string · Required

Password.

NB Input to this must be obscured - see rclone obscure.

Type: string

Two-factor authentication (‘true’ if the account has 2FA enabled).

Type: bool · Default: false

Name of the library.

Leave blank to access all non-encrypted libraries.

Type: string

Library password (for encrypted libraries only).

Leave blank if you pass it through the command line.

NB Input to this must be obscured - see rclone obscure.

Type: string

The wizard shows these under Advanced options. Most drives work without changing any of them.

Should rclone create a library if it doesn’t exist.

Type: bool · Default: false

The encoding for the backend.

See the encoding section in the overview for more info.

Type: Encoding · Default: Slash,DoubleQuote,BackSlash,Ctl,InvalidUtf8,Dot

Description of the remote.

Type: string