Links

rclone

A step-by-step guide for setting up rclone with renterd for Windows, Mac OS, and Linux.

What is rclone?

Rclone is a command-line program to manage files on cloud storage. Rclone is very feature-rich and integrates with dozens of cloud storage providers, including any S3-compatible object stores like Sia renterd.
Users call rclone "The Swiss army knife of cloud storage", and "Technology indistinguishable from magic".
Rclone mounts any local, cloud, or virtual filesystem as a disk on Windows, Mac OS, Linux, and FreeBSD and serves these over SFTP, HTTP, WebDAV, FTP, and DLNA. The mount lets us interact with our Sia renterd storage as a regular filesystem. We can mount renterd storage to a server’s filesystem or even a local laptop’s filesystem.
This guide requires a working installation of renterd. If you have not already installed renterd, you will need to do so before continuing.
Windows
Mac OS
Linux
For the purpose of this guide, we will start by uploading a file to the Sia Network using the renterd Web UI. This will be used later to help us verify we have configured things properly.
A file uploaded to the Sia Network using renterd

Step 1: Enable renterd S3 API

Before setting up rclone, we will need to enable renterd's S3 interface if you have not done so already. This is done by editing your renterd.yml file. If you are unsure where your renterd.yml is installed, please refer to the correct installation guide for your system.
Once you have located your renterd.yml file, open it with your preferred text editor and add the following:
s3:
enabled: true
address: localhost:9985
keypairsV4:
your_renterd_access_key: your_renterd_secret_key
Make sure to replace your_renterd_access_key and your_renterd_secret_key with unique passphrases. They can be anything you want but must be at least 40 characters in length, and your secret key should always be kept private. Keep these values on hand. You will need them for Step 3.
If you are running renterd in a docker container, you will need to override the address via docker: command: -s3.address :9985

Step 2: Install rclone

Press windows key + R to open the run dialog. Type in powershell and press OK to open a Terminal.
Once the Terminal loads, run the following command to install rclone.
winget install Rclone.Rclone

Step 3: Configuring rclone

Now that we have rclone installed, we can use the interactive configuration wizard to set up a new remote. To do so, run the following command from the Terminal.
rclone config
If the command does not work, you may need to restart your terminal first. To do so, close the current Terminal and use the same method you used above in Step 2 to open a new one.
When the configuration wizard loads, enter n to create a new remote.
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Next, name your remote. You can name it anything you want, but for this guide, we will be naming it renterd.
Enter name for new remote.
name> renterd
You will now be given a list of Storage options. Type in s3 and press Enter.
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
...
Storage> s3
Next, you will be asked to select a Provider. Type in other and press Enter
Option provider.
Choose your S3 provider.
Choose a number from below, or type in your own value.
...
provider> Other
You will now be asked to select how you would like to supply your S3 credentials. Since we are supplying an access_key_id and secret_access_key, we will not be using environment variables. Type in false or simply press Enter to use the default.
Option env_auth.
Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
Only applies if access_key_id and secret_access_key is blank.
Choose a number from below, or type in your own boolean value (true or false).
Press Enter for the default (false).
...
env_auth> false
For the next two questions, you will be prompted for your access_key_id and secret_access_key that you set in Step 1.
Option access_key_id.
AWS Access Key ID.
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
access_key_id> your_renterd_access_key
Option secret_access_key.
AWS Secret Access Key (password).
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
secret_access_key> your_renterd_secret_key
When prompted for your Region, press Enter to leave it blank.
Option region.
Region to connect to.
Leave blank if you are using an S3 clone and you don't have a region.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
...
region>
You will now be asked to enter an Endpoint. This should be the same as the address parameter we configured in our renterd.yml for Step 1.
Option endpoint.
Endpoint for S3 API.
Required when using an S3 clone.
Enter a value. Press Enter to leave empty.
endpoint> http://localhost:9985
When asked for a Location constraint press Enter to leave it empty.
Option location_constraint.
Location constraint - must be set to match the Region.
Leave blank if not sure. Used when creating buckets only.
Enter a value. Press Enter to leave empty.
location_constraint>
Next, you will be asked to select an ACL from the list provided. Type in private and press Enter.
Option acl.
Canned ACL used when creating buckets and storing or copying objects.
This ACL is used for creating objects and if bucket_acl isn't set, for creating buckets too.
For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
Note that this ACL is applied when server-side copying objects as S3
doesn't copy the ACL from the source but rather writes a fresh one.
If the acl is an empty string then no X-Amz-Acl: header is added and
the default (private) will be used.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
...
acl> private
When asked if you would like to edit the advanced config, type in n and press Enter.
Edit advanced config?
y) Yes
n) No (default)
y/n> n
You will now be given a summary of your new remote. If they are correct, you can type in y and press Enter to save your remote.
Configuration complete.
Options:
- type: s3
- provider: other
- access_key_id: your_renterd_access_key
- secret_access_key: your_renterd_secret_key
- endpoint: localhost:9985
- acl: private
Keep this "renterd" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
You have now successfully created a remote for renterd. You can now type in q and press Enter to quit the configuration wizard.

