meta data for this page
Установка Resilio Sync в FreeBSD jail
- Устанавливаем менеджер контейнеров - bastille.
- Создаем контейнер с именем
sync
через веб интерфейс; - Подключаемся к консоли контейнера командой
bastille console sync
и следующие операции производим в нем:
mkdir -p /tmp/includes mkdir -p /var/db/rslsync mkdir -p /usr/local/etc/rc.d mkdir -p /usr/local/bin pw user add rslsync -c rslsync -u 817 -d /nonexistent -s /usr/bin/nologin chown rslsync:rslsync /var/run/rslsync/rslsync.pid fetch https://download-cdn.resilio.com/stable/FreeBSD-x64/resilio-sync_freebsd_x64.tar.gz tar -xvf ./resilio-sync_freebsd_x64.tar.gz -C /usr/local/bin/
Создаем файл /usr/local/etc/rc.d/rslsync
- /usr/local/etc/rc.d/rslsync
#!/bin/sh # # $FreeBSD: head/net-p2p/rslsync/files/rslsync.in 469847 2018-05-14 02:55:52Z knu $ # # PROVIDE: rslsync # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # rslsync_enable (bool): Set to NO by default. # Set it to YES to enable it. # rslsync_user: The user account rslsync daemon runs as # what you want it to be. It uses 'rslsync' # user by default. Do not sets it as empty or it # will run as root. # rslsync_group: The group account rslsync daemon runs as # what you want it to be. It uses 'rslsync' # group by default. Do not sets it as empty or it # will run as wheel. . /etc/rc.subr name="rslsync" rcvar="${name}_enable" load_rc_config ${name} : ${rslsync_enable:="NO"} : ${rslsync_user:="rslsync"} : ${rslsync_group:="rslsync"} pidfile="/var/run/rslsync/rslsync.pid" command="/usr/local/bin/rslsync" command_args="--config /usr/local/etc/rslsync.conf" start_precmd=rslsync_prestart rslsync_prestart() { if [ ! -d ${pidfile%/*} ]; then install -d -o ${rslsync_user} -g ${rslsync_group} ${pidfile%/*} fi } run_rc_command "$1"
Создаем файл /usr/local/etc/rslsync.conf
- /usr/local/etc/rslsync.conf
{ "device_name": "My Sync Device", // "listening_port" : 0, // 0 - randomize port /* storage_path dir contains auxilliary app files if no storage_path field: .sync dir created in current working directory */ "storage_path" : "/var/db/rslsync", /* set location of pid file */ "pid_file" : "/var/run/rslsync/rslsync.pid", /* use UPnP for port mapping */ "use_upnp" : true, /* limits in kB/s. 0 - no limit */ "download_limit" : 0, "upload_limit" : 0, /* proxy configuration */ // "proxy_type" : "socks4", // Valid types: "socks4", "socks5", "http_connect". Any other value means no proxy // "proxy_addr" : "192.168.1.2", // IP address of proxy server. // "proxy_port" : 1080, // "proxy_auth" : false, // Use authentication for proxy. Note: only username/password for socks5 (RFC 1929) is supported, and it is not really secure // "proxy_username" : "user", // "proxy_password" : "password", /* directory_root path defines where the WebUI Folder browser starts (linux only). Default value is / */ // "directory_root" : "/home/user/MySharedFolders/", /* directory_root_policy defines how directory_root is used (linux only). Valid values are: "all" - accepts directory_root and its subdirectories for 'getdir' and 'adddir' actions "belowroot" - accepts directory_root's subdirectories for 'getdir' and 'adddir' actions, but denies attempts to use 'adddir' to create directories directly within directory_root Default value is "all". */ // "directory_root_policy" : "all", "webui" : { "listen" : "0.0.0.0:8888" // remove field to disable WebUI /* preset credentials. Use password or password_hash */ // ,"login" : "admin" // ,"password" : "password" // (not recommended, better use 'password_hash_unified') // ,"password_hash" : "<crypt() 3 format password hash>" // (not recommended) Works on *nix only! // Use either 'password_hash' or 'password_hash_unified' (recommended), but not both of them! // ,"password_hash_unified" : "<SHA2-256 hash in HEX format>" // Works on all platforms. // ,"password_hash_salt_unified" : "<any text>" // Salt for unified password's hash. Works on all platforms. // ,"allow_empty_password" : false // Defaults to true /* ssl configuration */ // ,"force_https" : true // disable http // ,"ssl_certificate" : "/path/to/cert.pem" // ,"ssl_private_key" : "/path/to/private.key" /* dir_whitelist defines which directories can be shown to user or have folders added (linux only) relative paths are relative to directory_root setting */ // ,"dir_whitelist" : [ "/home/user/MySharedFolders/personal", "work" ] } /* !!! if you set shared folders in config file WebUI will be DISABLED !!! shared directories specified in config file override the folders previously added from WebUI. */ /*, "shared_folders" : [ { "secret" : "MY_SECRET_1", // required field - use --generate-secret in command line to create new secret "dir" : "/home/user/resilio/sync_test", // * required field "use_relay_server" : true, // use relay server when direct connection fails "use_tracker" : true, "search_lan" : true, "use_sync_trash" : true, // enable SyncArchive to store files deleted on remote devices "overwrite_changes" : false, // restore modified files to original version, ONLY for Read-Only folders "selective_sync" : false, // add folder in selective sync mode "known_hosts" : // specify hosts to attempt connection without additional search [ "192.168.1.2:44444" ] } ] */ /* Advanced preferences can be added to config file. Info is available at "https://help.getsync.com/hc/en-us/articles/207371636" For example see folder_rescan_interval below */ //, "folder_rescan_interval" : 600 }
Выполняем в контейнере:
sysrc rslsync_enable="YES" service rslsync start
Монтируем локальную директорию в контейнер:
bastille mount sync /mnt/tank/ /mnt/tank/ nullfs rw 0 0