SIA renterd is a decentralized storage tool accessible on Linux and Windows, but it's easy to compile it on last OmniOSce version
Here's how to do it:
Install system dependencies (switch to root):
pkg install pkg:/ooce/developer/go-124 \
pkg:/developer/versioning/git \
pkg:/developer/gcc14 \
pkg:/terminal/tmux
Clone the git repository:
cd /tmp
git clone https://github.com/SiaFoundation/renterd.git
cd renterd/
Configure and compile the project:
(there is a problem with sqlite3 version detection, so we can install it this way)
go install github.com/mattn/go-sqlite3
go mod tidy
When compiling BoltDB (bbolt) on Solaris (or an architecture not directly supported, such as OpenIndiana or OmniOSce), a constant named maxMapSize may be missing from the platform-specific file (bolt_solaris.go).
This constant defines the maximum size permitted by the system for memory-mapped files (via mmap).
You could have something like undefined array length maxMapSize
trying to build directly.
To solve this problem, open /root/go/pkg/mod/go.etcd.io/bbolt@v1.4.1/bolt_solaris.go
and add the following constant just after the imports :
const maxMapSize = 0xFFFFFFFFFFFF // 256TB
Then, the beginning of the file should be :
package bbolt
import (
"fmt"
"syscall"
"time"
"unsafe"
"golang.org/x/sys/unix"
)
const maxMapSize = 0xFFFFFFFFFFFF
// flock acquires an advisory lock on a file descriptor.
func flock(db *DB, exclusive bool, timeout time.Duration) error {
Then build :
cd /tmp/renterd
go build -v ./...
Specific compilation of the renterd executable:
cd /tmp/renterd/cmd/renterd/
go build
Now, an executable ./renterd has appeared.
Create the destination directory:
mkdir -p /opt/renterd
Move the contents of the renterd folder:
mv /tmp/renterd/* /opt/renterd/
Adjust permissions:
chown -R root:root /opt/renterd
chmod -R 755 /opt/renterd
Create a shortcut to easily launch renterd (for example, but you can also create a service):
alias "renterd"="cd /opt/renterd/bin && /opt/renterd/cmd/renterd/renterd"
echo 'alias "renterd"="cd /opt/renterd/bin && /opt/renterd/cmd/renterd/renterd"' >> /etc/profile
Create a bin folder for the first launch of renterd:
mkdir /opt/renterd/bin
cp /opt/renterd/cmd/renterd/renterd /opt/renterd/bin/
Launch renterd for the first time:
renterd
The folders and files are created in the location where you launch renterd, which is why it's better to launch them while in the /opt/renterd/bin folder.
To access the web console, you can set up an SSH tunnel (with PuTTy or other) by adding a new forwarded port :
- Source port: 9980 (L9980)
- Destination:
127.0.0.1:9980
).
Open the tunnel, launch your web browser, and type: http://127.0.0.1:9980
You will quickly need to configure a /opt/renterd/bin/renterd.yml file for S3 access (via rclone, for example).
(See the Sia documentation, it's easy)