Step 4: Mount the filesystem

Now that renterd is running and rclone is configured with renterd as a remote, we can mount the renterd storage to the filesystem.
Before you can use rclone mount on Windows, you will need to download and install WinFsp.
Once you have installed WinFsp, you can then mount your renterd remote and assign it the drive letter X: using the following command.
rclone mount renterd:/default X: --vfs-cache-mode full
On Windows, you can run rclone mount in the foreground only. The --daemon flag is ignored if used.
If you have configured everything properly, you should see a confirmation that rclone has successfully started.
To confirm you have mounted your Sia storage correctly, you should see a new X: drive on your filesystem.
You can now access your files on Sia directly from your File Explorer.
For the purpose of this guide, we will start by uploading a file to the Sia Network using the renterd Web UI. This will be used later to help us verify we have configured things properly.
A file uploaded to the Sia Network using renterd

Step 1: Enable renterd S3 API

Before setting up rclone, we will need to enable renterd's S3 interface if you have not done so already. This is done by editing your renterd.yml file. If you are unsure where your renterd.yml is installed, please refer to the correct installation guide for your system.
Once you have located your renterd.yml file, open it with your preferred text editor and add the following:
s3:
enabled: true
address: localhost:9985
keypairsV4:
your_renterd_access_key: your_renterd_secret_key
Make sure to replace your_renterd_access_key and your_renterd_secret_key with unique passphrases. They can be anything you want but must be at least 40 characters in length, and your secret key should always be kept private. Keep these values on hand. You will need them for Step 3.
If you are running renterd in a docker container, you will need to override the address via docker: command: -s3.address:9985

Step 2: Install rclone

Press CMD + Space to open Spotlight search and open a terminal.
Once the Terminal loads, run the following command to install rclone.
sudo -v ; curl https://rclone.org/install.sh | sudo bash

Step 3: Configuring rclone

