All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good
# Changelog ## v2.0.4-rc ### BREAKING CHANGES * `renterd` v2.0.0+ is now required. Prior versions will fail to mount. ### Issues * \#35 [bug] Low frequency check is set to '0' instead of 1 hour by default * \#36 [bug] Max cache size bytes is set to '0' by default ### Changes from v2.0.3-rc * Added Sia API version check prior to mounting * Added back `-cv` (check version) CLI option * Continue documentation updates * Fixed setting `ApiAuth` via `set_value_by_name` * Fixed setting `HostConfig.ApiUser` via `set_value_by_name` * Fixed setting `HostConfig.Path` via `set_value_by_name` * Fixed setting `HostConfig.Protocol` via `set_value_by_name` * Improved ring buffer read-ahead * Integrated `renterd` version 2.0.0 * Prefer using local cache file when opening files * Refactored `app_config` unit tests * Refactored polling to be more accurate on scheduling tasks Reviewed-on: #37
8.1 KiB
8.1 KiB
Repertory
Repertory allows you to mount S3 and Sia via FUSE on Linux or via WinFSP on Windows.
Details and Features
- Optimized for Plex Media Server
- Single application to mount S3 and/or Sia
- Remote mounting of Repertory instances on Linux and Windows
- Securely share your mounts over TCP/IP via
XChaCha20-Poly1305
with other systems on your network or over the internet.
- Securely share your mounts over TCP/IP via
- Cross-platform support (Linux 64-bit, Linux arm64/aarch64, Windows 64-bit)
- Optionally encrypt file names and file data via
XChaCha20-Poly1305
in S3 mounts
Minimum Requirements
- Sia renterd v2.0.0+ for Sia support
- Only 64-bit operating systems are supported
- By default, Linux requires
fusermount3
; otherwise,repertory
must be manually compiled withlibfuse2
support - Windows requires the following dependencies to be installed:
- By default, Linux requires
Supported Operating Systems
- Linux
arm64/aarch64
- Linux
amd64
- Windows 64-bit 10, 11
Usage
Sia
- Initial Configuration
- Sia steps:
- Set the appropriate bucket name and
renterd
API password inrepertory
configuration:- To use
default
as the bucket name and configuration name:repertory -set HostConfig.ApiPassword '<my password>'
- To use a different bucket name with
default
as the configuration name:repertory -set HostConfig.ApiPassword '<my password>'
repertory -set SiaConfig.Bucket '<my bucket>'
- For all other configurations:
repertory --name '<my config name>' -set HostConfig.ApiPassword '<my password>'
repertory --name '<my config name>' -set SiaConfig.Bucket '<my bucket name>'
- To use
- Set the appropriate bucket name and
- To verify/view all configuration options:
repertory -dc
repertory --name '<my config name>' -dc
- Example:
repertory --name default -dc
- Example:
- Sia steps:
- Mounting on Linux:
repertory /mnt/location
repertory --name '<my config name>' /mnt/location
- Example:
repertory --name default /mnt/location
- Example:
- Mounting on Windows:
repertory t:
repertory --name '<my config name>' t:
- Example:
repertory --name default t:
- Example:
S3
- Initial Configuration
- S3 steps:
- Set the appropriate base URL:
repertory -s3 --name '<my config name>' -set S3Config.URL '<my url>'
- Example:
repertory -s3 --name minio -set S3Config.URL 'http://localhost:9000'
- Example:
- Set the appropriate bucket name:
repertory -s3 --name '<my config name>' -set S3Config.Bucket '<my bucket name>'
- Set the appropriate access key:
repertory -s3 --name '<my config name>' -set S3Config.AccessKey '<my access key>'
- Set the appropriate secret key:
repertory -s3 --name '<my config name>' -set S3Config.SecretKey '<my secret key>'
- For Sia and most local S3 gateway instances, enable path style URL's:
repertory -s3 --name '<my config name>' -set S3Config.UsePathStyle true
- Optional steps:
- Set an appropriate region. Default is set to
any
:repertory -s3 --name '<my config name>' -set S3Config.Region '<my region>'
- Enable encrypted file names and file data. Set a strong, random encryption token and be sure to store it in a secure backup location:
repertory -s3 --name '<my config name>' -set S3Config.EncryptionToken '<my strong password>'
- Set an appropriate region. Default is set to
- Set the appropriate base URL:
- To verify/view all configuration options:
repertory -s3 --name '<my config name>' -dc
- Example:
repertory -s3 --name minio -dc
- Example:
- S3 steps:
- Mounting on Linux:
repertory -s3 --name '<my config name>' /mnt/location
- Example:
repertory -s3 --name minio /mnt/location
- Example:
- Mounting on Windows:
repertory -s3 --name '<my config name>' t:
- Example:
repertory -s3 --name minio t:
- Example:
Notable Options
--help
- Display all mount utility options
--name, -na [name]
- The
--name
option can be set to any valid value allowed as a file name for your filesystem. - For Sia, the bucket name will be set to the same value if it is empty in the configuration file.
- If the
--name
option is not specified,default
will be used.
- If the
- For S3, the
--name
option is required and does not affect the bucket name.
- The
-dc
- Display mount configuration
- For Sia,
--name
is optional - For S3, the
-s3
option is required along with--name
Data Directories
- Linux
~/.local/repertory2
- Windows
%LOCALAPPDATA%\repertory2
- Example:
C:\Users\Tom\AppData\Local\repertory2
- IMPORTANT:
- It is highly recommended to exclude this folder from any anti-virus/anti-malware applications as severe performance issues may arise.
- Excluding the mounted drive letter is also highly recommended.
- Example:
Remote Mounting
Repertory
allows local mounts to be shared with other computers on your network.
This option is referred to as remote mounting. Instructions TBD.
Compiling
- Successful compilation will result in all required files being placed in the
dist/
directory - Linux
- Ensure
docker
is installed- For x86_64:
- RelWithDebInfo:
scripts/make_unix.sh
- Release:
scripts/make_unix.sh x86_64 Release
- Debug:
scripts/make_unix.sh x86_64 Debug
- RelWithDebInfo:
- For aarch64:
- RelWithDebInfo:
scripts/make_unix.sh aarch64
- Release:
scripts/make_unix.sh aarch64 Release
- Debug:
scripts/make_unix.sh aarch64 Debug
- RelWithDebInfo:
- For x86_64:
- Ensure
- Windows
- OFFICIAL: Cross-compiling on Linux
- Ensure
docker
is installed- RelWithDebInfo:
scripts/make_win32.sh
- Release:
scripts/make_win32.sh x86_64 Release
- Debug:
scripts/make_win32.sh x86_64 Debug
- RelWithDebInfo:
- Ensure
- UNOFFICIAL: Compiling on Windows
- Ensure latest MSYS2 is installed
- RelWithDebInfo:
scripts\make_win32.cmd
- Release:
scripts\make_win32.cmd x86_64 Release
- Debug:
scripts\make_win32.cmd x86_64 Debug
- RelWithDebInfo:
- Ensure latest MSYS2 is installed
- OFFICIAL: Cross-compiling on Linux
Credits
- binutils
- boost c++ libraries
- cpp-httplib
- curl
- docker
- Google Test
- ICU
- JSON for Modern C++
- libexpat
- libfuse
- libsodium
- mingw-w64
- MSYS2
- OpenSSL
- pkg-config
- pugixml
- RocksDB
- ScPrime
- Sia Decentralized Cloud Storage
- spdlog
- SQLite
- stduuid
- Storj
- WinFSP - FUSE for Windows
- zlib
Developer Public Key
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqXedleDOugdk9sBpgFOA
0+MogIbBF7+iXIIHv8CRBbrrf8nxLSgQvbHQIP0EklebDgLZRgyGI3SSQYj7D957
uNf1//dpkELNzfuezgAyFer9+iH4Svq46HADp5k+ugaK0mMDZM7OLOgo7415/+z4
NIQopv8prMFdxkShr4e4dpR+S6LYMYMVjsi1gnYWaZJMWgzeZouXFSscS1/XDXSE
vr1Jfqme+RmB4Q2QqGcDrY2ijumCJYJzQqlwG6liJ4FNg0U3POTCQDhQmuUoEJe0
/dyiWlo48WQbBu6gUDHbTCCUSZPs2Lc9l65MqOCpX76+VXPYetZgqpMF4GVzb2y9
kETxFNpiMYBlOBZk0I1G33wqVmw46MI5IZMQ2z2F8Mzt1hByUNTgup2IQELCv1a5
a2ACs2TBRuAy1REeHhjLgiA/MpoGX7TpoHCGyo8jBChJVpP9ZHltKoChwDC+bIyx
rgYH3jYDkl2FFuAUJ8zAZl8U1kjqZb9HGq9ootMk34Dbo3IVkc2azB2orEP9F8QV
KxvZZDA9FAFEthSiNf5soJ6mZGLi0es5EWPoKMUEd9tG5bP980DySAWSSRK0AOfE
QShT/z7oG79Orxyomwrb8ZJCi7wEfcCuK1NWgqLVUgXhpi2J9WYS6DAbF3Oh3Hhl
DYSHlcfFBteqNDlR2uFInIECAwEAAQ==
-----END PUBLIC KEY-----