Go to file
subvillion 9305c636e1
fix: client.py sync_lib password escaping
Please add some escaping in password env, I have password similar "xxxx&zzzz", and "&" broke syncing:

```
2023-10-16 12:50:04,655 Listing local libraries: seaf-cli list
2023-10-16 12:50:05,108 Syncing library btsync: seaf-cli sync -l 3XX2-XXX-2eXXea -s https://xxxxxxxx.xx -d /dsc/seafile/btsync -u xxx@xx.xx -p ********
-bash: line 1: zzzz: command not found
Traceback (most recent call last):
  File "/usr/bin/seaf-cli", line 1023, in <module>
    main()
  File "/usr/bin/seaf-cli", line 1019, in main
    args.func(args)
  File "/usr/bin/seaf-cli", line 675, in seaf_sync
    token = get_token(url, username, password, tfa, conf_dir)
```
2023-10-16 13:11:26 +03:00
.github/workflows Update github workflow 2020-08-26 00:06:59 +03:00
dsc fix: client.py sync_lib password escaping 2023-10-16 13:11:26 +03:00
.gitignore Update .gitignore 2019-12-09 21:25:01 +03:00
Dockerfile Initialize seafile client during container start 2023-09-16 01:27:46 -07:00
LICENSE Initialize seafile client during container start 2023-09-16 01:27:46 -07:00
README.md Initialize seafile client during container start 2023-09-16 01:27:46 -07:00
requirements.txt Bump requests from 2.27.1 to 2.31.0 2023-05-23 03:15:40 +00:00
start.py Initialize seafile client during container start 2023-09-16 01:27:46 -07:00

docker-seafile-client

Docker image for Seafile terminal client.

Docker-compose example:

services:
  seafile-client:
    restart: always
    image: snegov/seafile-client
    environment:
      - LIBRARY_ID="79867cbf-2944-488d-9105-852463ecdf9e:my_library"
      - SERVER_HOST=seafile.example.com
      - USERNAME=user
      - PASSWORD=password
      - SEAFILE_UID=1000
      - SEAFILE_GID=100
    hostname: dsc
    volumes:
      - /home/johndow/seafile:/dsc/seafile
      - sync-data:/dsc/seafile-data
    container_name: seafile-client

volumes:
  sync-data:

Environment variables:

  • LIBRARY_ID - library to sync, ID or name. Multiple libraries could be separated by colon :.
  • SERVER_HOST - hostname of your Seafile server, eg: seafile.example.com. If you're using non-standard port, you can specify it here, eg: seafile.example.com:8080.
  • USERNAME/ PASSWORD - credentials to access Seafile server.
  • SEAFILE_UID / SEAFILE_GID - UID/GID of user inside container. You can use it to set permissions on synced files. Default values are 1000/1000.

Volumes:

  • /dsc/seafile-data Seafile client data directory (sync status, etc).
  • /dsc/seafile Seafile libraries content.

Some notes

LIBRARY_ID could be library ID or library name. Library ID is a 36-character string, which is a part of URI when you open library in webUI. Library name is a name you gave to library when you created it.

Libraries will be synced in subdirectories of /dsc/seafile directory inside container. You can mount it to host directory to access files.

hostname parameter is optional, but it's recommended to set it to some unique value, it will be shown in Seafile webUI as client name (terminal-dsc in given example).

sync-data volume is optional too, but it's recommended to use it. Otherwise, sync status will be lost when container is recreated.