Now that we have rclone installed, we can use the interactive configuration wizard to set up a new remote. To do so, run the following command from the Terminal.
rclone config
If the command does not work, you may need to restart your terminal first. To do so, close the current Terminal and use the same method you used above in Step 2 to open a new one.
When the configuration wizard loads, enter n to create a new remote.
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Next, name your remote. You can name it anything you want, but for this guide, we will be naming it renterd.
Enter name for new remote.
name> renterd
You will now be given a list of Storage options. Type in s3 and press Enter.
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
...
Storage> s3
Next, you will be asked to select a Provider. Type in other and press Enter
Option provider.
Choose your S3 provider.
Choose a number from below, or type in your own value.
...
provider> Other
You will now be asked to select how you would like to supply your S3 credentials. Since we are supplying an access_key_id and secret_access_key, we will not be using environment variables. Type in false or simply press Enter to use the default.
Option env_auth.
Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
Only applies if access_key_id and secret_access_key is blank.
Choose a number from below, or type in your own boolean value (true or false).
Press Enter for the default (false).
...
env_auth> false
For the next two questions, you will be prompted for your access_key_id and secret_access_key that you set in Step 1.
Option access_key_id.
AWS Access Key ID.
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
access_key_id> your_renterd_access_key
Option secret_access_key.
AWS Secret Access Key (password).
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
secret_access_key> your_renterd_secret_key
When prompted for your Region, press Enter to leave it blank.
Option region.
Region to connect to.
Leave blank if you are using an S3 clone and you don't have a region.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
...
region>
You will now be asked to enter an Endpoint. This should be the same as the address parameter we configured in our renterd.yml for Step 1.
Option endpoint.
Endpoint for S3 API.
Required when using an S3 clone.
Enter a value. Press Enter to leave empty.
endpoint> http://localhost:9985
When asked for a Location constraint press Enter to leave it empty.
Option location_constraint.
Location constraint - must be set to match the Region.
Leave blank if not sure. Used when creating buckets only.
Enter a value. Press Enter to leave empty.
location_constraint>
Next, you will be asked to select an ACL from the list provided. Type in private and press Enter.
Option acl.
Canned ACL used when creating buckets and storing or copying objects.
This ACL is used for creating objects and if bucket_acl isn't set, for creating buckets too.
For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
Note that this ACL is applied when server-side copying objects as S3
doesn't copy the ACL from the source but rather writes a fresh one.
If the acl is an empty string then no X-Amz-Acl: header is added and
the default (private) will be used.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
...
acl> private
When asked if you would like to edit the advanced config, type in n and press Enter.
Edit advanced config?
y) Yes
n) No (default)
y/n> n
You will now be given a summary of your new remote. If they are correct, you can type in y and press Enter to save your remote.
Configuration complete.
Options:
- type: s3
- provider: other
- access_key_id: your_renterd_access_key
- secret_access_key: your_renterd_secret_key
- endpoint: localhost:9985
- acl: private
Keep this "renterd" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
You have now successfully created a remote for renterd. You can now type in q and press Enter to quit the configuration wizard.

Step 4: Mount the filesystem

Now that renterd is running and rclone is configured with renterd as a remote, we can mount the renterd storage to the filesystem.
Before you can use rclone mount on Mac OS, you will need to download and install MacFUSE.
Once you have installed MacFUSE, you will then need to create an empty directory on your filesystem that we will use as the mount point. Once the mount is set up, this is where all the files will appear.
Next, we will mount our renterd remote using the folder we just created. Adding the --daemon flag allows rclone to maintain the mount point while running in the background.
rclone mount renterd:/default ~/renterd_files/ --vfs-cache-mode full --daemon
To confirm you have mounted your Sia storage correctly, you should now be able to access your files using the Finder app.
To later unmount the remote, you can use umount as follows.
umount ~/renterd_files/
For the purpose of this guide, we will start by uploading a file to the Sia Network using the renterd Web UI. This will be used later to help us verify we have configured things properly.
A file uploaded to the Sia Network using renterd

Step 1: Enable renterd S3 API

Before setting up rclone, we will need to enable renterd's S3 interface if you have not done so already. This is done by editing your renterd.yml file. If you are unsure where your renterd.yml is installed, please refer to the correct installation guide for your system.
Once you have located your renterd.yml file, open it with your preferred text editor and add the following:
s3:
enabled: true
address: localhost:9985
keypairsV4:
your_renterd_access_key: your_renterd_secret_key
Make sure to replace your_renterd_access_key and your_renterd_secret_key with unique passphrases. They can be anything you want but must be at least 40 characters in length, and your secret key should always be kept private. Keep these values on hand. You will need them for Step 3.
If you are running renterd in a docker container, you will need to override the address via docker: command: -s3.address:9985

Step 2: Install rclone

Press Ctrl + Alt + T to open a new Terminal window and run the following command to install rclone.
sudo apt install rclone
If you are unable to open a Terminal using the above method, try one of the other methods listed here.

Step 3: Configuring rclone

