/furumi

Rust powered HTTP fuse filesystem

Primary LanguageRustDo What The F*ck You Want To Public LicenseWTFPL

Furumi

FUSE filesystem working over NGINX JSON autoindex.
Written in Rust stable.

Build and publish

Features

  • Using NGINX for indexing remote files.
  • Security relies on HTTPS.
  • Using cache.

Usage

Here is a binary release or compile it yourself. Anyway mind about dependencies listed below. Also there is a systemd unit file for managing service. Place it into ~/.config/systemd/user/furumi.service

# Compile binary
$ cargo build --release

# Create config
cat > furumi.ylm <<EOF
---
server: https://server
mountpoint: /mnt
# Basic auth creds
username: user
password: pass

# Run
$ ./target/release/furumi --conf furumi.yml

NGINX config

Example of nginx config:

server {
    listen 80;
    listen [::]:80;
    server_name music;

    root /storage/music;

    location / {
        autoindex on;
        autoindex_format json;
        try_files $uri $uri/ =404;
    }
}

Dependencies

FUSE must be installed to build and run furumi. (i.e. kernel driver and libraries. Some platforms may also require userland utils like fusermount). A default installation of FUSE is usually sufficient.

Linux

[FUSE for Linux][libfuse] is available in most Linux distributions and usually called fuse.

Install on Arch Linux:

sudo pacman -S fuse

Install on Debian based system:

sudo apt-get install fuse

Install on CentOS:

sudo yum install fuse

To build, FUSE libraries and headers are required. The package is usually called libfuse-dev or fuse-devel. Also pkg-config is required for locating libraries and headers.

sudo apt-get install libfuse-dev pkg-config
sudo yum install fuse-devel pkgconfig