Skip to content

CodeShane/syncthingmanager

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

syncthingmanager

A command line tool for the Syncthing API. Designed to make setting up remote servers easier. (and for users who prefer the cli)

Installation and configuration

Requirements

  • Python 3.4 or later
  • pip for Python 3
  • Syncthing 0.14.19 or later

First, make sure you have the latest version of pip:

pip3 install --upgrade pip

Install stman with:

pip3 install syncthingmanager

The configuration must be initialized with the Syncthing API key. Usually this can be done automatically: stman configure. If that doesn't work, get the API key from the GUI or config.xml (in Syncthing's config directory), then run stman configure apikey.

Configuration syntax

If your Syncthing GUI/API is on a non-standard port, or not on localhost, you will need to configure it manually. By default, stman will look for settings at ~/.config/syncthingmanager/syncthingmanager.conf. A sample syncthingmanager.conf follows:

[DEFAULT]
name = localhost

[localhost]
apikey = MafkDvpagX5J6oMzxm9HwDSXJPSQKPFS
hostname = localhost
port = 8384

[remote-device]
apikey = h9mifaKwDq3SSPPmgUuDjsrivFg3dtkK
hostname = some-host
port = 9001

In this example, my default device is the one at localhost:8384. If I wanted to send a command to the one at some-host:9001, it would look like stman --device remote-device ...

Usage

$ stman device list
$HOME/.config/syncthingmanager/syncthingmanager.conf doesn't appear to be a valid path. Exiting.
# Autoconfiguration
$ stman configure
# List configured devices
$ stman device list
syncthingmanager-test     This Device
    ID:     LYAB7ZG-XDVMAVM-OUZ7EAB-5N3UVWY-DXTFRJ4-U2MTHGQ-7TIBRJE-PC56BQ6

another-device     Connected
    At:     # Address removed
    Folders:    dotest
    ID:     H2AJWNR-5VYNWKM-PS2L2EE-QJYBG2U-3IFN5XM-EKSIIKF-NVLAG2E-KIQE4AE
# List configured folders
$ stman folder list
Default Folder
    Shared With:  
    Folder ID:  default
    Folder Path:    /home/syncthing/Sync/

do-test
    Shared With:  another-device
    Folder ID:  dotest
    Folder Path:    /home/syncthing/stman-test/
# Adding a device
$ stman device add MFZWI3D-BONSGYC-YLTMRWG-C43ENR5-QXGZDMM-FZWI3DP-BONSGYY-LTMRWAD -n yet-another-device -i

$ stman device list
syncthingmanager-test     This Device
    ID:     LYAB7ZG-XDVMAVM-OUZ7EAB-5N3UVWY-DXTFRJ4-U2MTHGQ-7TIBRJE-PC56BQ6

another-device     Connected
    At:     #Address removed
    Folders:    dotest
    ID:     H2AJWNR-5VYNWKM-PS2L2EE-QJYBG2U-3IFN5XM-EKSIIKF-NVLAG2E-KIQE4AE

yet-another-device     Not Connected
    Folders:    
    ID:     MFZWI3D-BONSGYC-YLTMRWG-C43ENR5-QXGZDMM-FZWI3DP-BONSGYY-LTMRWAD
# Share a folder with a device
$ stman folder share dotest yet-another-device
$ stman folder list
Default Folder
    Shared With:  
    Folder ID:  default
    Folder Path:    /home/syncthing/Sync/

do-test
    Shared With:  another-device, yet-another-device
    Folder ID:  dotest
    Folder Path:    /home/syncthing/stman-test/
# Configure and view advanced options
$ stman folder versioning dotest simple --versions 15
$ stman folder edit dotest -r 70
$ stman folder info dotest
do-test
    Shared With:  another-device, yet-another-device
    Folder ID:  dotest
    Folder Path:    /home/syncthing/stman-test/                
    Rescan Interval:    70
    File Pull Order:  alphabetic
    Versioning:       simple
    Keep Versions:      15

Other commands are documented in stman -h, stman command -h, and so on.

Notes

  • On Windows, cmd.exe will print funny characters in place of colors. PowerShell works fine.
  • Some information shown in the GUI requires use of the Events API, which isn't part of python-syncthing. I plan on creating Python bindings for it and using the results, but haven't started yet.
  • I chose to have the device list output be online first instead of alphabetical.

About

Configure Syncthing from the CLI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%