Now that we have rclone installed, we can use the interactive configuration wizard to set up a new remote. To do so, run the following command from the Terminal.
rclone config
If the command does not work, you may need to restart your terminal first. To do so, close the current Terminal and use the same method you used above in Step 2 to open a new one.
When the configuration wizard loads, enter n to create a new remote.
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Next, name your remote. You can name it anything you want, but for this guide, we will be naming it renterd.
Enter name for new remote.
name> renterd
You will now be given a list of Storage options. Type in s3 and press Enter.
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
...
Storage> s3
Next, you will be asked to select a Provider. Type in other and press Enter
Option provider.
Choose your S3 provider.
Choose a number from below, or type in your own value.
...
provider> Other
You will now be asked to select how you would like to supply your S3 credentials. Since we are supplying an access_key_id and secret_access_key, we will not be using environment variables. Type in false or simply press Enter to use the default.
Option env_auth.
Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
Only applies if access_key_id and secret_access_key is blank.
Choose a number from below, or type in your own boolean value (true or false).
Press Enter for the default (false).
...
env_auth> false
For the next two questions, you will be prompted for your access_key_id and secret_access_key that you set in Step 1.
Option access_key_id.
AWS Access Key ID.
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
access_key_id> your_renterd_access_key
Option secret_access_key.
AWS Secret Access Key (password).
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
secret_access_key> your_renterd_secret_key
When prompted for your Region, press Enter to leave it blank.
Option region.
Region to connect to.
Leave blank if you are using an S3 clone and you don't have a region.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
...
region>
You will now be asked to enter an Endpoint. This should be the same as the address parameter we configured in our renterd.yml for Step 1.
Option endpoint.
Endpoint for S3 API.
Required when using an S3 clone.
Enter a value. Press Enter to leave empty.
endpoint> http://localhost:9985
When asked for a Location constraint press Enter to leave it empty.
Option location_constraint.
Location constraint - must be set to match the Region.
Leave blank if not sure. Used when creating buckets only.
Enter a value. Press Enter to leave empty.
location_constraint>
Next, you will be asked to select an ACL from the list provided. Type in private and press Enter.
Option acl.
Canned ACL used when creating buckets and storing or copying objects.
This ACL is used for creating objects and if bucket_acl isn't set, for creating buckets too.
For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
Note that this ACL is applied when server-side copying objects as S3
doesn't copy the ACL from the source but rather writes a fresh one.
If the acl is an empty string then no X-Amz-Acl: header is added and
the default (private) will be used.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
...
acl> private
When asked if you would like to edit the advanced config, type in n and press Enter.
Edit advanced config?
y) Yes
n) No (default)
y/n> n
You will now be given a summary of your new remote. If they are correct, you can type in y and press Enter to save your remote.
Configuration complete.
Options:
- type: s3
- provider: other
- access_key_id: your_renterd_access_key
- secret_access_key: your_renterd_secret_key
- endpoint: localhost:9985
- acl: private
Keep this "renterd" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
You have now successfully created a remote for renterd. You can now type in q and press Enter to quit the configuration wizard.

Step 4: Mount the filesystem

Now that renterd is running and rclone is configured with renterd as a remote, we can mount the renterd storage to the filesystem.
Start by creating an empty directory on your filesystem that we will use as the mount point. Once the mount is set up, this is where all the files will appear.
Next, we will mount our renterd remote using the folder we just created. Adding the --daemon flag allows rclone to maintain the mount point while running in the background.
rclone mount renterd:/default ~/renterd_files/ --vfs-cache-mode full --daemon
To confirm you have mounted your Sia storage correctly, you should now be able to access your files using the Files app. It should also appear as a mounted directory in your sidebar.
To later unmount the remote, you can use fusermount as follows.
fusermount -u ~/renterd_files
For more details and system-specific instructions, visit the official rclone mount documentation: https://rclone.org/commands/rclone_mount

All done.

We successfully used renterd and rclone to mount our Sia storage as a filesystem. This is a great way to use Sia for your files, especially for use cases such as large video or media libraries that take up many terabytes of space but you would still like available for streaming at any moment. If this guide has been engaging, check out our website to read more about Sia and renterd, and join our Discord, where the team and community can answer your questions!