# persistent configuration folder (for ZT controller mode)
#option config_path '/etc/zerotier'
+ # copy <config_path> to RAM to prevent writing to flash (for ZT controller mode)
+ #option copy_config_path '1'
#option port '9993'
start_instance() {
local cfg="$1"
- local port secret config_path local_conf path
+ local port secret config_path local_conf copy_config_path path
local args=""
if ! section_enabled "$cfg"; then
config_get port $cfg 'port'
config_get secret $cfg 'secret'
config_get local_conf $cfg 'local_conf'
+ config_get_bool copy_config_path $cfg 'copy_config_path' 0
path=${CONFIG_PATH}_$cfg
# Remove existing link or folder
rm -rf $path
- # Create link from CONFIG_PATH to config_path
+ # Create link or copy files from CONFIG_PATH to config_path
if [ -n "$config_path" -a "$config_path" != "$path" ]; then
if [ ! -d "$config_path" ]; then
echo "ZeroTier config_path does not exist: $config_path" 1>&2
return
fi
- # ensure that the symlink target exists
+ # ensure that the target exists
mkdir -p $(dirname $path)
- ln -s $config_path $path
+ if [ "$copy_config_path" = "1" ]; then
+ cp -r $config_path $path
+ else
+ ln -s $config_path $path
+ fi
fi
mkdir -p $path/networks.d