diff options
Diffstat (limited to 'syncthing/files')
-rw-r--r-- | syncthing/files/etc/config/syncthing | 26 | ||||
-rwxr-xr-x | syncthing/files/etc/init.d/syncthing | 69 | ||||
-rw-r--r-- | syncthing/files/etc/sysctl.d/90-syncthing-inotify.conf | 1 |
3 files changed, 96 insertions, 0 deletions
diff --git a/syncthing/files/etc/config/syncthing b/syncthing/files/etc/config/syncthing new file mode 100644 index 0000000..291675d --- /dev/null +++ b/syncthing/files/etc/config/syncthing @@ -0,0 +1,26 @@ + +config syncthing 'syncthing' + option enabled '0' + + option gui_address 'http://127.0.0.1:8384' + + # Use internal flash for evaluation purpouses. Use external storage + # for production. + # This filesystem must either support ownership/attributes or + # be readable/writable by the user specified in + # 'option user'. + # Consult syslog if things go wrong. + option home '/etc/syncthing' + + # Changes to "niceness"/macprocs are not picked up by "reload_config" + # nor by "restart": the service has to be stopped/started + # for those to take effect + option nice '19' + + # 0 to match the number of CPUs (default) + # >0 to explicitly specify concurrency + option macprocs '0' + + # Running as 'root' is possible, but not recommended + option user 'syncthing' + diff --git a/syncthing/files/etc/init.d/syncthing b/syncthing/files/etc/init.d/syncthing new file mode 100755 index 0000000..f77aad8 --- /dev/null +++ b/syncthing/files/etc/init.d/syncthing @@ -0,0 +1,69 @@ +#!/bin/sh /etc/rc.common + +START=90 +STOP=10 + +USE_PROCD=1 + +PROG=/usr/bin/syncthing + +service_triggers() +{ + procd_add_reload_trigger "syncthing" +} + +start_service() { + local gui_address home enabled nice macprocs user + config_load "syncthing" + + # Some of the default values below might not match the defaults + # in /etc/config/syncthing: the reason is to remain backwards + # compatible with the older versions of this service as it + # evolves. + + config_get_bool enabled syncthing enabled 1 + [ "$enabled" -gt 0 ] || return 0 + + config_get user syncthing user 'root' + config_get gui_address syncthing gui_address "http://127.0.0.1:8384" + config_get home syncthing home "/etc/syncthing" + + # For backwards compatibility + IDX_DB=$(readlink -n "$home"/index-v0.14.0.db) + if [ ! -z "$IDX_DB" ]; then + [ -d "$IDX_DB" ] || mkdir -p "$IDX_DB" + + # A separate step to handle an upgrade use case + [ -d "$IDX_DB" ] && chown -R $user:$user "$IDX_DB" + fi + + [ -d "$home" ] || mkdir -p "$home" + # A separate step to handle an upgrade use case + [ -d "$home" ] && chown -R $user:$user "$home" + + # Changes to "niceness"/macprocs are not picked up by "reload_config" + # nor by "restart": the service has to be stopped/started + # for it to take effect + config_get nice syncthing nice "0" + + config_get macprocs syncthing macprocs 0 + if [ $macprocs -le 0 ]; then + # Default to the number of cores in this case + macprocs=$(grep -c ^processor /proc/cpuinfo) + fi + + procd_open_instance + procd_set_param command "$PROG" + procd_set_param file /etc/config/syncthing + procd_set_param env GOMAXPROCS="$macprocs" STNOUPGRADE=1 + procd_append_param command -gui-address="$gui_address" + procd_append_param command -home="$home" + procd_append_param command -no-browser + procd_set_param nice "$nice" + procd_set_param term_timeout 15 + procd_set_param user "$user" + procd_set_param respawn + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_close_instance +} diff --git a/syncthing/files/etc/sysctl.d/90-syncthing-inotify.conf b/syncthing/files/etc/sysctl.d/90-syncthing-inotify.conf new file mode 100644 index 0000000..1e65bf9 --- /dev/null +++ b/syncthing/files/etc/sysctl.d/90-syncthing-inotify.conf @@ -0,0 +1 @@ +fs.inotify.max_user_watches=204800 |